Arquitetura do sistema de fluxo de trabalho

Se aplica a: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

A infraestrutura do fluxo de trabalho consiste em dois componentes que são hospedados no AOS (Servidor de Objetos de Aplicativo): o tempo de execução de fluxo de trabalho X++ e o tempo de execução de fluxo de trabalho gerenciado.

O tempo de execução de fluxo de trabalho X++ consiste em:

  • API em tempo de execução de fluxo de trabalho

  • Um trabalho em lotes da mensagem

  • Uma fila de mensagem

O trabalho em lotes da mensagem ou a API do tempo de execução de fluxo de trabalho pode invocar o código do aplicativo, se for necessário. O tempo de execução de fluxo de trabalho X++ é compilado no CIL (Common Intermediate Language) do .NET Framework. Para obter mais informações, consulte X++ Compiled to .NET CIL.

O tempo de execução de fluxo de trabalho gerenciado consiste no Windows Workflow Foundation e nas extensões do Microsoft Dynamics AX.

Logicamente, a infraestrutura do fluxo de trabalho é uma extensão do Microsoft Dynamics AX e é transparente para os usuários. Fisicamente, os tempos de execução de fluxo de trabalho gerenciado e X++ são hospedados no AOS. A infraestrutura do fluxo de trabalho usa processamento em lote no AOS e no .NET Interop para integrar ambos os subsistemas e passar mensagens de um subsistema para outro. O código X++ que é executado no processador em lote é compilado para o .NET CIL. O processamento em lote é executado no CLR (Common Language Runtime) do .NET.

A figura a seguir ilustra a arquitetura de alto nível da infraestrutura do fluxo de trabalho.

Workflow architecture

Os usuários podem usar os formulários e os controles do fluxo de trabalho no cliente do Microsoft Dynamics AX e no Portal Empresarial do Microsoft Dynamics AX para participar de processos comerciais.

Os desenvolvedores podem criar fluxos de trabalho para objetos que adicionou ao Microsoft Dynamics AX. Para obter mais informações, consulte Implementing Workflow for Microsoft Dynamics AX.

A tabela a seguir descreve as etapas do fluxo de trabalho que ocorrem quando um usuário envia um relatório de despesas para o sistema de fluxo de trabalho para aprovação.

Etapa

Tempo de execução

Atividade

1

Tempo de execução do fluxo de trabalho X++

Um usuário envia um relatório de despesas clicando no botão Enviar em um dos controles do fluxo de trabalho. Isso faz com que o código X++ ative uma instância de fluxo de trabalho chamando a API do tempo de execução de fluxo de trabalho. A API do tempo de execução de fluxo de trabalho lança uma mensagem para a fila de mensagens. O trabalho em lotes da mensagem lê a mensagem e envia uma solicitação de ativação de fluxo de trabalho para o tempo de execução de fluxo de trabalho gerenciado.

Observação

O trabalho em lotes da mensagem processa a fila de mensagens em intervalos de um minuto.

2

Tempo de execução de fluxo de trabalho gerenciado

O .NET Interop do X++ recebe a mensagem e inicia uma nova instância de fluxo de trabalho por meio do Windows Workflow Foundation. Essa instância de fluxo de trabalho executa um retorno de chamada à API do tempo de execução de fluxo de trabalho X++ por meio do .NET Interop para CIL do X++ e lança uma mensagem informando que o fluxo de trabalho foi iniciado.

Após lançar a mensagem, o tempo de execução de fluxo de trabalho gerenciado salva a instância de fluxo de trabalho ociosa no banco de dados do Microsoft Dynamics AX. O tempo de execução então a remove da memória. Quando o tempo de execução de fluxo de trabalho gerenciado receber outra mensagem do tempo de execução de fluxo de trabalho X++ para essa instância de fluxo de trabalho, ele irá restaurar a instância do fluxo de trabalho na memória e retomá-la.

Cada instância de fluxo de trabalho é exclusiva. Se você tiver dois usuários que enviaram os relatórios de despesas para aprovação, duas instâncias de fluxo de trabalho serão iniciadas.

3

Tempo de execução do fluxo de trabalho X++

O trabalho em lotes da mensagem lê a mensagem de fluxo de trabalho iniciado na fila de mensagens e invoca o manipulador de eventos do aplicativo para processar um evento de fluxo de trabalho iniciado. O trabalho em lotes então lança uma mensagem de confirmação de que o evento foi processado.

4

Ambos

Esse mesmo padrão de mensagem é repetido, conforme a necessidade, por todo o ciclo de vida da instância de fluxo de trabalho.

A arquitetura do fluxo de trabalho ajuda a fornecer um sistema de mensagens confiável e durável, além de ajudar a garantir que o estado do fluxo de trabalho esteja sempre sincronizado com o estado do aplicativo. No caso de uma falha inesperada de hardware ou software, o estado da instância de fluxo de trabalho é retornado ao seu último ponto salvo conhecido e a mensagem permanece na fila. Portanto, de uma perspectiva da arquitetura, o modelo de recuperação é solucionar o problema e continuar o fluxo de trabalho.