Páginas filhas
  • 7. ExtractReturnMessage

Função responsável por extrair as informações de uma mensagem de retorno após ser ativada por uma mensagem de envio.

Essa função será chamada automaticamente pelo Helper com todo o conteúdo do ReturnMessage, independente da mensagem ser síncrono ou assíncrono.

Sintaxe


EAIAdapter<Transação><versão>_ExtractReturnMessage()

Retorno


TipoValorDescrição
BoolTRUEIndica que a extração do conteúdo do ReturnContent foi executado com sucesso.
FALSEIndica que a ocorreram erros durante a extração do conteúdo do ReturnContent.

Observação


Os valores obtidos da mensagem, através do Helper da mensagem, podem ser enviados para o programa através do uso do Mapper.

Exemplo


#-----------------------------------------------------#
 FUNCTION EAIAdapterSalesOrder1_ExtractReturnMessage()
#-----------------------------------------------------#
  ### Nesse ponto serão extraídos os dados da mensagem de retorno da BusinessMessage.
  
  LET mr_pedidos.cod_empresa = EAIHelperSalesOrder1_get_ReturnContent_CompanyId()
  LET mr_pedidos.num_pedido  = EAIHelperSalesOrder1_get_ReturnContent_OrderId()
  
  CALL vdpm46_pedidos_set_cod_empresa(mr_pedidos.cod_empresa)
  CALL vdpm46_pedidos_set_num_pedido(mr_pedidos.num_pedido)
  
  IF NOT vdpm46_pedidos_inclui(TRUE,1) THEN
     RETURN FALSE
  END IF
  
  RETURN TRUE
END FUNCTION

Nesse ponto também é possível retirar informações customizadas da mensagem de retorno. Não existe uma ordem dentro da função para utilizar, mas pode ser considerado o exemplo a seguir:

#-----------------------------------------------------#
 FUNCTION EAIAdapterSalesOrder1_ExtractReturnMessage()
#-----------------------------------------------------#
  ### Nesse ponto serão extraídos os dados da mensagem de retorno da BusinessMessage.
  
  LET mr_pedidos.cod_empresa = EAIHelperSalesOrder1_get_BusinessContent_CompanyId()
  LET mr_pedidos.num_pedido  = EAIHelperSalesOrder1_get_BusinessContent_OrderId()
  
  CALL vdpm46_pedidos_set_cod_empresa(mr_pedidos.cod_empresa)
  CALL vdpm46_pedidos_set_num_pedido(mr_pedidos.num_pedido)
  
  IF NOT vdpm46_pedidos_inclui(TRUE,1) THEN
     RETURN FALSE
  END IF
  
  ### Regra de negocio definida para o cliente X.
  IF find4glfunction('vdpy300_regra_especifica_integracao_cliente_X') THEN
     LET l_size = EAIHelperSalesOrder1_get_custom_info_size_resposta()
     FOR l_ind = 1 TO l_size
        LET l_valor = EAIHelperSalesOrder1_get_custom_info_resposta(l_tabela, l_ind, l_chave)
        CALL vdpy300_regra_especifica_integracao_cliente_X_set(l_ind, l_valor)
     END FOR
  END IF
  
  RETURN TRUE
END FUNCTION