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" + "_antes_envio_mensagem". Esta função recebe como parâmetro a mensagem de negócio. 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, essa alteração é implementada nesta função. O exemplo abaixo apresenta função gerada pelo EAI0032.
#------------------------------------------------------------------# FUNCTION EAIHelperUnitOfMeasure2_antes_envio_mensagem(l_msg_negocio) #------------------------------------------------------------------# DEFINE l_msg_negocio VARCHAR(10) RETURN TRUE END FUNCTION
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.
#------------------------------------------------------------------# 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
#------------------------------------------------------------------# 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.