Páginas filhas
  • 1. EAIAdapter_SendBusinessMessage

Versões comparadas

Chave

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

...

Função responsável por gerenciar o envio da mensagem. Através dela, serão chamados os métodos de carregamento do conteúdo da mensagem.

Sintaxe

...

Bloco de código
languagesqlthemeEmacsruby
EAIAdapter<Transação><versão>_SendBusinessMessage(<l_MessageType>)

...

Parâmetros

...

Nome
Tipo
Descrição
Obrigatório
Referência
l_MessageTypeVARCHAR(6)

Tipo da mensagem:

  1. upsert”: gerencia o envio de uma mensagem Event upsert.
  2. delete”: gerencia o envio de uma mensagem Event delete.
  3. NULL: gerencia o envio de uma mensagem Request.
X 

Retorno

...

TipoValorDescrição
BoolTRUEQuando o envio da mensagem foi gerenciado sem nenhum problema.
FALSEHouve problemas durante a construção ou envio da mensagem

...

Por ser uma função com o conteúdo gerado automático, o único ponto que deve ser alterado na função é a definição de qual tipo de entrega, conforme o exemplo:

Bloco de código
theme
languagesqlruby
Emacslinenumberstrue
### Definir qual modelo de dados estará utilizando: sync - síncrono, async - assíncrono.
CALL EAIHelperSalesOrder1_set_send_sync()
# CALL EAIHelperSalesOrder1_set_send_async()

Logo após a chamada da função de criação da mensagem “EAIHelperSalesOrder1_ cria_mensagem_negocio” deverão ser incluídos os nomes dos campos da chave primária, conforme exemplo:

Bloco de código
languagesqlthemeEmacsruby
linenumberstrue
### Adiciona as chaves primárias da mensagem.
CALL EAIHelperSalesOrder1_adiciona_chave_primaria("CompanyId")
CALL EAIHelperSalesOrder1_adiciona_chave_primaria("OrderId")

...

A função completa ficará assim:

Bloco de código
languagesqlruby
themeEmacs
linenumberstrue
#-----------------------------------------------------------------# 
 FUNCTION EAIAdapterSalesOrder1_SendBusinessMessage(l_MessageType)
#-----------------------------------------------------------------#
  DEFINE l_MessageType VARCHAR(6) #upsert / delete
  
  IF NOT EAIHelperSalesOrder1_esta_configurado_para_envio() THEN
     RETURN TRUE
  END IF
  
  CALL EAIHelperSalesOrder1_inicializa_record()
  
  ### Carrega os dados da mensagem.
  IF NOT EAIAdapterSalesOrder1_LoadUsualContent() THEN
     RETURN FALSE
  END IF
  
  IF l_MessageType IS NOT NULL THEN
     LET l_MessageType = DOWNSHIFT(l_MessageType)
  END IF
  
  CASE l_MessageType
     WHEN 'upsert'
        IF NOT EAIAdapterSalesOrder1_LoadUpsertContent() THEN
           RETURN FALSE
        END IF
     WHEN 'delete'
        IF NOT EAIAdapterSalesOrder1_LoadDeleteContent() THEN
           RETURN FALSE
        END IF
     OTHERWISE
        ### Caso não for nenhuma das opções, a mensagem será de 'SalesOrder'.
        INITIALIZE l_MessageType TO NULL
        IF NOT EAIAdapterSalesOrder1_LoadRequestContent() THEN
           RETURN FALSE
        END IF
  END CASE
  
  ### Cria mensagem de negócio.
  CALL EAIHelperSalesOrder1_cria_mensagem_negocio(l_MessageType)
  
  ### Adiciona as chaves primárias da mensagem.
  CALL EAIHelperSalesOrder1_adiciona_chave_primaria("CompanyId")
  CALL EAIHelperSalesOrder1_adiciona_chave_primaria("OrderId")
  
  ### Definir qual modelo de dados estará utilizando: sync - síncrono, async - assíncrono.
  CALL EAIHelperSalesOrder1_set_send_sync()
  # CALL EAIHelperSalesOrder1_set_send_async()
  
  ### Adiciona informações customizadas.
  CALL EAIAdapterSalesOrder1_LoadCustomContent()
  
  IF NOT EAIHelperSalesOrder1_envia_mensagem_eai_Adapter() THEN
     ### Tratar problemas com a integração nesse ponto.
  
     RETURN FALSE
  END IF
  
  RETURN TRUE
END FUNCTION

 

...