Páginas filhas
  • 6. Contexto para Adapters

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Adapters existentes usando modelo helper/adapter

 

...

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

  • Alterar a função EAIAdapter<Transacao><Versao>_SendBusinessMessage() para:
    • Definir a variável l_ContextNames como VARCHAR(100).
    • Colocar a chamada de função EAIHelper<Transacao><Versao>_inicializa_record() como uma das primeiras linhas da função.
    • Inserir o trecho que recebe o contexto e o atualiza no Helper logo abaixo da chamada de função EAIHelper<Transacao><Versao>_inicializa_record() e antes da função EAIHelper<Transacao><Versao>_esta_configurado_para_envio(), já que o contexto é agora uma informação relevante para identificar rotas.
  • Incluir a função EAIAdapter<Transacao><Versao>_getContextNames() com o corpo conforme exemplo abaixo. Nesta função deve-se informar a lista de contextos que o adapter suporta. Os elementos da lista devem estar separados por vírgula.

...

Bloco de código
languageruby
linenumberstrue
#----------------------------------------------------------------#
 FUNCTION EAIAdapterUnitOfMeasure2_getContextNames()
#----------------------------------------------------------------#
  RETURN _ADVPL_eai_get_default_context() clipped || “,manufatura,educacional”
  
END FUNCTION

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

  • Definir variável modular _ContextNames com VARCHAR(100)
  • Alterar função EAIHelper<Transacao><Versao>_cria_mensagem_negocio() para:
    • Incluir os parâmetros de versão e de contextos na chamada da função _ADVPL_eai_create_message().

Exemplo

 

...

Bloco de código
languageruby
linenumberstrue
_ADVPL_eai_create_message(
     EAIHelper<Transacao><Versao>_get_transaction_name(),
     EAIHelper<Transacao><Versao>_get_adapter_versao(),
     _ContextNames )

 

    • Incluir chamada à função EAIHelper<Transacao><Versao>_set_contextNames() após a chamada à função _ADVPL_eai_create_message().
  • Criar a função EAIHelper<Transacao><Versao>_set_contextNames() com o seguinte corpo:

Exemplo

 

...

Bloco de código
languageruby
linenumberstrue
#----------------------------------------------------------------#
 FUNCTION EAIHelperUnitOfMeasure2_set_ContextNames(l_contextNames)
#----------------------------------------------------------------#
  DEFINE l_contextNames VARCHAR(100)
  
  LET _ContextNames = l_contextNames
  IF _ContextNames IS NOT NULL AND g_eai_msg_negocio IS NOT NULL THEN
    CALL _ADVPL_eai_set_context_names(g_eai_msg_negocio, _ContextNames)
  END IF
END FUNCTION

 

  • Alterar a função EAIHelper<Transacao><Versao>_esta_configurado_para_envio() para informar na chamada à função_ADVPL_eai_is_send_configured() a variável _ContextNames.

Exemplo

 

...

Bloco de código
languageruby
linenumberstrue
_ADVPL_eai_is_send_configured(
     EAIHelper<Transacao><Versao>_get_transaction_name(),
     EAIHelper<Transacao><Versao>_get_adapter_version(),
     _ContextNames )