Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Alteração dos atributos para seguir o padrão "UpperCamelCase".
Informações
titleDocumento em construção

O documento abaixo está em elaboração e será complementado ao longo do tempo. A previsão de conclusão é 9/2/2018.

Com o objetivo de auxiliar na migração do formato SOAP/XML para o formato REST/JSON, elaboramos este documento, no qual demonstramos a equivalência de conceitos entre os formatos. Entretanto, algumas tags presentes no formato SOAP/XML não foram migradas para o novo formato, por estarem em desuso ou terem uma aplicação muito específica.

Formato SOAP/XMLFormato REST/JSON
Endpoints

http://<servidor>:<porta>/eai2-ws/EAIService?wsdl (DATASUL)

http://<servidor>:<porta>/EAISERVICE.apw?wsdl (LOGIX/PROTHEUS)

http://<servidor>:<porta>/EAIService/MEX?wsdl (RM)

  • Operação SOAP padrão para recebimento: receiveMessage

http://<servidor>:<porta>/totvseai/standardmessage/v1/transactions

http://<servidor>:<porta>/totvseai/standardmessage/v1/content

  • Endpoints implementados por todos os ERPs.

Estrutura da mensagem

TOTVSMessage, composta de:

  • MessageInformation e
  • BusinessMessage ou
  • ResponseMessage ou
  • ReceiptMessage

Dois atributos principais:

  • headerHeader
  • contentContent


Tags de MessageInformation X atributos de header
<MessageInformation version="2.000">"versionVersion" : "2.000"
<UUID>d6bbfa63-ca27-e2ac-0b14-101970f59a5b</UUID>"UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b"
<Type>BusinessMessage</Type>"typeType" : "BusinessMessage"
<Transaction>CostCenter</Transaction>"transactionTransaction" : "CostCenter"
<StandardVersion>1.000</StandardVersion>Sem equivalente na mensagem. A versão do padrão será designada na URL do endpoint /totvseai/standardmessage/v1.
<SourceApplication>P1299</SourceApplication>"sourceApplicationSourceApplication" : "P1299"
<CompanyId>99</CompanyId>"companyIdCompanyId" : "99"
<BranchId>01</BranchId>"branchIdBranchId" : "01"
<UserId>admin<UserID><UserId>admin<UserId>"userIdUserId" : "admin"
<Enterprise></Enterprise>Não será utilizado no formato REST/JSON
<BusinessUnit></BusinessUnit>Não será utilizado no formato REST/JSON.
<CompanySharingMode>C</CompanySharingMode>Não será utilizado no formato REST/JSON.
<BusinessUnitSharingMode>C</BusinessUnitSharingMode>Não será utilizado no formato REST/JSON.
<BranchSharingMode>C</BranchSharingMode>Não será utilizado no formato REST/JSON.
<Product name="PROTHEUS" version="12.1.17" />

"productNameProductName" : "PROTHEUS"

"productVersionProductVersion" : "12.1.17"

<GeneratedOn>2017-11-15T12:00:30-02:00</GeneratedOn>"generatedOnGeneratedOn" : "2017-11-15T12:00:30-02:00"
<DeliveryType>async</DeliveryType>"deliveryTypeDeliveryType" : "async"
Outras tags e suas equivalências no modelo REST/JSON
BusinessMessage/BusinessEvent

Atributo "subTypeSubType" do headerHeader, com valor igual a "event".

Ex: "subTypeSubType" : "event".

BusinessMessage/BusinessEvent/EntityUtilizar o atributo "transactionTransaction" do headerHeader.
BusinessMessage/BusinessEvent/Event

A operação será obtida do método HTTP usado no endpoint:

  • POST: será equivalente a <Event>upsert</Event>
  • DELETE: será equivalent a <Event>delete</Event>.
BusinessMessage/BusinessEvent/IdentificationNão será utilizado no formato REST/JSON. Foi substituído pelos internalIds internal Ids informados no conteúdo da mensagem.
BusinessMessage/BusinessRequest

Atributo "subTypeSubType" do header Header com valor igual a "request".

Ex: "subType" : "request".

BusinessMessage/BusinessRequest/OperationUsar o atributo "transactionTransaction" do headerHeader.
BusinessMessage/BusinessContentAtributo "contentContent". Todas as tags do XML correspondentes a BusinessContent devem ser convertidas em atributos JSON, sem qualquer modificação.
ResponseMessage/ReceivedMessage e tags filhas.

Atributo "receivedMessageReceivedMessage"´de contentContent. Os atributos filhos são equivalências diretas das tags filhas de <ReceivedMessage>.

"receivedMessageReceivedMessage" : {
   "UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b",
   "sentBySentBy" : "P1299",
   "eventEvent" : "upsert"
}

ResponseMessage/ProcessingInformation

Atributo "processingInformationProcessingInformation" do contentContent, quando a mensagem for do tipo "Response". As tags <ProcessedOn> e <Status> tem os atributos equivalentes "processedOnProcessedOn" e "statusStatus".

"processingInformationProcessingInformation" : {
   "processedOnProcessedOn" : "2017-11-14T11:47:15-03:00",
   "statusStatus" : "ERROR",
   "detailsDetails" : [{
      "codeCode" : "FE001",
      "messageMessage" : "Mensagem padrão no formato incorreto.",
      "detailedMessageDetailedMessage" : ""
   },{
      "codeCode" : "AE004",
      "messageMessage" : "Empresa não configurada para integração.",
      "detailedMessageDetailedMessage" : ""
   }]
}

ResponseMessage/ProcessingInformation/ListOfMessagesAtributo "detailsDetails" do processingInformationProcessingInformation.
ResponseMessage/ReturnContentAtributo "returnContentReturnContent". Todas as tags XML devem ser convertidas em atributos JSON.
ReceiptMessageNão existe mensagem de recibo no formato JSON. O indicativo de que a mensagem foi recebida é o código HTTP 202 (Accepted).

...