Configurar fases e passos do fluxo de trabalho em tempo real

Ao estruturar fluxos de trabalho tem a opção de conter a lógica que pretende executar nas fases e nos passos.

  • Fases. As fases facilitam a leitura da lógica de fluxo de trabalho em tempo real e explicam a lógica de fluxo de trabalho em tempo real. No entanto, as fases não afetam a lógica ou o comportamento dos fluxos de trabalho. Se um processo tiver fases, quaisquer passos do processo têm de estar contidos numa fase.
  • Passos. Os passos são uma unidade de lógica de negócio num fluxo de trabalho. Os passos podem incluir condições, acções, outros passos ou uma combinação destes elementos.

Ações que os processos de fluxo de trabalho em tempo real podem executar

Os processos de fluxo de trabalho em tempo real podem efetuar as ações listadas na tabela seguinte.

Ação Descrição
Criar Linha Cria uma nova linha para uma tabela e atribui os valores que selecionar a atributos.
Atualizar Linha Poderá atualizar o registo no qual o fluxo de trabalho em tempo real está em execução, quaisquer registos associados a esse registo num relacionamento N:1, ou quaisquer registos criados por passos anteriores.
Atribuir Linha Poderá atribuir o registo no qual o fluxo de trabalho em tempo real está em execução, qualquer um dos registos associados a esse registo numa relação N:1, ou quaisquer registos criados por etapas anteriores.
Enviar Mensagem de E-mail Envia uma mensagem de correio eletrónico. Pode optar por criar uma mensagem de e-mail nova ou utilizar um modelo de e-mail configurado para a tabela da linha em que o fluxo de trabalho em tempo real está a executar, quaisquer tabelas que tenham uma relação N:1 com a tabela ou a tabela para quaisquer linhas criadas por passos anteriores.
Iniciar Fluxo de Trabalho Filho Inicia um processo de fluxo de trabalho em tempo real configurado como um fluxo de trabalho filho.
Alterar Estado Altera o estado da linha na qual o processo está em execução, quaisquer linhas associadas a essa linha numa relação N:1 ou quaisquer linhas criadas por passos anteriores.
Parar Fluxo de Trabalho Interrompe o fluxo de trabalho atual. Pode definir o estado de Com êxito ou de Cancelado e especificar uma mensagem de estado.

Quando os fluxos de trabalho em tempo real são configurados para um evento, parar um fluxo de trabalho em tempo real com o estado cancelado impedirá que a ação de evento seja concluída. Vá a Utilizar fluxos de trabalho em tempo real para obter mais informações.
Passo Personalizado Os programadores podem criar passos de fluxo de trabalho em tempo real personalizados que definem ações. Por predefinição, não há passos personalizados disponíveis.

Definir valores de linha

Quando cria uma linha pode definir valores para a linha. Quando atualiza uma linha pode definir, acrescentar, incrementar, decrementar, multiplicar ou limpar valores.

Quando seleciona Definir propriedades, é aberta uma caixa de diálogo que mostra o formulário predefinido para a tabela.

No final da caixa de diálogo vês uma lista de colunas adicionais que não estão presentes no formulário.

Para qualquer coluna, podes definir um valor estático que é definido pelo fluxo de trabalho.

No lado direito da caixa de diálogo, o Assistente de formulários fornece a capacidade de ajustar ou acrescentar valores dinâmicos ao contexto da linha atual. Isto inclui valores de linhas relacionadas que podem ser acessadas a partir das relações de N:1 (muitos-para-um) para a tabela.

As opções disponíveis no Assistente de Formulários dependem da coluna que selecionou no formulário. Quando defines um valor dinâmico, vês um marcador amarelo conhecido como "slug" que mostra onde os dados dinâmicos estão incluídos. Se quiser remover o valor, selecione o slug e elimine-o. Para colunas de texto, poderá utilizar uma combinação de dados estáticos ou dinâmicos.

Com valores dinâmicos não tem a certeza de que uma coluna ou uma tabela relacionada tem o valor que pretende definir. Pode efetivamente definir várias colunas para definir o valor e ordená-las em sequência utilizando as setas verdes. Se a primeira coluna não tiver dados, experimente na segunda coluna e assim. Se nenhum das colunas tiver dados, pode especificar um valor predefinido a utilizar.

Definir condições para ações de fluxo de trabalho em tempo real

As ações que aplicas dependem frequentemente das condições. Os processos de fluxo de trabalho em tempo real fornecem várias maneiras para definir condições definidas e criar lógica de ramificação para obter os resultados pretendidos. Pode verificar os valores da linha contra a qual o processo de fluxo de trabalho em tempo real está a ser executada, qualquer das linhas associadas a essa linha numa relação N:1 ou valores do processo propriamente dito.

Tipo de Condição Descrição
Condição de Verificação Uma instrução lógica "se <condição> então".

