Função responsável por extrair as informações de uma mensagem de negócio (BusinessMessage) vindas de um aplicativo externo.
Essa função será chamada automaticamente com todo o conteúdo da mensagem de negócio guardada na Record do Helper. Não é necessário saber se a mensagem é síncrono ou assíncrono.
Sintaxe
EAIAdapter<Transação><versão>_ReceiveBusinessMessage()
Retorno
Tipo | Valor | Descrição |
---|
Bool | TRUE | Indica que a extração do conteúdo do BusinessContent foi executado com sucesso. |
FALSE | Indica que a ocorreram erros durante a extração do conteúdo, interromperá a seção, indicando para a Engine do EAI2 que deverá retornar com erro a resposta. |
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 EAIAdapterUnitOfMeasure1_ReceiveBusinessMessage()
#----------------------------------------------------------#
#Função responsável por extrair o conteudo da BusinessMessage recebida e executar a regra de negócio.
DEFINE lr_unid_med RECORD
cod_unid_med LIKE unid_med.cod_unid_med,
den_unid_med_30 LIKE unid_med.den_unid_med_30
END RECORD,
l_status SMALLINT
l_msg_erro CHAR(30)
LET lr_unid_med.cod_unid_med = EAIHelperUnitOfMeasure1_get_BusinessContent_Code()
LET lr_unid_med.den_unid_med_30 = EAIHelperUnitOfMeasure1_get BusinessContent_Description()
IF lr_unid_med.cod_unid_med IS NULL THEN
CALL EAIHelperSalesOrder1_add_error_message("Código da unidade de medida não informado na integração.",'0')
RETURN FALSE
END IF
#Testando o tipo de mensagem.
CASE EAIHelperUnitOfMeasure1_get_MessageType()
WHEN 'upsert' #Event - upsert
IF lr_unid_med.den_unid_med_30 IS NULL THEN
CALL EAIHelperSalesOrder1_add_error_message("Descrição da unidade de medida não informado na integração.",'0')
RETURN FALSE
END IF
CALL manm217_unid_med_leitura(_BusinessContent._Code,TRUE,1)
RETURNING l_status,
l_msg_erro
CALL manm217_unid_med_set_null()
CALL manm217_unid_med_set_cod_unid_med(_BusinessContent._Code)
CALL manm217_unid_med_set_den_unid_med_30(_BusinessContent._Description)
IF l_status THEN
CALL manm217_unid_med_inclui(FALSE,TRUE)
RETURNING l_status, l_msg_erro
IF NOT l_status THEN
CALL EAIHelperSalesOrder1_add_error_message(l_msg_erro,'0')
RETURN FALSE
END IF
ELSE
CALL manm217_unid_med_modifica(FALSE,TRUE)
RETURNING l_status,
l_msg_erro
IF NOT l_status THEN
CALL EAIHelperSalesOrder1_add_error_message(l_msg_erro,'0')
RETURN FALSE
END IF
END IF
WHEN 'delete' #Event - delete
WHENEVER ERROR CONTINUE
DELETE FROM unid_med
WHERE cod_unid_med = lr_unid_med.cod_unid_med
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
CALL log0030_processar_err_sql("DELETE","unid_med",1)
CALL EAIHelperSalesOrder1_add_error_message(l_msg_erro,'0')
RETURN FALSE
END IF
OTHERWISE #Request
END CASE
RETURN TRUE
END FUNCTION