Versões comparadas

Chave

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

Com o objetivo de padronizar as integrações com os produtos TOTVS, foi definida uma nova diretriz para os projetos de integração onde todos os produtos TOTVS devem se comunicar através de mensagem XML ou JSON única, evitando desta forma, o processo de transformação de mensagens. O layout completo da mensagem padronizada conta com cabeçalho e elementos com informações de origem e destino, status de processamento e erros. Isto permite que dentro de uma mensagem específica seja definido apenas o conteúdo de negócio e retorno, mas quando o XML ou JSON completo for trafegar entre os produtos, todas as informações citadas anteriormente também façam parte da estrutura da mensagem.

Segue abaixo um exemplo do XML de uma mensagem padronizada (XML) completa:
























Exemplo de um XML de resposta de processamento sem erros:


Exemplo de um XML de resposta de processamento com erros:


Exemplo de um XML de ReceiptMessage:

Bloco de código
languagexml
titleReceiptMessage
linenumberstrue
collapsetrue
<ReceiptMessage>
	<ReceivedMessage>
		<SentBy>protheus_server1</SentBy>
		<UUID>25121218-a5c8-e581-b010-0a139a59f4bf</UUID>
		<MessageContent>
			<![CDATA[...]]>
		</MessageContent>	
	</ReceivedMessage>
	<ReceiptData>
		<ReceivedOn>2011-06-23T17:04:16</ReceivedOn>
	</ReceiptData>
</ReceiptMessage>

Observação: 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. O envio da ReceiptMessage deverá ocorrer somente no envio de mensagem no modo assíncrona.

Informações Comuns Nas Mensagens Padronizadas

As mensagens TOTVS possuem um segmento chamado MessageInformation que possui as principais informações utilizadas para identificação e roteamento da mensagem. Segue abaixo um exemplo:

Bloco de código
languagexml
titleMessageInformation
linenumberstrue
collapsetrue
	<MessageInformation version="2.002">
		<BranchId>L MG 01</BranchId>
		<CompanyId>T2</CompanyId>
		<UserId>22</UserId/>
		<DeliveryType>Sync</DeliveryType>
		<GeneratedOn>2018-03-20T12:49:39Z</GeneratedOn>
		<Product name="PROTHEUS" version="12"/>
		<SourceApplication>P12_DEV_SERVERT2</SourceApplication>
		<StandardVersion>1.000</StandardVersion>
		<Transaction>UNITOFMEASURE</Transaction>
		<Type>BusinessMessage</Type>
		<UUID>69f90943-9cfc-b5e9-b485-500f17604e38</UUID>
	</MessageInformation>


A seguir é apresentado uma descrição detalhada de cada tag do segmento MessageInformation apresentado acima:

SEGMENTOTAGTIPOTAMANHODESCRITIVO









MessageInformation

BranchIdString10Identificador da filial que gerou a mensagem (obrigatório)
CompanyIdString20Identificador da empresa que gerou a mensagem (obrigatório)
UserIdString-Identificador do usuário que gerou a mensagem (obrigatório)

DeliveryType

String

5

Forma de envio da mensagem, podendo ser "Sync" ou "Async", ou seja, "síncrono" ou "assíncrono" respectivamente;

GeneratedOnDateTime-Identifica o timestamp de geração desta mensagem
ProductString60Identifica o produto e versão do aplicativo que originou a mensagem. Neste caso, o valor pode ser igual, mesmo em instâncias diferentes do mesmo aplicativo

SourceApplication

String

60

Identifica a instância dos aplicativos que gerou a mensagem. Uma instância representa uma instalação/configuração daquele aplicativo/produto. Caso duas instâncias do mesmo aplicativo participem da mesma integração, cada uma deverá ser identificada de forma única
StandardVersionString20 Identifica a versão do padrão TOTVS, ou seja, do formato utilizado nas áreas genéricas da mensagem TOTVS. Caso o padrão TOTVS seja alterado, este valor será alterado
TransactionString50Identifica o tipo de transação da mensagem. Esta informação será utilizada pelos aplicativos para definir como os dados serão processados no recebimento
TypeString20Identifica o tipo da mensagem (BusinessMessage ou ResponseMessage)
UUIDString36Identificador único da mensagem e que não pode ser igual ao UUID de qualquer outra mensagem em qualquer um dos aplicativos participantes da integração

O PIMSConnector utilizará a estrutura de mensagem padronizada, para realizar a troca das mensagens entres os aplicativos externos, aproveitando os fundamentos presentes na Mensagem Estruturada.