Páginas filhas
  • 7. Customização de adapter no envio da mensagem

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.