Poderá verificar os valores atuais da linha na qual o fluxo de trabalho em tempo real está em execução, quaisquer linhas associadas a essa linha numa relação N:1 ou quaisquer linhas criadas por passos anteriores. Com base nestes valores pode definir passos adicionais quando a condição é true.

Na instrução "if <condição> then", pode utilizar os seguintes operadores: É igual a, Não é igual a, Contém dados, Não contém dados, Abaixo de e Não abaixo de.

Nota:Abaixo e Acima são operadores hierárquicos. Só podem ser utilizados em tabelas que tenham uma relação hierárquica definida. Se estiver a tentar usar estes operadores nas tabelas que não têm a relação hierárquica definida, veja a mensagem de erro: "Está a usar um operador hierárquico numa tabela que não tem uma relação hierárquica definida. Ou torna a tabela hierárquica (marcando uma relação como hierárquica) ou usa um operador diferente."

Para obter mais informações sobre relações hierárquicas, aceda a Definir e consultar dados hierárquicos relacionados. Uma captura de ecrã que se segue à tabela é um exemplo da definição do processo de fluxo de trabalho em tempo real utilizando os operadores hierárquicos Inferior e Não Inferior.
Ramo Condicional Uma declaração lógica “else-if-then", o editor utiliza o texto “Pelo contrário, if <condition> then:”

Selecione uma condição de verificação que tenha definido anteriormente e pode adicionar um desvio condicional para definir passos adicionais quando a condição de verificação devolver falso.
Ação Predefinida Uma declaração "else" lógica. O editor usa o texto “Caso contrário:”

Selecione uma condição de verificação, ramo condicional, condição de espera ou ramo de espera paralela que tenha definido anteriormente e pode usar uma ação por defeito para definir passos para todos os casos que não correspondam aos critérios definidos em condição ou elementos de ramo.
Condição de Espera Os fluxos de trabalho em tempo real não podem utilizar condições de espera. No entanto, as condições de espera podem ser utilizadas com fluxos de trabalho de segundo plano. Mais informações: Definir condições para ações de fluxo de trabalho de segundo plano
Ramo de Espera Paralelo Define uma condição de espera alternativa para um fluxo de trabalho em tempo real com um conjunto correspondente de passos adicionais que só são executados quando o critério inicial é satisfeito. Pode utilizar ramos de espera paralelos para criar limites de tempo na lógica de fluxo de trabalho em tempo real. Ajudam a evitar que o fluxo de trabalho em tempo real espere indefinidamente até que os critérios definidos numa condição de espera sejam cumpridos.
Passo Personalizado Os programadores podem criar passos de fluxo de trabalho em tempo real personalizados que definem condições. Não existem passos personalizados disponíveis por predefinição.

A captura de ecrã seguinte contém um exemplo da definição do processo de fluxo de trabalho com os operadores hierárquicos Abaixo e Não Abaixo. No nosso exemplo, as aplicamos dois descontos diferentes em dois grupos de contas. Em Adicionar passo, selecionámos Verificar Condição para especificar a condição if-then que contém os operadores Abaixo de ou Não Abaixo de. Primeira condição If-Then aplica-se a todas as contas que estão sob a conta da Alpine Ski House. Essas contas recebem um desconto de 10% em bens e serviços adquiridos. A segunda condição se-então aplica-se a todas as contas que não estão sob a conta Alpine Ski House e recebem um desconto de 5%. Depois, selecionamos Atualizar Linha para definir a ação a efetuar com base na condição.

Processo de fluxo de trabalho com operadores Em/Não em.

Iniciar fluxos de trabalho em tempo real antes ou depois de alterações do estado

Quando configura Opções para processos automáticos para fluxos de trabalho em tempo real, as opções de Iniciar quando do evento de alterações do estado permitem-lhe selecionar Depois ou Antes para o momento em que o estado é alterado. A opção predefinida é Depois.

Quando selecionas Antes , estás a dizer que queres que a lógica no fluxo de trabalho em tempo real seja aplicada antes de os dados que alteram o estado serem guardados. Este procedimento fornece a capacidade de verificar os valores antes de outra lógica ser aplicada depois da operação e impedir que uma lógica adicional seja executada. Por exemplo, pode ter lógica adicional num plug-in ou numa ação de fluxo de trabalho personalizada em tempo real que pode iniciar ações noutro sistema. Ao interromper o processamento adicional, pode evitar casos em que sistemas externos sejam afetados. Aplicar fluxos de trabalho em tempo real antes deste evento também significa que outras ações de workflow em tempo real ou plug-ins que possam guardar dados não precisam de ser "revertidas" quando a operação é cancelada.

