Visão geral da arquitetura
Entenda como Workflow Studio funciona no ServiceNow AI 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 , baseado em programação ou baseado em aplicação . Gatilhos baseados em registro executam um fluxo depois que um registro é criado, atualizado ou excluído. O fluxo pode usar o registro-gatilho como entrada para ações. 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. Gatilhos de aplicação são adicionados quando a aplicação associada é ativada. Por exemplo, o. MetricBase o gatilho está presente quando MetricBase a aplicação 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. Gatilhos de fluxo de processo 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. Ordem de operação do mecanismo de fluxo de trabalho executados de forma síncrona antes de um fluxo acionado.
- 2. Processar eventos na fila
- Cada evento de fluxo contém uma referência ao fluxo que será iniciado e uma referência ao registro-gatilho ou ao ambiente 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 eles foram adicionados. Dependendo de quais outros eventos estão na fila, o sistema pode não iniciar imediatamente um fluxo. 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. Crie o plano de processo
Quando Workflow Studio extrai um evento da fila, ele cria um plano de processo 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 pela saída do gatilho ou 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 em fluxos, subfluxos e ações. Se nenhuma mudança for detectada, Workflow Studio usa uma cópia em cache do plano de processos. Caso contrário, ele criará um plano de processo.
Verificando automaticamente se há fluxos, subfluxos e ações atualizados com planos de processo, Workflow Studio permite que você aplique mudanças de conjuntos de atualizações e upgrades sem precisar editar fluxos atuais. Se você mover as ações publicadas para uma instância de destino, cada fluxo que usá-las será atualizado automaticamente na execução seguinte.
Aviso:ao mudar subfluxos ou ações usados em fluxos ativados, não mude as entradas e saídas usadas neles. Mudar entradas e saídas pode causar erros quando o fluxo ativado é acionado em seguida porque ele não foi configurado para usar as novas entradas e saídas. Nenhum fluxo em execução no momento é afetado por alterações nas entradas ou saídas porque são usados os subfluxos e ações compilados do plano de processo.- 4. Execute o plano de processo
Workflow Studio executa o plano de processos conforme o usuário especificado nas propriedades de fluxo e o executa no 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 um instância representado na interface como um 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 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 da execução do fluxo
Workflow Studio armazena detalhes de execução de fluxo em um registro de contexto de fluxo , que contém essas informações.
- Estado do resultado do fluxo
- Duração do ambiente de execução do fluxo
- Mensagens de log do fluxo
- Valores de configuração e ambiente de execução do fluxo
Cada vez que um fluxo é executado, Workflow Studio adiciona uma entrada ao Execuções de fluxo lista. Cada entrada tem o próprio registro de contexto e uma 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 dos estados de resultado a seguir.
Estado Descrição Concluídas o fluxo foi concluído. Em andamento o fluxo está em andamento. 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 conclusão de outro evento. Por exemplo, um usuário deve atualizar uma tarefa ou aprovação, ou um registro deve atingir um estado específico. No estado Aguardando, o fluxo é silenciado 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 interromperu o fluxo.
Fluxo, subfluxo e ciclo de vida da ação
Workflow Studio usa o status de fluxo ou ação para descrever o estado atual das mudanças de configuração.
- Status de fluxo e subfluxo e estado de ativação
. Status o campo 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 processos. 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. . Ativo o campo indica se o sistema executa um fluxo ou subfluxo.
Ativo Descrição Verdadeiro(a) 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 chamados. Os subfluxos ativos são executados quando chamados. Falso(a) 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, o subfluxo será movido para um estado de rascunho. Todos os fluxos ativos que usam o subfluxo executam somente o subfluxo publicado.
- Publicar Um subfluxo: Permite ativar 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
. Workflow Studio a interface 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 Estado de rascunho campo.
Status do 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 Mostrar ações de rascunho a opção 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 habilitado. Se a ação for modificada depois de 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 ativar 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.
Desenvolvimento de aplicações
Ao projetar uma ação ou um fluxo, use estas diretrizes gerais.
- Crie uma aplicação personalizada para armazenar fluxos e ações.
- Defina 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 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 qualquer uma delas Cancelar ou Continuar . Selecionando Cancelar Leva o Usuário B de volta para Workflow Studio página inicial. Selecionando Continuar abre o fluxo no modo somente leitura.
Para que a prevenção de colisões 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 ser vinculada ao controle de código-fonte. Para obter mais informações, consulte Prevenção de colisão .
Segurança
Controle o acesso ao Workflow Studio processos e registros.
- Os administradores podem conceder aos usuários acesso a. Workflow Studiocria uma aplicação e atribui usuários como desenvolvedores com o. desenvolvimento delegado permissão. 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 o padrão Configurações de acesso à aplicação para gerenciar como o conteúdo deles 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.
Acionar opções para atualizações de registro
- Criado ou atualizado
- Atualização em
Prevenção de recursão direta e limite de recursão indireta
- 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 de 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. Criar qualquer um dos tipos 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_limitpara 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
Testar 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.
- 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.
- Sair Mostrar ações de rascunho definido como verdadeiro até que sua ação de rascunho esteja em um estado final. Uma vez final, publique cada ação, defina Mostrar ações de rascunho para falso e ative o fluxo. Aviso:Desabilitando Mostrar ações de rascunho antes de publicar suas ações, todas as ações de rascunho são removidas 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 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.