O conceito de contexto no EAI tem por finalidade aumentar o controle no envio de mensagens para diversos destinos. Este documento descreverá os passos necessários para habilitar o suporte a este conceito nos adapters. Para mais informações sobre contexto, acessar este link.

Novos Adapters


O programa de geração de adapters (EAI0032) já insere as funções e trechos de código necessários para suportar o conceito, sendo necessário alguns poucos ajustes no código.

Sintaxe

EAIAdapter<Transação><Versão>.4gl

Exemplo


###############################################
# FUNÇÃO DE RETORNO DOS CONTEXTOS DO ADAPTER  #
###############################################
#---------------------------------------------------#
 FUNCTION EAIAdapterUnitOfMeasure2_getContextNames()
#---------------------------------------------------#
  # Informe a lista de contextos que o adapter suporta, separando os elementos com virgula.
  # Ex.: 'Padrão,Financeiro,Manufatura'
  RETURN _ADVPL_eai_get_default_context() # Retorna a literal 'padrao'.
END FUNCTION

Exemplo


#--------------------------------------------------------------------#
 FUNCTION EAIAdapterUnitOfMeasure2_SendBusinessMessage(l_MessageType)
#--------------------------------------------------------------------#
  DEFINE l_MessageType  VARCHAR(6) #upsert / delete
  DEFINE l_ContextNames VARCHAR(100)
 
  CALL EAIHelperUnitOfMeasure2_inicializa_record()
 
  ### Atualizar o contexto na mensagem, se informado.
  ### Os contextos devem ser passados para o adapter usando o EAIMapper_set("ContextNames",<stringContexto>).
  # LET l_ContextNames = EAIMapper_getString( "ContextNames" )
  # CALL EAIHelperUnitOfMeasure2_set_ContextNames( l_ContextNames )
 
  IF NOT EAIHelperUnitOfMeasure2_esta_configurado_para_envio() THEN
     RETURN TRUE
  END IF

No fonte do helper não é necessária nenhuma alteração.

 

Adapters existentes usando modelo helper/adapter


 

No fonte do adapter (EAIAdapter<Transação><Versão>.4gl):

 

Exemplo


#----------------------------------------------------------------#
 FUNCTION EAIAdapterUnitOfMeasure2_getContextNames()
#----------------------------------------------------------------#
  RETURN _ADVPL_eai_get_default_context() clipped || “,manufatura,educacional”
  
END FUNCTION