BPM

BPM Integrando Solicitações com Sistemas Terceiros

944 views 29/10/2019 14/09/2020 ftomaz 0

O BPM permite a integração de processos com sistemas através de fonte de dados, que permite consulta de dados com formulários, e a chamada de serviços externos, onde o desenvolvedor pode chamar APIs de outros sistemas para gravar e ler informações em cada etapa do processo. Ocorre que muitos serviços de sistemas terceiros fogem do controle da empresa, quando esses serviços estão indisponíveis por algum motivo, o processo não pode ser concluída e isso afeta muito a fluidez do processo gerando uma experiencia negativa para os usuários do BPM.

Visando tornar mais fluido as execuções de fluxos desenvolvidos com BPM, existe uma nova forma de integração de solicitações com serviços terceiros. Neste modelo de integração todas as etapas do processo são executadas com os dados exclusivamente armazenados na nuvem do BPM. Quando alguma etapa estiver configurada com mecanismo de atribuição “Usuário de Aplicação Terceira”, o sistema terceiro terá disponível uma API consumir os dados da solicitação em andamento.

O diagrama abaixo, exemplifica a integração de uma aplicação terceira, que de tempos em tempos de acordo com a necessidade do processo desenvolvido fica consumindo as solicitações terceiras finalizadas por usuários do BPM:

 

Modelagem de Processo com Aplicativo Externo

Sempre que um processo configurar uma etapa com o tipo de mecanismo de aplicação “Usuário Aplicação Externa”, o processo já ficar esperando a aplicação terceira responder a etapa para continuar o fluxo do processo.

 

Habilitar o recurso de integração por solicitações

Alguns Templates do BPM, já são criados com o recurso para integrar aplicações terceiras não sendo necessário configuração adicional. Para outros processo é preciso habilitar o recurso utilizando a opção de integração na área de trabalho do processo, informando os campos abaixo:

Habilitar Integração de Solicitações – Indica se a integração esta habilitada, ou seja, começa gerar os registros para consumo da API (getThirdPartyRequestByStatus)
Chave do Processo para aplicação terceira – é o identificado único do processo. Ele deve ser usado para consulta das tarefas/solicitações.

 

Consumo das Solicitações Terceiras

Sempre que um evento movimentar um processo BPM, as informações da tarefa e status da tarefa serão atualizados com os seguintes status

  • Pending – A solicitação foi criada pelo BPM e ainda não foi finalizada ou cancelada.
  • Treated– A solicitação foi finalizada.
  • All – Todas as solicitações terceiras com usuário de aplicação externa.

Quando for necessário integrar com o backend do sistema terceiro, o desenvolvedor deverá consultar e responder a solicitação a ser integrada

Consultar Pendencias para integração

Para consultar as solicitações informe a chave do processo, configurada na área de trabalho do processo e o status.

Exemplo 1- consulta pendencias de solicitações:
POST /rest/platform/workflow/queries/getThirdPartyRequestByStatus
       { “processKey”: “ERP_CADASTROPRODUTO”, “status”: “InProgress” }

Exemplo 2- consulta pendencias já integradas:
POST /rest/platform/workflow/queries/getThirdPartyRequestByStatus
       { “processKey”: “ERP_CADASTROPRODUTO”, “status”: “Completed” }

 

O retorno deste serviço será uma lista as solicitações com detalhes dos variáveis de processo usadas na integração:

{
	"requests": [{
			"flowToken": {
				"processInstanceID": 806,
				"step": 4,
				"activityId": 6
			},
			"processData": {
				"tipo": "Pessoa Jurídica",
				"nome": "SENIOR LTDA"
			}
		},
		{
			"flowToken": {
				"processInstanceID": 329,
				"step": 4,
				"activityId": 2
			},
			"processData": {
				"tipo": "Pessoa Jurídica",
				"nome": "CORREIOS"
			}
		}
	]
}

Abaixo, um detalhamento da estrutura Json retornada pelo serviço

Campo Descrição
flowToken/processInstanceId Número da solicitação do Processo
flowToken/step Identificador Interno da Etapa do Processo
flowToken/activityId Identificador Interno da Atividade do Processo
processData Lista chave valor com as variáveis do processo

Responder Solicitações por Aplicativo Externo

Responder solicitações terceiras é o ato de confirmar de o sistema externo leu e concluiu a integração. Isso significa que o processo irá responder a tarefa como se fosse um usuário normal e continuar o fluxo. Apenas é possível responder tarefas por aplicações terceiras se ela estiver em uma etapa como usuário de aplicativo externo .

Exemplo – responde a solicitação número 806 chamando a ação finaliza.

 POST /rest/platform/workflow/actions/responsePendency

{	"serviceFlowToken": {
		"processInstanceID": 806,
		"step": 4,
		"activityId": 6
	}
	"responseData" : {
		"flowExecutionData" : { 
			"actionToExecute" : "Finalizar"
		}
	}
}

IMPORTANTE: Quando o fluxo esta em uma etapa aplicação externa ela não pode ser usada com usuários da plataforma, é necessário ter uma chave de aplicação que representa o sistema terceiro para responder a tarefa.

Integração com Senior G5

As API getThirdPartyRequestByStatus e responsePendency podem ser utilizas em regras LSP (Linguagem Senior de Programação) com uso das funções HttpPost para chamadas das APIs REST e ListaRegraCarregarJson e ListaRegraObterValorAlfa para manipular o retorno dos dados em formato JSON.

Para agendar o consumo das solicitações do BPM recomenda-se o recurso de agendamento da Web G5 ou agendamento de web services.

 

Este artigo foi útil para você?