Todos os produtos
Search
Central de documentação

DataWorks:Configurar um nó do-while

Última atualização: Jul 17, 2026

Um nó do-while executa repetidamente um fluxo de trabalho interno até que uma condição de saída seja atendida. Defina a lógica do loop dentro do nó e use o nó End para controlar quando o loop deve parar. Combinado com um nó de atribuição, o nó do-while também pode iterar sobre um conjunto de resultados. Este tópico apresenta exemplos de configuração simples e complexos.

Pré-requisitos

Limitações

  • O nó do-while está disponível apenas no DataWorks Standard Edition e versões posteriores. Para mais informações, consulte Edições e recursos do DataWorks.

  • Um nó do-while pode executar no máximo 1.024 iterações.

  • Não há suporte para execução paralela. Um novo loop só pode iniciar após a conclusão do anterior.

Crie um nó do-while

  1. Faça login no console do DataWorks. Na região de destino, clique em Data Development and O&M > Data Development no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.

  2. Crie um nó do-while.

    1. Na página Data Studio, passe o ponteiro do mouse sobre o ícone Create icon e escolha Create Node > General > do-while.

      Como alternativa, abra um fluxo de trabalho, clique com o botão direito em General e selecione Create Node > do-while.

    2. Na caixa de diálogo Create Node, especifique o nome e o caminho do nó.

    3. Clique em OK.

Exemplos

Este exemplo executa 5 iterações e imprime a contagem atual do loop em cada uma delas.

Edite o código do nó

Nota

Por padrão, um nó do-while contém três nós: Start, Shell e End:

  • O nó Start marca o início de um loop e não possui finalidade de negócio. Não é possível excluí-lo.

  • O nó Shell é um exemplo de nó de processamento de negócios fornecido pelo DataWorks.

  • O nó End marca o fim de um loop e determina se a próxima iteração deve ser iniciada. Ele define a condição de saída do nó do-while e não pode ser excluído.

Também é possível personalizar o fluxo de trabalho dentro do nó do-while conforme suas necessidades de negócio, substituindo o nó Shell por outros nós.

  1. Clique duas vezes no nó Shell para abrir sua página de edição.

  2. Insira o seguinte código.

    echo ${dag.loopTimes} ----Print the loop count.
    • A variável ${dag.loopTimes} é reservada do sistema e representa a contagem atual do loop, começando em 1. Os nós internos de um nó do-while podem referenciar essa variável diretamente. Para mais informações sobre variáveis integradas, consulte Variáveis integradas e Variáveis dependentes de contexto.

    • Salve o código após modificá-lo no nó Shell. Nenhum aviso é exibido ao enviar o nó. Se você não salvar o código, as alterações mais recentes não serão aplicadas.

Defina a condição de saída do loop

Defina a condição de saída para que o loop pare após 5 iterações.

  1. Clique duas vezes no nó End para abrir sua página de edição.

  2. Na lista suspensa Select Language, selecione Python.

  3. Insira o seguinte código para definir a condição de saída do nó do-while.

    if ${dag.loopTimes}<5: 
     print True; 
    else: 
     print False;
    • A variável ${dag.loopTimes} é reservada do sistema e representa a contagem atual do loop, começando em 1. Os nós internos de um nó do-while podem referenciar essa variável diretamente. Para mais informações sobre variáveis integradas, consulte Variáveis integradas e Variáveis dependentes de contexto.

    • O código compara dag.loopTimes com 5 para limitar o número total de iterações do loop. Na primeira iteração, dag.loopTimes é 1; na segunda, é 2; e assim sucessivamente até a quinta iteração, quando atinge 5. Nesse momento, a expressão ${dag.loopTimes}<5 resulta em False e o loop é encerrado.

Envie o nó do-while

  1. Clique no ícone Save icon na barra de ferramentas para salvar o nó.

  2. Clique no ícone Submit icon na barra de ferramentas para enviar o nó.

    Ao enviar o nó, insira uma Change Description na caixa de diálogo Submission e especifique se deseja iniciar uma revisão de código após o envio.

    Importante
    • Configure o Rerun attribute e os Parent Nodes antes de enviar o nó.

    • A revisão de código ajuda a garantir a qualidade do código da tarefa e evita erros causados pela implantação direta de código não revisado no ambiente de produção. Se a revisão de código estiver ativada, os revisores deverão aprovar o código do nó enviado antes da implantação. Para mais informações, consulte Revisão de código.

    Se você utilizar um workspace no modo padrão, clique em Deploy no canto superior direito da página de edição do nó para implantar a tarefa no ambiente de produção após o envio. Para mais informações, consulte Implantar nós.

