Histórico da Página
Índice |
---|
Para facilitar a identificação de elementos que representam listas de valores e outros elementos, sugere-se adotar o padrão “ListOf”+”nome singular” e não o plural do elemento repetido.
Exemplo:
- ListOfItem (e não Itens);
- ListOfSourceDocument (e não SourceDocuments ou SourcesDocuments);
- ListOfQuotation (e não Quotations).
A declaração do elemento de lista no JsonSchema deve respeitar os padrões descritos abaixo e como exemplificado na mensagem MaintenanceOrder_1_002.json:
Bloco de código | ||||
---|---|---|---|---|
| ||||
"definitions": { "BusinessContentType": { "type": "object", "properties": { ... "ListOfMaintenanceOrderItem": { "description": "Lista de Itens da Ordem de Manutenção", "type": "array", "items": { "$ref": "#/definitions/MaintenanceOrderItemType", "type": "object" } }, ... } }, ... "MaintenanceOrderItemType": { "type": "object", "properties": { "Event": { "description": "Operação a ser executada no registro. / Upsert - Alterar/Incluir / Delete - Excluir", "type": "string", "enum": [ "Upsert", "Delete" ] }, "Code": { "description": "Código do item da Ordem de Manutenção", "type": "integer", "format": "int32" }, ... } ... } ... } ... } |
No local onde se queira incluir uma lista, deve-se adicionar um elemento com o nome ListOf + “elemento a repetir”, exemplo: ListOfMaintenanceOrderItem. Este elemento define por si só a tag "ListOfMaintenanceOrderItem" e a tag que irá se repetir "MaintenanceOrderItem".
O complexType "MaintenanceOrderItemType" define a estrutura do elemento que irá se repetir, ou seja, quais tags o JsonSchema da lista irá conter. No caso da MaintenanceOrder_1_002.json, são compostos por todos os elementos evidenciados no exemplo abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
... "MaintenanceOrderItemType": { "type": "object", "properties": { "Event": { "description": "Operação a ser executada no registro. / Upsert - Alterar/Incluir / Delete - Excluir", "type": "string", "enum": [ "Upsert", "Delete" ] }, "Code": { "description": "Código do item da Ordem de Manutenção", "type": "integer", "format": "int32" }, "InternalId": { "description": "InternalId do item da Ordem de Manutenção", "type": "string" }, "ItemInternalId": { "description": "Id de integração do Produto", "type": "string" }, "ItemReferenceCode": { "description": "Código de Referência do Produto", "type": "string", "minLength": 1, "maxLength": 20 }, "UnitPrice": { "description": "Preço Unitário", "type": "number", "multipleOf": 0.01, "minimum": -9999999999.99, "maximum": 9999999999.99 }, "TotalPrice": { "description": "Preço Total do Item", "type": "number", "multipleOf": 0.01, "minimum": -9999999999.99, "maximum": 9999999999.99 }, "Quantity": { "description": "Quantidade", "type": "number", "multipleOf": 0.01, "minimum": -9999999999.99, "maximum": 9999999999.99 }, "UnitOfMeasureInternalId": { "description": "Id de integração da Unidade de Medida", "type": "string" }, "WarehouseInternalId": { "description": "Id de integração do Local de Estoque(Armazem)", "type": "string" }, "InitialDateTime": { "description": "Data de Inicio do item", "type": "string", "format": "date-time" }, "FinalDateTime": { "description": "Data de Término do item", "type": "string", "format": "date-time" }, "ProjectInternalId": { "description": "Id de integração do Projeto", "type": "string" }, "TaskInternalId": { "description": "Id de integração da Tarefa", "type": "string" }, "Observation": { "description": "Observação", "type": "string" }, "ListOfApportionMaintenanceOrderItem": { "description": "Rateio dos Itens da Ordem de Manutenção", "type": "array", "items": { "$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/schemas/types/ApportionType_1_000.json#/definitions/ApportionType", "type": "object" } } } }, ... |