Versões comparadas

Chave

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

Neste documento são demonstradas as formas de utilização dos endpoints de mensagem padronizada do padrão REST/JSON.

Índice

Âncora
transactions
transactions
Endpoint /transactions

Submeter mensagens de inclusão/alteração em lote

POST /totvseai/standardmessage/v1/transactions?batchType={batchType}?&batchUUID={batchUUID}

Onde:

...

Bloco de código
languagejs
titleLote de mensagens - businessTransaction
POST /totvseai/standardmessage/v1/transactions?batchType=businessTransaction&batchUUID=f0b3695c-1efc-49f2-84a7-1eeb59c5a962

{
    "Items" : [
		{
            "Header" : {
                "UUID" : "",
                "Type" : "BusinessMessage",
                "SubType" : "event",
                "Transaction" : "customerVendor",
                "Version" : "2.001",
                "SourceApplication": "",
                "ProductName" : "",
                "ProductVersion" : "",
                "GeneratedOn" : "",
                "DeliveryType" : "async",
            },
            "Content" : {
                "Atributo1" : "",
                "Atributo2" : "",
                ...
                "AtributoN" : ""
            }
        },{
            "Header" : {
                "UUID" : "",
                ...
                "Transaction" : "item",
                "Version" : "3.001",
                ...
                "DeliveryType" : "sync" // Rejeitar toda a requisição e informar que só aceita assíncrono
            },
            "Content" : {
                "Atributo1" : "",
                "Atributo2" : "",
                ...
                "AtributoN" : ""
            }
        }
    ]
}

Submeter uma única mensagem de inclusão/alteração

POST /totvseai/standardmessage/v1/transactions

...

Bloco de código
languagejs
POST /totvseai/standardmessage/v1/transactions/

{
    "Header" : {
        "UUID" : "",
        "Type" : "BusinessMessage",
        "SubType" : "event",
        "Transaction" : "customerVendor",
        "Version" : "2.001",
        "SourceApplication": "",
        "ProductName" : "",
        "ProductVersion" : "",
        "CompanyId" : "",
        "BranchId" : "",
        "GeneratedOn" : "",
        "DeliveryType" : "sync",
    },
    "Content" : {
        "Atributo1" : "",
        "Atributo2" : "",
        ...
        "AtributoN" : ""
    }
}

Submeter uma mensagem de eliminação

DELETE /totvseai/standardmessage/v1/transactions/
Bloco de código
languagejs
DELETE /totvseai/standardmessage/v1/transactions/
{
	"Header" : {
    	"UUID" : "",
        "Type" : "BusinessMessage",
        "SubType" : "event",
        "Transaction" : "customerVendor",
        "Version" : "2.001",
        "SourceApplication": "",
        "ProductName" : "",
        "ProductVersion" : "",
        "CompanyId" : "",
        "BranchId" : "",
        "GeneratedOn" : "",
        "DeliveryType" : "sync",
    },
    "Content" : {
        "Atributo1" : "",
        "Atributo2" : "",
        ...
        "AtributoN" : ""
    }
}

Submeter um lote de mensagens de eliminação

DELETE /totvseai/standardmessage/v1/transactions?batchType={batchType}?batchUUID={batchUUID}

...

Bloco de código
languagejs
DELETE /totvseai/standardmessage/v1/transactions?batchUUID=f0b3695c-1efc-49f2-84a7-1eeb59c5a962

{
    "Items" : [
        {
            "Header" : {
                "UUID" : "",
                "Type" : "BusinessMessage",
                "SubType" : "event",
                "Transaction" : "customerVendor",
                "Version" : "2.001",
                "SourceApplication": "",
                "ProductName" : "",
                "ProductVersion" : "",
                "GeneratedOn" : "",
                "DeliveryType" : "async",
            },
            "Content" : {
                "Atributo1" : "",
                "Atributo2" : "",
                ...
                "AtributoN" : ""
            }
        },
        {
            "Header" : {
                "UUID" : "",
                "Type" : "BusinessMessage",
                "SubType" : "event",
                "Transaction" : "customerVendor",
                "Version" : "2.001",
                "SourceApplication": "",
                "ProductName" : "",
                "ProductVersion" : "",
                "GeneratedOn" : "",
                "DeliveryType" : "async",
            },
            "Content" : {
                "Atributo1" : "",
                "Atributo2" : "",
                ...
                "AtributoN" : ""
            }
        }
    ]
}

Entender mensagem de Erro 

Entende-se como ERRO quando transmissão e entendimento da mensagem foram realizados com sucesso, porém alguma regra de negócio no ERP receptor não foi cumprida. 

...

