Visão geral da arquitetura
Entenda como Flow Designer funciona em 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 foi criado, atualizado ou excluído. O fluxo pode usar o registro-gatilho 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
- Quando ocorrem as condições do gatilho de fluxo ou uma API chama diretamente o fluxo, o sistema cria uma entrada na fila de eventos para iniciar o fluxo.
- O programador processa o evento e inicia o fluxo em segundo plano.
- O sistema cria um plano de processo a partir do fluxo.
- O sistema executa o plano de processo usando o registro que acionou o fluxo.
- O sistema armazena os detalhes da execução em um registro de contexto.
- 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, Flow Designer cria uma entrada de evento. O sistema processa gatilhos após as operações de banco de dados. Para saber mais, consulte Ordem de execução de scripts e mecanismos. Normalmente, como funcionam as regras de negócios 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-gatilho 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 de processo
Quando Flow Designer 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 publicadas ou subfluxos, 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 saída de subfluxo .
Flow Designer O 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, Flow Designer 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 Flow Designer permite que você aplique mudanças de conjuntos de atualizações e atualizações sem precisar editar os fluxos atuais. Se você mover as 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 na próxima vez em que o fluxo ativado for acionado 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 compilados e as ações do plano de processo.- 4. Execute o plano de processo
Flow Designer executa o plano de processo como o usuário especificado nas propriedades do fluxo e dentro do escopo da aplicação de fluxo.
Ao executar um fluxo com um gatilho baseado em registro, Flow Designer armazena o registro-gatilho 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 de 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 ele é usado.
- 5. Detalhes da execução do fluxo de armazenamento
Flow Designer 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, Flow Designer 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 Completo 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 impede 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 está no estado de espera, o fluxo é desativado e serializado em um registro de contexto. Cancelado 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
Flow Designer O 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 modificou Indica que há mudanças não salvas em um fluxo ou subfluxo. 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. 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 chamados. 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 impede 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, ele será movido 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.
- Status da ação
A interface Designer de ações 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 Mostrar ações de rascunho está habilitado. Se a ação for modificada após ser publicada, a ação será movida 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 as ações em um estado publicado são executadas durante a execução do fluxo.
Desenvolvimento de aplicações
Ao projetar uma ação ou um fluxo, use essas considerações de design como guia.
- Crie uma aplicação personalizada para armazenar fluxos e ações.
- Defina permissões de aplicação para compartilhar ou restringir o acesso aos dados da aplicação.
- Conceda aos desenvolvedores de aplicações acesso a Flow Designer.
- 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
Flow Designer oferece suporte à prevenção de colisão. A prevenção de colisão impede 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 à página inicial Flow Designer. 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 Prevenção de colisão.
Segurança
Controlar o acesso a Flow Designer processos e registros.
- Os administradores podem conceder aos usuários acesso a Flow Designer criando uma aplicação e atribuindo aos usuários desenvolvedores a permissão do Flow Designer 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 a Flow Designer atribuindo diretamente aos usuários a função de usuário flow_designer, que inclui a função para exibir detalhes de execução do fluxo.
Aviso:Conceder diretamente a um usuário a função flow_designer é equivalente a conceder ao usuário a função de administrador, pois Flow Designer 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 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
- Criado ou atualizado
- Atualizado
Prevenção de recursão direta e limite de recursão indireto
- 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 registro de atualização que atualiza um registro de incidente.
- 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 alterar 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.
Teste de fluxo e ação
O teste de um fluxo ignora as condições do gatilho e o executa imediatamente. Testar 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.
- Projete 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 sua ação de rascunho esteja em um estado final. Quando terminar, 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 seu 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 da 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 dos listados no fluxo de rascunho.