...
...
Informaçõeswarning | ||
---|---|---|
| ||
No padrão REST/JSON, a indicação do tipo de operação - upsert ou delete - originalmente indicada na tag Event do padrão SOAP/XML, estará vinculada ao método HTTP utilizado na requisição. Mais informações serão prestadas na seção Interface deste documento. | ||
| ||
A tag Identification, subordinada à tag BusinessEvent, não será contemplada no formato REST/JSON. Essa tag foi sendo substituída ao longo do tempo | ||
Aviso | ||
| ||
A tag Identification, subordinada à tag BusinessEvent, não será contemplada no formato REST/JSON. Essa tag foi sendo substituída ao longo do tempo pelos InternalIDs do corpo das mensagens. Ao migrar um adapter para utilizar o novo formato, qualquer processamento baseado na tag Identification deve ser revisto. |
...
Bloco de código | ||
---|---|---|
| ||
{ "Header" : { "UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b", "Type" : "BusinessMessage", "SubType" : "event", "TransactionEvent" : "CostCenterupsert", "VersionTransaction" : "CostCenter", "Version" : "2.000", "SourceApplication": "P1299", "ProductName" : "PROTHEUS", "ProductVersion" : "12.1.17", "CompanyId" : "99", "BranchId" : "01", "GeneratedOn" : "2017-11-14T11:47:00-03:00", "DeliveryType" : "async", }, "Content" : { "CompanyId" : "99", "BranchId" : "01", "CompanyInternalId" : "99", "Code" : "ABC001", "InternalId" : "99|ABC001", "RegisterSituation" : "Active", "Name" : "Centro de Custo ABC001", "ShortCode" : "ABC001", "SPED" : true, "Class" : 2 } } |
...
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" }, "ReturnContent" : { "ListOfInternalID" : [ { "Name" : "CostCenter", "Origin" : "99|ABC001", "Destination" : "10|1000" }, { "Name" : "Company", "Origin" : "99", "Destination" : "10" } ] } } } |
Para mensagem de Resposta Assíncronas o método do envio deve ser POST, pois esta sendo trafegada a resposta, independente da operação original. Para obter o processo da mensagem original pode se acessar a propriedade Content.ReceivedMessage.Event.
O padrão REST/JSON fornece também um modelo para lote de mensagens, onde as mensagens são agrupadas em um array JSON, de nome items.
Bloco de código | ||
---|---|---|
| ||
{ "Items" : [ { "Header" : { "UUID" : "", "Type" : "", "SubType" : "", "TransactionEvent" : "customerVendor", "VersionTransaction" : "2.001customerVendor", "SourceApplicationVersion" : "2.001", "ProductName" SourceApplication": "", "ProductName" : "", "ProductVersion" : "", "GeneratedOn" : "", "DeliveryType" : "async", }, "Content" : { "Atributo1" : "", "Atributo2" : "", ... "AtributoN" : "" } },{ "Header" : { "UUID" : "", ... "Transaction" : "item", "Version" : "3.001", ... "DeliveryType" : "async" }, "Content" : { "Atributo1" : "", "Atributo2" : "", ... "AtributoN" : "" } } ] } |
...
Informações | ||
---|---|---|
| ||
Por definição, não serão aceitas mensagens com subtipo request no método DELETE. Apenas mensagens com subtipo event serão permitidas. Quando tal situação ocorre, será retornado, no mínimo, o código HTTP 405 (Method not allowed). |
Informações | ||
---|---|---|
| ||
Diante do descrito até o momento, há duas formas de se indicar a operação de uma mensagem do tipo BusinessMessage: via métodos HTTP (POST e DELETE) e via atributo Event. Sempre que for possível determinar a operação pelos atributos do canal, esta será a informação prevalente, como é o caso do canal REST, onde os métodos HTTP provêm essa indicação. Neste caso, pode ocorrer sobre posição da informação no atributo Event da mensagem, se ele não for compatível com a indicação do canal. O atributo Event, dentro da mensagem, será considerado apenas nos casos onde o canal não fornecer a indicação da operação, como é o caso do canal AMQP. |
Exemplos de utilização deste predicado podem ser encontrados nos links a seguir:
...