Ação Começar quando Explicação
A linha é criada Depois de Apenas Depois está disponível. A linha não terá um identificador exclusivo até depois da fase interna da MainOperation, pelo que não pode ocorrer antes da linha ser criada.
Alterações no estado da linha Antes
Depois de
Corresponde a uma operação de atualização que fornece a capacidade de aplicar lógica de fluxo de trabalho em tempo real, tanto depois como antes de o estado mudar. Antes corresponde à fase de pré-funcionamento. Depois corresponde à fase de pós-operação.
A linha está atribuída Antes
Depois de
Corresponde a uma operação de atualização que fornece a capacidade de aplicar lógica de fluxo de trabalho em tempo real, tanto depois como antes de o estado mudar. Antes corresponde à fase de pré-funcionamento. Depois corresponde à fase de pós-operatório.
Alteração nas colunas da linha Antes
Depois de
Corresponde a uma operação de atualização que fornece a capacidade de aplicar lógica de fluxo de trabalho em tempo real, tanto depois como antes de o estado mudar. Antes corresponde à fase de pré-funcionamento. Depois corresponde à fase pós-operatória.
A linha é eliminada Antes Apenas o Antes está disponível. A eliminação de linhas corresponde à fase pré-operação. Depois de ocorrer a MainOperation, a linha é apagada e não há mais alteração de estado que possa ocorrer.

Para obter mais informações sobre fases de pré-funcionamento, funcionamento principal e pós-funcionamento, consulte o Pipeline de execução do Evento.

Utilizar fluxos de trabalho em tempo real

Poderá configurar fluxos de trabalho em tempo real mas deverá utilizá-los com cuidado. Os fluxos de trabalho em segundo plano são geralmente recomendados porque permitem que o sistema os aplique à medida que os recursos estão disponíveis no servidor. Isto ajuda a otimizar o trabalho que o servidor necessita de fazer e ajuda a manter o melhor desempenho para todas as pessoas que utilizem o sistema. A desvantagem é que as ações definidas por fluxos de trabalho em segundo plano não são imediatas. Não se pode prever quando são aplicadas, mas geralmente demora alguns minutos. Para a maioria da automatização de processos de negócio isto é aceitável porque as pessoas que utilizam o sistema não têm de ter noção de que o processo está em execução.

Utilize fluxos de trabalho em tempo real quando um processo de negócio requer que alguém veja imediatamente os resultados do processo ou se pretende ter a capacidade para cancelar uma operação. Por exemplo, pode querer definir certos valores por defeito para uma linha na primeira vez que é guardada, ou quer garantir que algumas linhas não são apagadas.

Conversão entre fluxos de trabalho em tempo real e em segundo plano

Pode alterar um fluxo de trabalho em tempo real num fluxo de trabalho em segundo plano escolhendo Converter num fluxo de trabalho em segundo plano na barra de ferramentas.

Pode alterar um fluxo de trabalho em segundo plano num fluxo de trabalho em tempo real escolhendo Converter num fluxo de trabalho em tempo real na barra de ferramentas. Se o fluxo de trabalho em segundo plano usar uma condição de espera, torna-se inválido e não poderá ativá-lo até remover a condição de espera.

Iniciar fluxos de trabalho em tempo real antes ou depois de alterações do estado

Quando configura Opções para processos automáticos para fluxos de trabalho em tempo real, as opções de Iniciar quando do evento de alterações do estado permitem-lhe selecionar Depois ou Antes para o momento em que o estado é alterado. A opção predefinida é Depois.

Quando selecionas Antes, estás a dizer que queres que a lógica no fluxo de trabalho em tempo real seja aplicada antes de os dados que alteram o estado serem guardados. Isto permite-lhe verificar os valores antes de outras lógicas serem aplicadas após a operação e impede que mais lógica seja realizada. Por exemplo, pode ter lógica adicional num plug-in ou numa ação de fluxo de trabalho em tempo real personalizada que poderá iniciar ações noutro sistema. Ao interromper o processamento adicional, pode evitar casos em que sistemas externos sejam afetados. Aplicar fluxos de trabalho em tempo real antes deste evento também significa que outras ações de fluxos de trabalho em tempo real ou de plug-ins que possam ter guardado dados não precisam de ser "roladas para trás" quando a operação é cancelada.

Utilizar a ação Parar Fluxo de Trabalho com fluxos de trabalho em tempo real

Quando aplica uma ação Parar fluxo de trabalho num fluxo de trabalho em tempo real tem a opção para especificar uma condição de estado que pode ser Com êxito ou Cancelado. Quando define o estado como cancelado, impede a operação. Uma mensagem de erro que contém o texto da mensagem de estado da ação de paragem será apresentada ao utilizador com o título Erro de processo de negócio.

Configurar quem executa o fluxo de trabalho em tempo real

No designer de workflow, podes definir quem o workflow deve executar como "O proprietário do workflow" ou "O utilizador que fez alterações ao registo." Para mudar o proprietário do registo para outro utilizador, abra o separador Administração no editor de workflow e use a pesquisa para selecionar um novo proprietário para o workflow. Precisa da função de Administrador do Sistema, Personalizador do Sistema ou de uma função que contenha o privilégio prvChangeOwnerIdOfWorkflow para alterar o proprietário do fluxo de trabalho.

Passos seguintes

Monitorizar e gerir processos de fluxo de trabalho em tempo real
Melhores práticas para processos de fluxo de trabalho em tempo real