Bloco de código
languagejs
{
    "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" : "ERROR",
            "Details" : [
                {
                    "Code" : "FE001",
                    "Message" : "Mensagem padrão no formato incorreto.",
                    "DetailedMessage" : "",
					"HelpUrl": "http://tdn.totvs.com" 
                },
                {
                    "Code" : "AE004",
                    "Message" : "Empresa não configurada para integração.",
                    "DetailedMessage" : "",
					"HelpUrl": "http://tdn.totvs.com" 
                }
            ]
        },
        "ReturnContent" : {            
            "ListOfInternalID" : [
                {
                    "Name" : "CostCenter",
                    "Origin" : "99|ABC001",
                    "Destination" : "10|1000"
                },
                {
                    "Name" : "Company",
                    "Origin" : "99",
                    "Destination" : "10"
                }
            ]
        }
    }
}


Entender mensagem de Falha

Entende-se como FALHA quando transmissão e entendimento da mensagem não puderam ser realizados. 

...

Bloco de código
languagejs
{
    "Code" : "FE001",
    "Message" : "Mensagem padrão no formato incorreto.",
    "DetailedMessage" : "",
	"HelpUrl": "http://tdn.totvs.com" 
}

...

Endpoint /contents

Informações
O termo entidade está sendo usado no lugar de mensagem, porque neste endpoint não haverá os controles que são feitos no endpoint /transactions. Uma mensagem implica em um remetente, um destinatário e um conteúdo. Neste caso, temos explicito apenas o conteúdo, correspondente a uma entidade no destino, que é identificada pelo seu internalID.

Recuperar um lote de entidades

GET /totvseai/standardmessage/v1/contents/{transactionID_version}?
page={page}&
pageSize={pageSize}&
order={orderList}&
fields={fieldList}&
{field1}={value1}&{field2}={value2}&{fieldN}={valueN}

Onde:

  • transactionID_version: indica a transação e versão para a qual se quer recuperar os itens. Parâmetro obrigatório.
  • page: Indica a página a recuperar. Valor padrão: 1.
  • pageSize: Indica a quantidade de itens por página: Valor padrão: 10.
  • order: Contém a lista de campos, separados por vírgula, que devem ser considerados para ordenar a lista de itens. Quando a ordenação for decrescente, o sinal "-" deve preceder o nome do campo. Valor padrão: ordenação definida pelo backend.
    Ex: order=-description,code.
  • fields: Contem a lista de campos, separados por vírgula, que deve constar no retorno. Valor padrão: todos os campos.
    Ex: field=code,description.
  • field1...fieldN: Indica o filtro que deve ser aplicado para selecionar os itens do retorno. Valor padrão: sem filtro.
    Ex: code=10&description=Teste.
Bloco de código
languagejs
GET /totvseai/standardmessage/v1/contents/customervendor_1_000

{
    "HasNext" :  "true",
    "Items" : [
        {
            "Atributo1" : "",
            "Atributo2" : ""
        },
        {
            "Atributo1" : "",
            "Atributo2" : ""
        }
    ]
}

Recuperar uma entidade

GET /totvseai/standardmessage/v1/contents/{transactionID_version}/{internalID}?
fields={fieldList}&
{field1}={value1}&{fieldN}={valueN}

Onde:

  • transactionID_version: parâmetro obrigatório, que identifica a transação e versão da entidade desejada.
  • internalID: parâmetro obrigatório contendo o internalID da entidade desejada.
  • fields: parâmetro opcional, contendo a lista de campos que devem constar no retorno. Valor padrão: todos os campos.
  • field1...fieldN: conjunto de parâmetros opcionais, necessários para transações do tipo request. Os parâmetros podem variar conforme a transação e versão.
     
Bloco de código
languagejs
GET /totvseai/standardmessage/v1/contents/customervendor_1_000/10|30

{
    "Atributo1" : "valor1",
    "Atributo2" : "valor2"
}

Submeter uma entidade

POST /totvseai/standardmessage/v1/contents/{transactionID_version}

Onde:

...

Para transações do tipo event, representa a criação de um registro.

Para transações do tipo request, representa a execução de um processamento.

Bloco de código
languagejs
POST /totvseai/standardmessage/v1/contents/updateContractParcel_2_001/

{
    "Atributo1" : "valor1",
    "Atributo2" : "valor2"
}

Submeter um lote de entidades

POST /totvseai/standardmessage/v1/contents/{transactionID_version}

Onde:

...

Bloco de código
languagejs
POST /totvseai/standardmessage/v1/contents/customervendor_1_000/

{
    "Items" : [
        {
            "Atributo1" : "valorA1",
            "Atributo2" : "valorA2"
        },
        {
            "Atributo1" : "valorB1",
            "Atributo2" : "valorB2"
        }
    ]
}

Alterar uma entidade

PUT /totvseai/standardmessage/v1/contents/{transactionID_version}/{internalID}

Onde:

...

Bloco de código
languagejs
PUT /totvseai/standardmessage/v1/contents/customervendor_1_000/10|30

{

	"Atributo1" : "valorA1",
	"Atributo2" : "valorA2"

}

Eliminar uma entidade

DELETE /totvseai/standardmessage/v1/contents/{transactionID_version}/{internalID}

Onde:

...

Bloco de código
languagejs
DELETE /totvseai/standardmessage/v1/contents/customervendor_1_000/10|30

//Não necessita de corpo

...