Versões comparadas

Chave

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

...

As orientações descritas neste documento, portanto, visam atender os dois modelos de integração existentes: API e Transactions.

(informação) Clique aqui para entender a divisão e as diferenças entre especificação de API (arquivo OpenAPI) e Mensagem Padronizada TOTVS (JsonSchema)

Veja abaixo um exemplo de mensagem padronizada completa, em formato JSON, (incluindo header para controle da camada de EAI), trafegada no modelo Transactions:

...

  1. Seguir a especificação do formato JsonSchema (draft 4 ou superior)
    1. Clique aqui para visualizar exemplos
  2. Seguir a definição de campos especificada
  3. Especificar propriedade X-Totvs de acordo com a documentação, incluindo quais ERPs implementam aquela mensagem e os campos relacionados. 
  4. Sempre que possível, utilizar padrões internacionaisPara saber se já existe uma mensagem de conta contábil, por exemplo, pesquise no Google usando "account xsd oasis repository".
    1. Mensagens criadas para atender uma exigência legal devem se ater estritamente ao que é definido pela legislação. Nestes casos, o nome da mensagem e dos campos podem ser em português, se a legislação exigir.

...

Bloco de código
languagejs
titleExemplo X-Totvs Info
"info": {
...
	"x-totvs": {
            "messageDocumentation": {
                "name": "StockTurnOver",
                "description": "Baixa de estoque",
                "segment": "Construção e Projetos",
				"domain": "Planejamento"
            },
            "productInformation": [
                {
                    "product": "RM",
                    "contact": "Bruno Barbosa de Souza",
                    "note": "GDP Inovação Const. e Proj.",
                    "adapter": "MovMovimentoData"
                },
                {
                    "product": "Protheus",
                    "contact": "Eduardo de Souza",
                    "note": "GDP de Materiais",
                    "adapter": "MATI241"
                },
                {
                    "product": "PIMS",
                    "contact": "José Alberto da Silva",
                    "note": "",
                    "adapter": ""
                }
            ],
            "transactionDefinition": {
                "subType": "event",
                "businessContentType": {
                    "$ref": "#/definitions/BusinessContentType",
                    "type": "object"
                },
                "returnContentType": {
                    "$ref": "#/definitions/ReturnContentType",
                    "type": "object"
                }
            }
        }
}

...

Contém nome, descrição e agrupador da mensagem (esse último definido através da propriedade das propriedades segment e domain)

Campo Obrigatório

Aviso

O campo Os campos "segment" e " deve domain" devem ser preenchido preenchidos de forma coerente com o que já está em uso nos outros schemas e APIs de nossa base (por exemplo, deve-se manter o "case" em uso, evitando variações como "HealthCare" em uma mensagem, e "Healthcare" em outra). Para isso, visite o API Reference e verifique como o segmento que você quer adicionar está escrito.

...

Segmentação do modelo de dados

Partindo de um modelo XML como jsonSchema como base, veremos a seguir um exemplo de uma possível implementação de API usando segmentação do modelo de dados.

O modelo de dados em Json Schema JsonSchema será compartilhado no repositório do Github da TOTVS e deve ser referenciado na documentação da API pela sua URL, conforme apresentado no exemplo da sessão anterior.

...

Por isso, a segmentação do modelo de dados é permitida, desde que mantenha a estrutura e atributos do modelo XML JSON original.

Nosso modelo Json Schema poderia ser segmentado em 3 submodelos:

...

  • DELETE /v1/contracts/1|1/sheets/1


Âncora
jschema-examples
jschema-examples
Exemplos JsonSchema:

Json Schema da Mensagem Branch 2.001 : https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/schemas/Branch_2_001.json

...

Exemplos Oficiais site json-schema: https://json-schema.org/learn/miscellaneous-examples.html

Âncora
int-examples
int-examples
Padrões internacionais de mensagens para integração

http://docs.oasis-open.org/ubl/prd1-UBL-2.1/UBL-2.1.html

...