Visão geral da arquitetura

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 14 min. de leitura
  • Entenda como Workflow Studio funciona dentro do Now Platform para ativar, acionar e processar fluxos e ações.

    Um fluxo consiste em um gatilho e uma ou mais ações. O gatilho especifica quando iniciar o fluxo, que pode ser baseado em registro, em programaçãoou em aplicação. Os gatilhos baseados em registro executam um fluxo depois que um registro é criado, atualizado ou excluído. O fluxo pode usar o registro de acionamento como entrada para ações. Os gatilhos baseados em programação executam um fluxo na data e hora especificadas. O fluxo pode usar o tempo de execução como entrada para ações. Os gatilhos de aplicação são adicionados quando a aplicação associada é ativada. Por exemplo, o gatilho MetricBase está presente quando a aplicação MetricBase está ativa.

    Processamento de fluxo

    O processamento de fluxo ocorre nesta sequência.
    1. Quando as condições do gatilho de fluxo ocorrem ou uma API chama diretamente o fluxo, o sistema cria uma entrada na fila de eventos para iniciar o fluxo.
    2. O programador processa o evento e inicia o fluxo em segundo plano.
    3. O sistema cria um plano de processo a partir do fluxo.
    4. O sistema executa o plano de processo usando o registro que acionou o fluxo.
    5. O sistema armazena os detalhes da execução em um registro de contexto.

    Diagrama de processamento de fluxo

    1. Processar gatilhos de fluxo e chamadas de API
    Cada vez que as condições do gatilho são atendidas ou uma API chama diretamente um fluxo, Workflow Studio cria uma entrada de evento. O sistema processa gatilhos após operações de banco de dados. Para saber mais, consulte Ordem de execução de scripts e mecanismos. Normalmente, como as regras de negócio funcionam e a ordem de operação do mecanismo de fluxo de trabalho que são executadas de forma síncrona são executadas antes de um fluxo acionado.
    2. Processar eventos na fila
    Cada evento de fluxo contém uma referência ao fluxo a ser iniciado e uma referência ao registro de acionamento ou ao tempo de execução. O sistema processa esses eventos usando eventos em que um programador trabalha periodicamente nos itens atuais na fila de eventos na ordem em que foram adicionados. Dependendo de quais outros eventos estão na fila, o sistema pode não iniciar um fluxo imediatamente. Os designers de fluxo devem esperar algum tempo de atraso entre o momento em que as condições do gatilho ocorrem e o momento em que o fluxo realmente começa.
    3. Criar o plano do processo

    Quando Workflow Studio extrai um evento da fila, ele cria um plano de processo para realmente executar o fluxo. Um plano de processo contém todas as informações necessárias para executar um fluxo, como a sequência de ações ou subfluxos publicados, os valores de entrada para cada subfluxo ou ação, as etapas de ação a serem executadas para cada ação e os dados fornecidos pelo gatilho ou pela saída do subfluxo .

    Workflow Studio usa um esquema de compilação just-in-time para garantir que os planos de processo contenham as mudanças mais recentes nos fluxos, subfluxos e ações. Se nenhuma mudança for detectada, Workflow Studio usará uma cópia em cache do plano de processo. Caso contrário, ele criará um novo plano de processo.

    Ao verificar automaticamente se há fluxos, subfluxos e ações atualizados com planos de processo, o Workflow Studio permite que você aplique mudanças de conjuntos de atualizações e upgrades sem precisar editar os fluxos atuais. Se você mover ações publicadas para uma instância de destino, todos os fluxos que usam a ação publicada serão atualizados automaticamente na próxima vez em que forem executados.

    Aviso:
    Se estiver alterando subfluxos ou ações usadas em fluxos ativados, não altere as entradas e saídas usadas no subfluxo ou na ação. Alterar entradas e saídas pode causar erros quando o fluxo ativado for acionado novamente porque ele não foi configurado para usar as novas entradas e saídas. Todos os fluxos em execução no momento não são afetados por mudanças nas entradas ou saídas, pois o fluxo usa os subfluxos e as ações compilados do plano de processo.
    4. Executar o plano de processo

    Workflow Studio executa o plano de processo como o usuário especificado nas propriedades de fluxo e o executa dentro do escopo da aplicação de fluxo.

    Ao executar um fluxo com um gatilho baseado em registro, Workflow Studio armazena o registro de acionamento na memória como uma instância que é representada na interface como uma cápsula de dados.

    Cada vez que você adiciona uma ação a um fluxo, o Flow Designer adiciona uma cápsula de dados para armazenar seus resultados. O nome da cápsula de dados indica sua sequência no fluxo e seu tipo de dados. Os designers de fluxo usam cápsulas de dados de resultado da ação para fornecer entrada para outros fluxos, ações ou subfluxos. Os designers de fluxo podem usar o valor de sequência no nome da cápsula de dados para garantir que eles selecionem a cápsula de dados correta como um valor de entrada. Quando um fluxo executa uma ação, ele gera o valor de tempo de execução da cápsula de dados conforme é usado.

    5. Armazenar detalhes de execução do fluxo

    Workflow Studio armazena detalhes de execução de fluxo em um registro de contextode fluxo que contém essas informações.

    • Estado do resultado do fluxo
    • Duração do tempo de execução do fluxo
    • Mensagens de log de fluxo
    • Configuração de fluxo e valores de tempo de execução
    Cada vez que um fluxo é executado, Workflow Studio adiciona uma entrada à lista de execuções de fluxo. Cada entrada tem seu próprio registro de contexto e página de detalhes de execução correspondente.
    Nota:
    Um contexto de execução de fluxo é executado em um único thread. No entanto, pode haver momentos em que você desejará executar fluxos em contextos separados, embora isso possa consumir mais recursos da sua instância. Para executar subfluxos em contextos de fluxo separados dentro do mesmo fluxo, consulte Fluxos dinâmicos.

    Um fluxo pode ter um desses estados de resultado.

    Estado Descrição
    Concluir O fluxo foi concluído com sucesso.
    Em andamento O fluxo está em execução. Por padrão, uma regra de cota de transação evita que os fluxos sejam executados por mais de uma hora.
    Aguardando O fluxo está aguardando a ocorrência de outro evento. Por exemplo, um usuário deve atualizar uma tarefa ou aprovação, ou um registro deve atingir um estado específico. Quando no estado de espera, o fluxo é desativado e serializado em um registro de contexto.
    Cancelada O fluxo foi cancelado por um usuário.
    Erro O fluxo encontrou um erro e parou de ser executado. Por exemplo, uma ação não tem um valor de entrada ou uma regra de transação de cota interrompeu o fluxo.

    Fluxo, subfluxo e ciclo de vida da ação

    Workflow Studio usa o fluxo ou o status da ação para descrever o estado atual das mudanças de configuração.

    Status de fluxo e subfluxo e estado de ativação

    O campo Status indica se há um plano de processo associado ao fluxo ou subfluxo.

    Status do fluxo Descrição
    Modificado Indica que há mudanças não salvas em um fluxo ou subfluxo. Os fluxos ou subfluxos modificados não foram salvos.
    Rascunho Indica que há mudanças salvas em um fluxo ou subfluxo que não foram armazenadas em um plano de processo. Os fluxos de rascunho foram salvos, mas não ativados. Os subfluxos de rascunho foram salvos, mas não publicados.
    Publicado Indica que há um plano de processo armazenado para o fluxo ou subfluxo. Os fluxos publicados foram ativados ou desativados.

    O campo Ativo indica se o sistema executa um fluxo ou subfluxo.

    Ativo Descrição
    Verdadeiro Indica que o fluxo ou subfluxo está ativo e é executado quando acionado ou chamado. O fluxo foi ativado ou o subfluxo foi publicado. Os fluxos ativos são executados quando as condições do gatilho são atendidas ou quando são chamadas. Os subfluxos ativos são executados quando chamados.
    Falso Indica que o fluxo está inativo e não é executado quando acionado ou chamado. Um fluxo inativo nunca foi ativado ou foi desativado. Um subfluxo inativo nunca foi publicado.
    Ao trabalhar com fluxos, você pode:
    • Salvar um fluxo: cria um rascunho do fluxo.
    • Ativar um fluxo: habilita o gatilho de fluxo e transforma o fluxo em um plano de processo.
    • Desativar um fluxo: desabilita o gatilho de fluxo e evita novas execuções de fluxo. Os fluxos em execução no momento continuam a ser executados.

    Ao trabalhar com subfluxos, você pode:

    • Salvar um subfluxo: cria um rascunho do subfluxo. Se o subfluxo for modificado após ser publicado, o subfluxo passará para um estado de rascunho. Todos os fluxos ativos que usam o subfluxo executam somente o subfluxo publicado.
    • Publicar um subfluxo: permite que você ative um fluxo que contém o subfluxo. A publicação adiciona o subfluxo à lista de subfluxos disponíveis em um fluxo.

    Diagrama de fluxo de ciclo de vida
    Status da ação

    A interface Workflow Studio não exibe o status de configuração das ações. Para exibir o status da ação, navegue até a tabela Tipos de ação [sys_hub_action_type_definition] e exiba o campo Estado de rascunho.

    Status de rascunho da ação Descrição
    Rascunho Indica que há mudanças em uma ação que não foram publicadas. As ações de rascunho só estão disponíveis para fluxos quando a opção Mostrar ações de rascunho está habilitada. Você não pode ativar um fluxo que contém ações de rascunho.
    Publicado Indica que a ação foi publicada. As ações publicadas estão disponíveis para todos os fluxos e permitem que os fluxos sejam ativados.

    Ao trabalhar com ações, você pode:

    • Salvar uma ação: cria um rascunho da ação que só está disponível para fluxos quando a opção Mostrar ações de rascunho está habilitada. Se a ação for modificada após ser publicada, a ação passará para um estado de rascunho. Todos os fluxos ativos que usam a ação executam somente a ação publicada.
    • Publicar uma ação: permite que você ative um fluxo que contém a ação. A publicação adiciona a ação à lista de ações disponíveis em um fluxo. Somente ações em um estado publicado são executadas durante a execução do fluxo.

    Diagrama de ciclo de vida da ação

    Desenvolvimento de aplicações

    Ao projetar uma ação ou um fluxo, use estas diretrizes gerais.

    Use recursos de desenvolvimento de aplicações padrão Now Platform para criar, gerenciar, proteger e implantar conteúdo Workflow Studio. Os designers de fluxo e ação normalmente executam as seguintes tarefas de desenvolvimento de aplicações:
    • Crie uma aplicação personalizada para armazenar fluxos e ações.
    • Defina as permissões da aplicação para compartilhar ou restringir o acesso aos dados da aplicação.
    • Conceda aos desenvolvedores de aplicações acesso a Workflow Studio.
    • Publique aplicações personalizadas no repositório de aplicações para implantar fluxos e ações em outras instâncias.

    Prevenção de colisão

    Workflow Studio oferece suporte à prevenção de colisões. A prevenção de colisão evita que um usuário modifique um objeto que está sendo modificado em um conjunto de atualizações diferente. Por exemplo, o Usuário A está editando um fluxo em um conjunto de atualizações específico. O usuário B, que está trabalhando em um conjunto de atualizações diferente, tenta abrir o mesmo fluxo. Nessa situação, o sistema detecta uma colisão e alerta o Usuário B. O Usuário B pode optar por Cancelar ou Continuar. Selecionar Cancelar leva o Usuário B de volta para a página inicial Workflow Studio. Selecionar Continuar abre o fluxo no modo somente leitura.

    Para que a prevenção de colisão funcione, ambos os usuários devem estar no mesmo escopo da aplicação e deve ser um escopo da aplicação diferente de global. Além disso, a aplicação que está sendo modificada deve estar vinculada ao controle de código-fonte. Para obter mais informações, consulte Como evitar colisões.

    Segurança

    Controle o acesso a Workflow Studio processos e registros.

    • Os administradores podem conceder aos usuários acesso aos fluxos do Workflow Studio criando uma aplicação e atribuindo usuários como desenvolvedores com a permissão Workflow Studio desenvolvimento delegado. O desenvolvimento delegado permite que os administradores controlem se os designers de fluxo podem acessar recursos normalmente restritos a usuários administradores, como atribuição de funções de usuário, criação de controles de acesso ou criação de scripts. Para obter mais informações, consulte Permissões de desenvolvedor.
    • Os administradores podem conceder acesso aos fluxos do Workflow Studio atribuindo usuários diretamente à função do usuário flow_designer, que inclui a função para exibir detalhes da execução de fluxos.
      Aviso:
      Conceder diretamente a um usuário a função flow_designer é equivalente a conceder ao usuário a função de administrador, pois Workflow Studio pode executar fluxos como o usuário do sistema, que tem acesso a todas as tabelas e todas as operações do banco de dados.
    • Os designers de fluxo e ação podem usar as configurações padrão de acesso à aplicação para gerenciar como seu conteúdo interage com outras aplicações.

    Limite de ação

    Por padrão, os fluxos não podem ter mais de 50 ações. Para mudar o comportamento padrão, aumente o valor da propriedade do sistema sn_flow_designer.max_actions. No entanto, considere o impacto no desempenho que um fluxo grande pode ter em sua instância.

    Opções de gatilho para atualizações de registro

    Os designers de fluxo podem especificar com que frequência um fluxo pode atualizar um registro específico com a opção Executar gatilho. Use a opção Uma vez quando quiser que um fluxo seja executado apenas uma vez. Na primeira vez em que um registro é atualizado, o fluxo é executado, mas qualquer atualização de registro posterior não aciona o fluxo. Use a opção Sempre quando quiser que o fluxo seja executado sempre que um registro for atualizado e ainda não houver um fluxo ativo em execução para ele. Por exemplo, você pode definir um fluxo que atribui um registro de incidente para ser executado apenas uma vez e definir um fluxo que notifica a lista de observação de incidentes para sempre ser executado. O campo Executar gatilho só está disponível para esses tipos de gatilho.
    • Criado ou atualizado
    • Atualizado em

    Prevenção de recursão direta e limite de recursão indireta

    Para evitar indisponibilidades de instância e o consumo de recursos do sistema, Workflow Studio ignora qualquer solicitação para iniciar um fluxo ou subfluxo que seja resultado de recursão direta. A recursão direta ocorre nessas condições.
    • Uma ação chama o mesmo fluxo do qual faz parte. Por exemplo, uma etapa de script faz uma chamada de API para um fluxo.
    • Uma ação ou subfluxo produz um resultado correspondente ao gatilho de fluxo. Por exemplo, um fluxo que é executado quando um registro de incidente é atualizado contém uma ação de atualização de registro que atualiza um registro de incidente.
    Workflow Studio também limita o número de vezes que um fluxo pode ser iniciado a partir de recursão indireta. A recursão indireta ocorre nessas condições.
    • O mesmo fluxo é chamado várias vezes em uma cadeia de chamadas de subfluxo. Por exemplo, se o subfluxo A chamar o subfluxo B e o subfluxo B chamar o subfluxo A, chamar qualquer um dos subfluxos produzirá recursão indireta.
    • O mesmo fluxo é acionado várias vezes em uma cadeia de subfluxos. Por exemplo, suponha que haja dois fluxos acionados pela criação do registro. Suponha que a criação do registro A acione o fluxo A e também crie o registro B. Além disso, a criação do registro B aciona o fluxo B e cria o registro A. A criação de qualquer tipo de registro produz recursão indireta.

    Por padrão, o sistema para de acionar execuções de fluxo depois que a contagem de execuções atinge o limite de recursão indireta de três execuções. Os administradores podem mudar o limite definindo a propriedade do sistema com.glide.hub.flow_engine.indirect_recursion_limit como um valor inteiro igual ou maior que um. O sistema ignora qualquer valor de propriedade menor que um e, em vez disso, usa um limite de um. Considere o impacto no desempenho que o aumento do limite de recursão indireta pode ter em sua instância.

    Nota:
    Por padrão, uma regra de cota de transação evita que os fluxos sejam executados por mais de uma hora.

    Testes de fluxo e ação

    O teste de um fluxo ignora as condições do gatilho e o executa imediatamente. O teste de um fluxo com um gatilho baseado em registro requer a seleção de um registro específico para atuar como o gatilho. Os designers de fluxo devem gerar registros de amostra apropriados antes do teste. Para obter mais informações sobre como testar um fluxo, consulte Testar um fluxo.

    Durante a fase de design, você pode testar ações não publicadas definindo Mostrar ações de rascunho no fluxo. Se estiver testando com ações de rascunho, use estas diretrizes.

    • Projetar fluxos e ações em uma instância de não produção. Implante somente fluxos de trabalho ativos em sua instância de produção.
    • Deixe Mostrar ações de rascunho definido como verdadeiro até que a ação de rascunho esteja em um estado final. Depois de finalizado, publique cada ação, defina Mostrar ações de rascunho como falso e ative o fluxo.
      Aviso:
      Desabilitar Mostrar ações de rascunho antes de publicar suas ações remove todas as ações de rascunho do fluxo.
    • Qualquer mudança feita em um fluxo ativo ou ação publicada faz com que ele retorne ao estado de rascunho. Se o fluxo for acionado, o sistema executará somente o fluxo ativado e as ações publicadas, e os detalhes de execução do fluxo exibirão somente o que foi executado. Quando há um rascunho de um fluxo ativo, o gatilho e as ações listadas nos detalhes de execução do fluxo podem ser diferentes daqueles listados no fluxo de rascunho.