Start conditional (BPM) na plataforma Fluig.

Start conditional  (BPM) na plataforma Fluig.

Este artigo é sobre o start conditional do BPM. Em caso de dúvidas entre em contato.

Quando utilizar os eventos condicionais do BPM ?

No BPM os condicionais são ativados quando uma determinada condição tem o seu retorno como verdadeiro.

Imagine uma situação em que você precisa monitorar a temperatura de um ambiente que precisa ser refrigerado e deseja executar uma rotina de monitoramento quando a temperatura atingir acima de 20 graus celsius.
Neste exemplos, com o evento condicional, é possível monitorar a temperatura e ao atingir acima de 20 graus o processo será iniciado.

processo com start conditional
fonte: desenhado no software camunda.

Como utilizar os processos condicionais start conditional no Fluig?

O exemplo indicado acima pode ser desenvolvido no fluig, apesar de não ser tão comum. Um ou outro o fará. Acontece que a ideia pode ser aplicada para o mundo corporativo e os exemplos seriam: iniciar um pedido no fluig de forma automática, aprovar registros no ERP via fluig de forma autmática, etc.

É possível utilizar os eventos condicionais no Fluig utilizando o modelador de BPM na plataforma Eclipse. O primeiro passo é abrir o grupo ‘normal’ em seguida escolher o símbolo correto chamado Condicional.

Start conditional do plugin fluig para eclipse.
fonte: plugin fluig para eclipse.

Após a criação do processo você terá acesso às propriedades dele. Isso significa que poderá configurar o horário de início e a frequência da recorrência. No exemplo abaixo vemos a opção Nome, Frequência e a recorrência.

O campo Inicializador é o usuário responsável pelo processo.

O campo Editar Script da Tarefa irá apontar para um arquivo chamado startconditional.js , criado nas soluções do processo.

Propriedades do plugin fluig.
fonte: plugin fluig para eclipse.

Scripts de eventos do start conditional.

A atividade startconditional funciona com eventos, que podem ser conferidos na seção Eventos de Processos, na documentação oficial da plataforma.

Ao criar um processo de início start conditional você poderá enfrentar problemas na utilização da biblioteca hAPI. Isso porque, aparentemente, esta biblioteca não pode ser acessada neste tipo de atividade.

A solução então é utilizar os eventos beforeTaskSave do processo.

Em meus estudos, o evento beforeTaskSave foi o evento que melhor se comportou neste caso, pois a biblioteca hAPI já está acessível para uso e os dados podem ser registrados no formulário.

Processo start conditional
fonte: desenhado no camunda

Agendador de Tarefas

Ao exportar para o fluig um processo que tem a atividade de início start conditional o fluig irá criar um registro no agendado de tarefas.

Basicamente o que acontece é: ao exportar o projeto o fluig entende este componente e cria um registro na janela “Agendador de Tarefas”, logo em seguida essa tarefa criada se ‘auto gerencia’, ajustando sempre o horário da próxima execução daquela tarefa.

De forma simples o fluig olha a configuração que você definiu e ao mesmo tempo fica monitorando a data e a hora, e assim que satisfazer esta condição o fluig inicia o processo.

Para visualizar o agendado de tarefas primeiramente acesse o seu fluig, logo em seguida vá painel de controle e por último em agendador de tarefas.

Para finalizar observe que foi criado uma tarefa indicando o nome do processo, o horário da execução e o horário da próxima execução.

Conclusão

A solução proposta para resolver a inviabilidade do startconditional ao não interpretar a biblioteca hapi pode ser um pouco redundante pois poderá implementar partes do mesmo código mais de uma vez, o que não seria preciso caso o startconditional enxergasse a biblioteca hAPI. Mas com esta abordagem você conseguirá utilizar a biblioteca hAPI do fluig na atividade startconditional.

Referências:

Aprenda mais sobre eventos condicionais:
https://docs.camunda.org/manual/7.9/reference/bpmn20/events/conditional-events/
https://camunda.com/bpmn/reference/