Histórico da Página
Para atender uma demanda especifica da equipe de negócio foi criado um ponto de customização no Engine do EAI do Logix. Esta alteração visa atender o desvio do fluxo do envio de mensagens pelo EAI. O diagrama abaixo apresenta o novo fluxo de envio das mensagens.
Para a equipe de negócio implementar a customização, a funcionalidade de Helper deverá ser regerada pelo EAI0032. Após regerar a funcionalidade de Helper é criado uma função neste arquivo com nome "Nome Funcionalidade nas funcionalidade Helper para envio de mensagens de negócio no EAI Logix. Esta função é criada automaticamente no arquivo de Helper pelo EAI0032. A função gerada neste arquivo tem o nome "NomeFuncionalidade" + "_antes_envio_mensagem", e recebe o . Esta função recebe como parâmetro a mensagem de negócio. O O retorno padrão desta função sempre será verdadeiro, para não afetar o fluxo de envio da mensagem. Caso seja do interesse da equipe de negócio alterar o fluxo da mensagem de envio, o retorno poderá ser alterado para falso. Para saber mais sobre como gerar o arquivo de Helper, poderá ser consultado a documentação do EAI0032. O exemplo abaixo mostra um exemplo da função geradaessa alteração é implementada nesta função. O exemplo abaixo apresenta função gerada pelo EAI0032.
Bloco de código | ||||
---|---|---|---|---|
| ||||
#------------------------------------------------------------------# FUNCTION EAIHelperUnitOfMeasure2_antes_envio_mensagem(l_msg_negocio) #------------------------------------------------------------------# DEFINE l_msg_negocio VARCHAR(10) RETURN TRUE END FUNCTION |
O diagrama abaixo apresenta o fluxo de envio que EAI utiliza para enviar uma mensagem para um aplicativo externo com a implementação da função customizada.
Recuperando o aplicativo externo
A equipe de negócio que estiver implementando está função para customização do envio da mensagem, poderá recuperar o nome do aplicativo externo que está recebendo a mensagem, através da função EAIMapper_getString do programa EAIMapper, passando a String "AppDest" como parâmetro. Abaixo segue o exemplo do código.
Bloco de código | ||||
---|---|---|---|---|
| ||||
#------------------------------------------------------------------#
FUNCTION EAIHelperUnitOfMeasure2_antes_envio_mensagem(l_msg_negocio)
#------------------------------------------------------------------#
DEFINE l_msg_negocio VARCHAR(10)
DEFINE l_externalApplication VARCHAR(40)
LET l_externalApplication = EAIMapper_getString("AppDest")
#Lógica de Negócio
RETURN TRUE
END FUNCTION |
Incluindo mensagem de inconsistência
Para criar uma mensagem de inconsistência e esta mensagem seja apresentada no console do EAI10000, a equipe de negócio deverá chamar a função EAIMapper_setError do programa EAIMapper na funcionalidade Helper passando a mensagem de inconsistência como parâmetro para Engine do EAI possa recuperar essa informação. Abaixo segue o exemplo de código
Bloco de código | ||||
---|---|---|---|---|
| ||||
#------------------------------------------------------------------#
FUNCTION EAIHelperUnitOfMeasure2_antes_envio_mensagem(l_msg_negocio)
#------------------------------------------------------------------#
DEFINE l_msg_negocio VARCHAR(10)
DEFINE l_externalApplication VARCHAR(40)
DEFINE l_msgError VACHAR(1000)
LET l_externalApplication = EAIMapper_getString("AppDest")
#Lógica de Negócio
LET l_msgError = "Mensagem de Inconsistência.............."
CALL EAIMapper_setError(l_msgError)
RETURN TRUE
END FUNCTION |
O fluxo abaixo apresenta a forma que o Engine do EAI passa a utilizar para realizar a validação da customização de envio de mensagem.
No engine do EAI logo após a verificação do destinatário no método dispatch é chamado