Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como criar e usar um subfluxo de trabalho

É possível usar subfluxos para definir uma lógica ou um conjunto de etapas que você quer chamar várias vezes, simplificando a definição do fluxo de trabalho. Os subfluxos são semelhantes a uma função ou rotina em uma linguagem de programação. Eles podem aceitar parâmetros e retornar valores, permitindo a criação de fluxos de trabalho mais complexos com uma gama mais ampla de aplicativos.

Nesta página, abordamos a definição de um subfluxo e a chamada a partir de um fluxo de trabalho. Para mais informações sobre tarefas básicas de fluxo de trabalho, consulte Como criar e atualizar um fluxo de trabalho atual e Como executar um fluxo de trabalho.

Como criar um fluxo de trabalho que usa um subfluxo

Para criar um subfluxo, faça o seguinte:

  1. Adicione um bloco main à parte superior da definição do fluxo de trabalho:

    main:
       steps:
           - step_name:
               ...
           ...
    

    Se um fluxo de trabalho tiver um subfluxo, o principal deverá ser colocado em um bloco main.

  2. Defina o subfluxo de trabalho abaixo das etapas principais do fluxo de trabalho:

    main:
       steps:
           - step_name:
               ...
           ...
    [SUBWORKFLOW_NAME]:
        params: [PARAMETER_1[: DEFAULT_VALUE1], PARAMETER_2[: DEFAULT_VALUE2]...]
        steps:
            - step_name:
            ...
    

    Substitua:

    • SUBWORKFLOW_NAME: obrigatório. Nome do subfluxo.
    • PARAMETER_1, PARAMETER_2: opcional. Parâmetros usados pelo subfluxo de trabalho.
    • DEFAULT_VALUE1, DEFAULT_VALUE2: opcional. Valores padrão para os respectivos parâmetros.

    Se você não precisar transmitir parâmetros para o subfluxo, exclua o bloco params.

  3. No subfluxo de trabalho, defina as etapas como faria no fluxo de trabalho principal.

  4. Para chamar o subfluxo a partir do fluxo de trabalho principal, adicione uma seção call a uma etapa no fluxo de trabalho principal, opcionalmente fornecendo argumentos para passar para o subfluxo:

    main:
       - [STEP_NAME]:
           call: [SUBWORKFLOW_NAME]
           [args:
               ARG_1: VALUE
               ARG_2: VALUE
               ...]
           [result: OUTPUT_VARIABLE]
    [SUBWORKFLOW_NAME]:
        params: [PARAMETER_1,PARAMETER_2...]
        steps:
            - step_1:
            ...
    

    Substitua:

    • SUBWORKFLOW_NAME: obrigatório. Nome do subfluxo.
    • ARG_1, ARG_2: opcional. Os argumentos passados para o subfluxo, se ele aceitar parâmetros.
    • VALUE: opcional. Os valores para os quais os argumentos são definidos.
    • OUTPUT_VARIABLE: opcional. A variável em que o fluxo de trabalho armazena os dados retornados pelo subfluxo, se ele retornar qualquer coisa.

Exemplo

Neste exemplo, demonstramos como definir um subfluxo denominado name_message e chamá-lo do fluxo de trabalho principal:

main:
    steps:
        - call_subworkflow:
            call: name_message
            args:
                first_name: "Sherlock"
                last_name: "Holmes"
            result: output
        - call_subworkflow2:
            call: name_message
            args:
                first_name: "Ada"
                last_name: "Lovelace"
            result: output2
        - return_message:
            return: ${output + output2}

name_message:
    params: [first_name, last_name, country: "England"]
    steps:
        - prepareMessage:
            return: ${"Hello " + first_name + " " + last_name + " from " + country + "."}

Essa definição do fluxo de trabalho faz o seguinte:

  • O fluxo de trabalho principal chama o subfluxo name_message duas vezes, a partir das etapas call_subworkflow e call_subworkflow2.
  • As duas etapas fornecem entradas diferentes para os argumentos first_name e last_name, que são transmitidos para o subfluxo.
  • O subfluxo de trabalho name_message usa os argumentos transmitidos a ele e cria uma mensagem simples, fornecendo o valor padrão de England para a variável country.
  • O subfluxo de trabalho retorna a mensagem que cria para o fluxo de trabalho principal.
  • As etapas no fluxo de trabalho principal armazenam os resultados como output e output2, respectivamente.
  • O fluxo de trabalho principal combina output e output2 em uma única mensagem e retorna o resultado: Hello Sherlock Holmes from England. Hello Ada Lovelace from England.

A seguir