Gestão do fluxo de trabalho

Desenvolvimento de scripts de integração nos fluxos de trabalho

WFMS.TD-0431

Descrição

Os fluxo de trabalho podem interagir diretamente com os dados do sistema. Cada estágio pode gerar alterações nos dados como podem depender do que estiver informados neles.
Este documento tem informações sobre como isso pode ser feito.

Fluxo normal

Dentro dos fluxos de trabalho, os seguintes eventos poderão ser configurados:
Os scripts poderão ser desenvolvidos em qualquer uma das linguagens suportadas pelo Eligo. Por padrão, o Eligo suporta TSL (Telescope Script Engine) e Groovy.

A linguagem é definida por um "shebang" na primeira linha do script:
No caso do script não ter um "shebang", o sistema assume TSL.

Os scripts recebem as seguintes variáveis no contexto:

Alterações no registro base

Quando alterações dos dados de um registro base podem alterar o seu fluxo, será necessário descrever isso através do campo "Script estágio" configurado no fluxo.
O objetivo deste script deve ser basicamente definir o estágio do fluxo que está sendo alterado.

Esse script deve evitar alterar o registro base. Quando isso for necessário, deve-se ter muito cuidado de não alterar algum atributo que possa provocar uma nova troca de estágio ou alguma outra condição que crie um laço infinito.

EXEMPLO:

Digamos que o registro base tenha uma data de cancelamento e sempre que essa data de cancelamento for preenchida, o fluxo deve passar automaticamente para o estágio CANCELADO:
  1. !Groovy
if (registro.getDataCancelamento().isModified() && registro.getDataCancelamento().isNotNull()) {
     rec.setEstagioId(800246288);  // Id do estágio CANCELADO
}
Para evitar recursão, deve-se utilizar a variável de context eventoOrigem.

Entrada do fluxo em determinado estágio

Sempre que houver a mudança de estágio de um fluxo, o sistema executa o script indicado na entrada para esse estágio.
O objetivo deste script é atualizar os dados do registro base de acordo com o seu fluxo.

EXEMPLO:

Digamos que quando um fluxo passar para o estágio CANCELADO, seja necessário informar uma data de cancelamento no registro base:
  1. !TSL
upd atividades
set data_cancelamento = '[SYSDATE]'
where id = ${registro.id}
and data_cancelamento is null;
Para evitar recursão, deve-se utilizar a variável de context eventoOrigem.