Um loop de dependência de nó ocorre quando um nó é ancestral de outros nós e, ao mesmo tempo, depende de um ou mais de seus próprios descendentes. Nós envolvidos em um loop não podem ser agendados automaticamente.
Como um loop de dependência se forma
Em um fluxo de trabalho do DataWorks, os nós executam em ordem de dependência: cada nó aguarda a conclusão dos nós upstream antes de iniciar. Um loop se forma quando essa cadeia retorna ao ponto de partida — um nó ancestral passa a depender de um descendente, impedindo que o agendador defina uma ordem de execução válida.
A causa mais comum é um nó ancestral ler dados de uma tabela que um de seus descendentes grava no mesmo ciclo de agendamento. Como nenhum dos dois nós pode executar primeiro, ambos ficam bloqueados.
Exemplo
Os três nós a seguir formam um loop:
O Nó A lê a Tabela C e grava os resultados na Tabela A.
O Nó B limpa a Tabela A e grava os resultados na Tabela B.
O Nó C limpa a Tabela B e grava os resultados na Tabela C.
O Nó A depende da Tabela C, produzida pelo Nó C. Como o Nó C é descendente do Nó A, cria-se o loop A → B → C → A.

Corrigir um loop de dependência
Analise o fluxo de trabalho e identifique qual dependência fecha o loop. Remova ou reconfigure essa dependência.
Caso o nó ancestral realmente precise dos dados produzidos por seu descendente, configure dependências de agendamento entre ciclos. Isso permite que o nó ancestral dependa da saída do nó descendente gerada no ciclo de agendamento anterior, e não no atual, quebrando assim o loop.
No exemplo acima, configure uma dependência de agendamento entre ciclos entre o Nó A e o Nó C para que o Nó A leia a Tabela C da execução do ciclo anterior.
Monitoramento e alertas
No ambiente de produção, o DataWorks verifica todas as tarefas com acionamento automático às 09:00, 12:00, 16:00, 20:00 e 22:00 todos os dias. Se um loop de dependência de nó for detectado, uma notificação de alerta será enviada automaticamente ao proprietário do nó por mensagem de texto ou e-mail.
Se um loop se formar dentro de 10 minutos antes de uma verificação agendada, ele ficará fora do escopo dessa verificação e será detectado na próxima.
Ao receber um alerta, siga estas etapas:
Identifique os nós envolvidos no loop.
Analise as dependências entre esses nós para encontrar onde o ciclo se fecha.
Remova ou reconfigure a dependência que causa o loop. Se o nó ancestral precisar de dados de uma execução anterior, utilize dependências de agendamento entre ciclos.
Verifique se os nós afetados retornaram ao agendamento normal após a correção.
As regras de alerta para loops de dependência de nó são regras integradas fornecidas pelo DataWorks. Para alterar o contato de alerta, acesse a página Rule Management. Para mais informações, consulte Criar uma regra de alerta personalizada.