Histórico da Página
...
- UUID: Identificador único desta mensagem e que não pode ser igual ao UUID de qualquer outra mensagem em qualquer um dos aplicativos participantes da integração.
- Type: Identifica o tipo da mensagem (BusinessMessage, ReceiptMessage ou ResponseMessage).
- SubType: Os valores esperados para o atributo subType são event e request;
- Event: quando SubType é event, este atributo conterá os valores upsert ou delete, para indicar que a mensagem corresponde a uma inclusão/alteração ou a uma eliminação, respectivamente. Ele não é utilizado quando o SubType é request.
- Transaction: identificador do tipo de transação da mensagem. Esta informação será utilizada pelos aplicativos para definir como os dados serão processados no recebimento.
- Version: Identifica qual a versão daquela mensagem de negócio. Uma mensagem de Item, por exemplo, pode sofrer alterações no decorrer do tempo, sendo que cada uma destas alterações irá afetar esta informação.
- SourceApplication: Identifica a instancia dos aplicativos TOTVS que gerou a mensagem. Uma instância representa uma instalação/configuração daquele aplicativo/produto. Caso duas instancia do mesmo aplicativo participem da mesma integração, cada um deverá ser identificado de forma única.
- ProductName: Identifica o produto e versão que originou a mensagem. Neste caso, o valor pode ser o igual, mesmo em instâncias diferentes do mesmo aplicativo.
- ProductVersion: indica a versão do produto origem;
- GeneratedOn: Identifica o timestamp de geração desta mensagem.
- DeliveryType: Forma de envio da mensagem, podendo ser sync ou async, ou seja, síncrono ou assíncrono.
...
As mensagens de request descrevem qual função se deseja executar e os parâmetros necessários, como no exemplo abaixo:
Bloco de código |
---|
Onde:
- Operation: Identifica qual a operação que se deseja executar
- BusinessContent: XML com informações necessárias para o processamento, normalmente parâmetros de entrada
...
| ||||
{
"Header": {
"UUID": "c18535da-75b8-4925-9e32-b6445d4f2927",
"Type": "BusinessMessage",
"SubType": "request",
"Transaction": "AccountsReceivableOffsetting",
"StandardVersion": "1.000",
"SourceApplication": "RM",
"CompanyId": "2",
"BranchId": "2",
"GeneratedOn": "2016-06-21T19:41:21",
"DeliveryType": "Sync",
"Version": "2.000",
"ProductName": "RM",
"ProductVersion": "11.83.55"
},
"Content": {
"CompanyInternalId": "CompanyInternalId1",
"CompanyId": "CompanyId1",
"BranchId": "BranchId1",
"InternalId": "InternalId1",
"AccountReceivableDocumentInternalId": "AccountReceivableDocumentInternalId1",
"AdvanceInternalId": "AdvanceInternalId1",
"OffsettingDate": "1900-01-01T00:00:00",
"HistoryText": "HistoryText1",
"OffsettingValue": 1.0
}
}
|
Onde:
- BusinessContent: JSON com informações necessárias para o processamento, normalmente parâmetros de entrada
ResponseMessage
Âncora | ||||
---|---|---|---|---|
|
Uma ResponseMessage representa o resultado do processamento de uma BusinessMessage pelo aplicativo que a recebeu e o seu conteúdo pode variar de acordo com o tipo de mensagem e com o resultado do processamento.
Todas as respostas geradas por uma BusinessMessage devem ser associadas à mensagem original e mantidas pelo aplicativo-origem, como forma de rastrear quem processou aquela mensagem e qual o resultado do processamento.
A mensagem de resposta contém informações sobre o resultado do processamento de uma BusinessMessage.
Exemplo de um JSON de resposta de processamento sem erros
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"Header" : {
"UUID" : "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"Type" : "Response",
"SubType" : "event",
"Transaction" : "CostCenter",
"Version" : "2.000",
"SourceApplication" : "LGX12",
"ProductName" : "LOGIX",
"ProductVersion" : "12.1.15",
"GeneratedOn" : "2017-11-14T11:47:15-03:00",
"DeliveryType": "async"
},
"Content" : {
"ReceivedMessage" : {
"UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b",
"SentBy" : "P1299",
"Event" : "upsert"
},
"ProcessingInformation" : {
"ProcessedOn" : "2017-11-14T11:47:15-03:00",
"Status" : "Ok"
} |
...
Uma ResponseMessage representa o resultado do processamento de uma BusinessMessage pelo aplicativo que a recebeu e o seu conteúdo pode variar de acordo com o tipo de mensagem e com o resultado do processamento.
Todas as respostas geradas por uma BusinessMessage devem ser associadas à mensagem original e mantidas pelo aplicativo-origem, como forma de rastrear quem processou aquela mensagem e qual o resultado do processamento.
A mensagem de resposta contém informações sobre o resultado do processamento de uma BusinessMessage, como no exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<ResponseMessage>
<ReceivedMessage>
<SentBy>PROTHEUS</SentBy>
<UUID>25121218-a5c8-e581-b010-0a139a59f4bf</UUID>
<Event>upsert</Event>
<MessageContent>
<![CDATA[
... mensagem original...
]]>
</MessageContent>
</ReceivedMessage>
<ProcessingInformation>
<ProcessedOn>2011-06-23T17:04:16</ProcessedOn>
<Status>error</Status>
<ListOfMessages>
<Message type="warning" code="254">Mensagem de aviso</Message>
<Message type="error" code="-25">Mensagem de erro</Message>
<Message type="error" code="EAI30">Mensagem de Teste3</Message>
</ListOfMessages>
</ProcessingInformation>
<ReturnContent>
...
</ReturnContent>
</ResponseMessage> |
Onde:
- ReceivedMessage: Segmento com informações sobre a mensagem original (BusinessMessage) que deu origem a esta resposta.
- SentBy: Indica qual foi a instancia que gerou a mensagem original
- UUID: Identificador universal da mensagem de origem
- Event: Qual foi o evento associado à mensagem (pode ser upsert – inclusão/alteração – ou delete – eliminação).
- MessageContent: XML da mensagem original (opcional).
- ProcessingInformation: Segmento com informações sobre o resultado do processamento
- ProcessedOn: Timestamp de quando a mensagem foi processada pelo destino
- Status: Situação final do processamento (ok ou error)
- ListOfMessages: Lista de mensagens (erro ou aviso) retornadas no processamento.
- ReturnContent: XML com as informações de negócio retornadas no processamento
Obs: Consultar Catalogo de Erros
...
Uma ReceiptMessage representa a confirmação de recebimento de uma BusinessMessage pelo aplicativo destino.
Diferente da ResponseMessage, uma ReceiptMessage não irá conter qualquer informação relevante sobre o processamento da mensagem, uma vez que se entende que, se o aplicativo destino retornou um Receipt, ele não processou a mensagem naquele momento (comunicação assíncrona).
Quando a mensagem for processada pelo aplicativo-destino, uma mensagem de resposta (ResponseMessage) será gerada e encaminhada ao aplicativo que originou a BusinessMessage.
As informações contidas nas mensagens de recibo são genéricas e focam especificamente nos dados de recebimento da mensagem.
Onde:
- ReceivedMessage: Segmento com informações sobre a mensagem original (BusinessMessage) que deu origem a esta resposta.
- SentBy: Indica qual foi a instancia que gerou a mensagem original
- UUID: Identificador universal da mensagem de origem
- MessageContent: XML da mensagem original (opcional).
- ReceiptData: Segmento com informações sobre o recebimento da mensagem
- ReceivedOn: Timestamp do recebimento da mensagem.
Quando uma BusinessMessage é recebida é ela for síncrona, ela deverá ser processada e receberá como resposta uma ResponseMessage,
Quando uma BusinessMessage é recebida é ela for assíncrona, ela receberá como resposta, no momento da recepção uma ReceiptMessage, e posteriormente quando for processada será enviada uma ResponseMessage para esta mensagem
==============
Exemplo de um JSON de resposta de processamento sem erros (Através da camada de EAI):
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "Header" : { "UUID" : "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6", "Type" : "Response", "SubType" : "event", "Transaction" : "CostCenter", "Version" : "2.000", "SourceApplicationReturnContent" : { "LGX12", "ProductName" : "LOGIX", "ProductVersionListOfInternalID" : "12.1.15", [ "GeneratedOn" : "2017-11-14T11:47:15-03:00", { "DeliveryType": "async" }, "ContentName" : {"BankInternalId", "ReceivedMessage" : { "UUIDOrigin" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b01|99|123", "SentBy" : "P1299", "EventDestination" : "upsert"01|99|abc" }, "ProcessingInformation" : { ] } "ProcessedOn" : "2017-11-14T11:47:15-03:00", "Status" : "Ok" }, "ReturnContent" : { "ListOfInternalID" : [ { "Name" : "BankInternalId", "Origin" : "01|99|123", "Destination" : "01|99|abc" } ] } } } } } |
Onde:
- ReceivedMessage: Segmento com informações sobre a mensagem original (BusinessMessage) que deu origem a esta resposta.
- SentBy: Indica qual foi a instancia que gerou a mensagem original
- UUID: Identificador universal da mensagem de origem
- Event: Qual foi o evento associado à mensagem (pode ser upsert – inclusão/alteração – ou delete – eliminação).
- ProcessingInformation: Segmento com informações sobre o resultado do processamento
- ProcessedOn: Timestamp de quando a mensagem foi processada pelo destino
- Status: Situação final do processamento (ok ou error)
- Details: Lista de mensagens (erro ou aviso) retornadas no processamento.
- ReturnContent: JSON com as informações de negócio retornadas no processamento
Exemplo de um JSON de resposta de processamento com erros:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "Header": { "UUID": "25121218-a5c8-e581-b010-0a139a59f4bf", "Type": "Response", "SubType": "event", "Transaction": "Bank", "StandardVersion": "1.0", "SourceApplication": "Logix", "GeneratedOn": "2001-12-31T12:00:00", "Version": "1.000", "ProductName": "LOGIX", "ProductVersion": "12.1.19" }, "Content": { "ReceivedMessage": { "SentBy": "dts11", "UUID": "24121218-a5c8-e581-b010-0a139a59f4bf", "Event": "upsert" }, "ProcessingInformation": { "ProcessedOn": "2001-12-31T12:00:00", "Status": "error", "Details": [{ "Type": "warning", "Code": "254", "Message": "Messagem de Aviso" }, { "Type": "error", "Code": "-25", "Message": "Messagem de erro" }, { "Type": "error", "Code": "EAI30", "Message": "Mensagem de Teste3" } ] } } } |
...
As mensagens TOTVS possuem um segmento chamado MessageInformation que possui as principais informações utilizadas para identificação e roteamento da mensagem. Exemplo:
Onde:
...
Obs: Consultar Catalogo de Erros
ReceiptMessage
Âncora | ||||
---|---|---|---|---|
|
Uma ReceiptMessage representa a confirmação de recebimento de uma BusinessMessage pelo aplicativo destino.
Diferente da ResponseMessage, uma ReceiptMessage não irá conter qualquer informação relevante sobre o processamento da mensagem, uma vez que se entende que, se o aplicativo destino retornou um Receipt, ele não processou a mensagem naquele momento (comunicação assíncrona).
Quando a mensagem for processada pelo aplicativo-destino, uma mensagem de resposta (ResponseMessage) será gerada e encaminhada ao aplicativo que originou a BusinessMessage.
As informações contidas nas mensagens de recibo são genéricas e focam especificamente nos dados de recebimento da mensagem.
Onde:
- ReceivedMessage: Segmento com informações sobre a mensagem original (BusinessMessage) que deu origem a esta resposta.
- SentBy: Indica qual foi a instancia que gerou a mensagem original
- UUID: Identificador universal da mensagem de origem
- ReceiptData: Segmento com informações sobre o recebimento da mensagem
- ReceivedOn: Timestamp do recebimento da mensagem.
Quando uma BusinessMessage é recebida é ela for síncrona, ela deverá ser processada e receberá como resposta uma ResponseMessage,
Quando uma BusinessMessage é recebida é ela for assíncrona, ela receberá como resposta, no momento da recepção uma ReceiptMessage, e posteriormente quando for processada será enviada uma ResponseMessage para esta mensagem
...