Páginas filhas
  • Chave Interna (InternalId)

Versões comparadas

Chave

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

...

  • 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 (BusinessMessageReceiptMessage 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:Image Removed

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

...

languagejs
titleBusinessMessage - Request
{
	"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
ResponseMessage
ResponseMessage

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
languagejs
titleMensagem do Tipo Response (EAI)
linenumberstrue
{
    "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
languagexml
titleResponseMessage
linenumberstrue
<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.

 Image Removed

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
languagejs
titleMensagem do Tipo Response (EAI)
linenumberstrue
{
    "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
languagexml
titleResponse com Erro
linenumberstrue
{
	"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: 

 Image Removed

Onde:

...


Obs: Consultar Catalogo de Erros 

ReceiptMessage
Âncora
ReceiptMessage
ReceiptMessage

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

...