Eventos de fluxo de trabalho

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • O sistema emprega dois tipos de eventos: eventos registrados da plataforma e eventos de fluxo de trabalho.

    Eventos registrados da plataforma

    Os eventos registrados são criados em regras de negócio e usados para tarefas como o envio de notificações por e-mail quando registros são inseridos no banco de dados. Os eventos de fluxo de trabalho são registrados somente nos fluxos de trabalho e não são usados em nenhum outro lugar na plataforma. Os eventos registrados da plataforma podem ser acionados por um fluxo de trabalho para uso externo, mas não podem ser usados dentro de um fluxo de trabalho.

    Eventos de fluxo de trabalho

    Os eventos de fluxo de trabalho seguem regras diferentes daquelas para os eventos da plataforma, que são registrados usando o registro de eventos. Os eventos da plataforma são inseridos na tabela Registro de eventos [sysevent_register] e estão disponíveis para uso dos processos da plataforma. Os eventos de fluxo de trabalho são acionados exclusivamente para o mecanismo de fluxo de trabalho e são usados somente para direcionar o trabalho de execução de contextos de fluxo de trabalho. Quando um evento é registrado em um fluxo de trabalho, ele é anexado a uma atividade em execução no momento na coluna registered_events da tabela Atividade de execução de fluxo de trabalho [wf_executing].

    Os eventos de fluxo de trabalho também podem ser transmitidos para um fluxo de trabalho de qualquer origem de script que tenha acesso ao contexto de fluxo de trabalho, como uma inclusão de script ou uma atividade Executar script. Nesse caso, o evento, como cancelar, é passado para todos os registros na tabela Atividade de execução de fluxo de trabalho [wf_executing] para um contexto específico.

    Seja por registro ou por transmissão, um evento é tratado pela definição de atividade associada à atividade em execução no momento. Cada definição de atividade vem com um conjunto de manipuladores. Por exemplo, a maioria das atividades vem com os manipuladores de eventos onExecute, onCancele onUpdate. Como exemplo de um evento mais específico, a atividade Aprovação - Usuário também vem com onDetermineApprovalState, que é específico para o trabalho da atividade de aprovação.

    Vários eventos paralelos

    Um único fluxo de trabalho pode ter vários threads de evento em execução simultânea, como quando um fluxo de trabalho tem temporizadores que se sobrepõem em ramificações separadas do fluxo de trabalho. Se algum thread adicional for concluído antes do primeiro thread, o sistema armazenará as informações de evento do thread adicional na tabela Comandos enfileirados de fluxo de trabalho [wf_command]. Depois que o primeiro thread é concluído, o sistema recupera as informações armazenadas pelo thread adicional e prossegue no fluxo de trabalho com as informações do evento de cada thread.