Testar e visualize logs de execução

O processo de envio e implantação de um nó do-while segue o mesmo fluxo de um nó comum. No entanto, não há suporte para testes diretamente pela interface do Data Studio.

Nota

Quando o DataWorks está no modo padrão, não é possível testar um nó do-while diretamente pela interface do Data Studio.

Para testar e verificar os resultados de execução de um nó do-while, envie e implante a tarefa que contém o nó do-while no Operation Center e, em seguida, execute a tarefa do nó do-while a partir da página do Operation Center. Se você utilizar valores passados por um nó de atribuição dentro do nó do-while, execute tanto o nó de atribuição quanto o nó do-while juntos durante o teste no Operation Center.

  1. Clique em O&M Personnel no canto superior direito da página para acessar o Operation Center.

  2. No painel de navegação à esquerda, clique em Auto Triggered Task O&M > Periodic tasks.

  3. Selecione o nó desejado. No DAG à direita, clique com o botão direito no nó de atribuição e selecione Retroactive Instance > Current and Descendant Nodes Retroactively.

  4. Atualize a página Data Backfill Instance. Após a execução bem-sucedida da instância de backfill, clique em DAG ao lado da instância.

  5. Visualize os logs de execução do nó do-while.

    1. Clique com o botão direito no nó do-while e selecione View Inner Nodes.

      Para nós compostos, como os nós do-while, visualize os nós internos para ver logs de execução detalhados. Neste exemplo, o loop foi executado 5 vezes e todas as iterações foram concluídas com sucesso.

      A visualização do loop interno de um nó do-while possui três partes:

      • O painel esquerdo mostra o histórico de reexecução. Cada execução completa da instância do-while adiciona um registro aqui.

      • O painel central exibe a lista de registros do loop com a contagem total de iterações e o status de cada iteração.

      • O painel direito apresenta os detalhes da iteração. Clique em uma iteração na lista de registros do loop para exibir o status de execução de cada nó nessa iteração.

    2. Na página de nós internos, clique em um número de iteração à esquerda, clique com o botão direito no nó desejado e selecione View Runtime Log.

    3. Visualize os logs de execução detalhados da enésima iteração.

      Na página de nós internos, clique em Iteration 5 à esquerda para visualizar os logs do nó Shell na 5ª iteração.

      O log de execução mostra que, na 5ª iteração, o nó End executou o código de avaliação if 5 < 5: print True else: print False e a saída foi False (Output Result: False). O loop foi encerrado e a tarefa foi concluída normalmente.

      O fluxo de trabalho de um nó do-while é o seguinte:

      1. A execução começa no nó Start.

      2. As tarefas são executadas sequencialmente com base nas relações de dependência definidas.

      3. A condição de saída é definida no nó End.

      4. Após a conclusão de um conjunto de tarefas, a instrução de condição de saída no nó End é executada.

      5. Se a instrução de avaliação no nó End imprimir True nos logs, o loop continua a partir da etapa 1.

      6. Se a instrução de avaliação no nó End imprimir False nos logs, todo o loop é encerrado e o nó do-while é concluído.

Resumo

  • Comparação do nó do-while com tipos de loop padrão:

    • Suporta o padrão do...while (executa primeiro, depois avalia). Também pode implementar o padrão foreach indiretamente usando a variável de sistema dag.offset com o contexto do nó.

    • Não suporta o padrão while, que avalia a condição antes de executar o corpo do loop.

  • Fluxo de execução de um nó do-while:

    1. Começando pelo nó Start, as tarefas no corpo do loop são executadas sequencialmente com base nas relações de dependência definidas.

    2. O código definido pelo usuário no nó End é executado.

      • Se o nó End gerar True, a próxima iteração começa.

      • Se o nó End gerar False, o loop termina.

  • Os nós internos de um nó do-while podem referenciar o contexto do nó usando ${dag.context variable name}.

  • O DataWorks fornece automaticamente duas variáveis de sistema para os nós internos de um nó do-while:

    • dag.loopTimes: A contagem do loop começando em 1.

    • dag.offset: O deslocamento da iteração atual em relação à primeira iteração, começando em 0.