Há quatro maneiras de chamar outros fluxos de trabalho de dentro de um fluxo de trabalho. Cada uma das formas de chamar um ou mais fluxos de trabalho é representada por um elemento de esquema de fluxo de trabalho diferente.

Fluxos de trabalho síncronos
Gerenciado pelo elemento de esquema Elemento de fluxo de trabalho. Um fluxo de trabalho pode iniciar outro fluxo de trabalho de forma síncrona. O fluxo de trabalho chamado é executado como parte da execução do fluxo de trabalho de chamada e é executado no mesmo espaço de memória que o fluxo de trabalho de chamada. O fluxo de trabalho de chamada inicia outro fluxo de trabalho. Em seguida, aguarda o fim da execução do fluxo de trabalho chamado antes de começar a executar o próximo elemento no esquema. Normalmente, você chama um fluxo de trabalho de forma síncrona porque o fluxo de trabalho de chamada requer a saída do fluxo de trabalho chamado como um parâmetro de entrada para um elemento de esquema subsequente. Por exemplo, um fluxo de trabalho pode chamar o fluxo de trabalho Iniciar máquina virtual e aguardar para iniciar uma máquina virtual e, em seguida, obter o endereço IP dessa máquina virtual para passar para outro elemento ou para um usuário por e-mail.
Fluxos de trabalho assíncronos
Gerenciado pelo elemento de esquema Elemento assíncrono. Um fluxo de trabalho pode iniciar um fluxo de trabalho de forma assíncrona. O fluxo de trabalho de chamada inicia outro fluxo de trabalho, mas o fluxo de trabalho de chamada continua executando imediatamente o próximo elemento no esquema, sem aguardar o resultado do fluxo de trabalho chamado. Os fluxos de trabalho chamados são executados com os parâmetros de entrada que o fluxo de trabalho de chamada define, mas o ciclo de vida do fluxo de trabalho chamado é independente do ciclo de vida do fluxo de trabalho de chamada. Os fluxos de trabalho assíncronos permitem que você crie cadeias de fluxos de trabalho que passam parâmetros de entrada de um fluxo de trabalho para o seguinte. Por exemplo, um fluxo de trabalho pode criar vários objetos durante sua execução. Em seguida, o fluxo de trabalho pode iniciar fluxos de trabalho assíncronos que usam esses objetos como parâmetros de entrada nas próprias execuções. Após o fluxo de trabalho original iniciar todos os fluxos de trabalho necessários e executar os elementos restantes, ele terminará. No entanto, os fluxos de trabalho assíncronos que ele iniciou continuam a ser executados de forma independente do fluxo de trabalho que os iniciou.
Para fazer com que o fluxo de trabalho de chamada aguarde o resultado do fluxo de trabalho chamado, use um fluxo de trabalho aninhado ou crie uma tarefa programável por script que recupera o estado do token do fluxo de trabalho chamado e, em seguida, recupera o resultado do fluxo de trabalho quando ele for concluído.
Fluxos de Trabalho Agendados
Gerenciado pelo elemento de esquema Agendar Fluxo de trabalho. Um fluxo de trabalho pode chamar um fluxo de trabalho, mas adiar a inicialização dele até uma hora e data posteriores. Em seguida, o fluxo de trabalho de chamada continua a ser executado até terminar. A chamada de um fluxo de trabalho agendado cria uma tarefa para iniciar esse fluxo de trabalho na hora e data especificadas. Quando o fluxo de trabalho de chamada é executado, você pode visualizar o fluxo de trabalho agendado em Atividade > Agendado.
Os fluxos de trabalho agendados só são executados uma vez. Você pode agendar que um fluxo de trabalho seja executado de forma recorrente chamando o método Workflow.scheduleRecurrently em um elemento de tarefa programável por script em um fluxo de trabalho síncrono.
Fluxos de trabalho aninhados
Gerenciado pelo elemento de esquema Fluxos de trabalho aninhados. Um fluxo de trabalho pode iniciar vários fluxos de trabalho simultaneamente aninhando vários fluxos de trabalho em um único elemento de esquema. Todos os fluxos de trabalho listados no elemento de fluxo de trabalho aninhado são iniciados simultaneamente quando o fluxo de trabalho de chamada chega ao elemento de fluxos de trabalho aninhados no esquema. Cada fluxo de trabalho aninhado é iniciado em um espaço de memória diferente do espaço de memória do fluxo de trabalho de chamada. O fluxo de trabalho de chamada aguarda até que todos os fluxos de trabalho aninhados tenham concluído suas execuções antes de começar a executar o próximo elemento no esquema. Como resultado, o fluxo de trabalho de chamada pode usar os resultados dos fluxos de trabalho aninhados como parâmetros de entrada quando ele executa os elementos restantes.