Índice |
---|
Quem receber deverá truncar a informação para a sua capacidade, o que evitará o erro de TRUNCATE no banco.
Caso não seja aceitável a perda de informação ao TRUNCAR, o produto de maior capacidade deverá criar um limitador configurável para o campo de entrada da informação.
Deverá estar documentado na integração que, caso não seja aceitável a perda de informação, o produto A deverá ser configurado para limitar o tamanho do campo de texto em questão.
...
É muito mais barato e rápido alterar os produtos para restringir o tamanho de um campo, pois geralmente acontecerá apenas em um campo de entrada e mediante configuração. Do que alterar o produto para aumentar o tamanho de um campo, que irá afetar o campo de entrada, as tabelas, todos os programas e funções que usam esta tabela e em todas as telas e relatórios que ele aparece. Aumentar tamanho de campos é inviável.
As mensagens são únicas e utilizadas em diferentes integrações, que serão implantadas em diferentes clientes, cada um com um cenário diferente. Existem casos em que o cliente já possuía os dois produtos a serem integrados com bases populadas, onde os códigos terão que ser alinhados (de-/para manual). Também existem casos, onde em uma das pontas da integração a implantação é nova e a base está vazia. A integração desenvolvida deverá ter flexibilidade para trabalhar com todos estes cenários.
De-/para devem ser automatizados ao máximo.
...
Chaves primárias que podem ter ou não significado próprio. Alguns tipos de campos chave acabam fazendo parte do entendimento do usuário, então deve haver um cuidado maior em preservar valores equivalentes entre os produtos. Outros tipos de campos chave possuem uma chave natural atrelada, exemplo: código do cliente possui CNPJ, código do veículo possui placa, código do item pode possuir EAN-13.
Solução na mensagem
...
: Valerá o maior tamanho entre todos os produtos envolvidos
Solução no produto
...
: Caso o valor recebido seja incompatível com o tamanho do produto recebedor gerará de-/para.
Campos chave onde o seu valor possui um significado importante. Estes valores não podem ser truncados ou convertidos senão perdem significado.
Exemplo: CPF, CNPJ, Placa de veículo, documentos oficiais (Notas Fiscais, Ordem de Produção)
Solução na mensagem
...
: Quando são documentos oficiais valerá o tamanho oficial do documento, sem máscara.
Solução nos produtos
...
: A mensagem de integração no produto A deverá enviar o seu valor integral para o produto B.
...
Campos que descrevem chaves, são alimentados por pessoas, então não existe uma forma computacional de reduzi-lo e manter o seu significado.
Exemplo: Descrição do item, nome do cliente, detalhamento do chamado
Solução na mensagem
...
: Vale o maior tamanho entre os produtos. Isto possibilita que em integrações entre produtos com grande capacidade não ocorra a perda de informação pela restrição de um produto com menor capacidade e que muitas vezes nem faz parte da implantação.
Solução no produto:
Quem receber deverá truncar a informação para a sua capacidade, o que evitará o erro de TRUNCATE no banco.
...
Cada produto tem uma limitação própria para a capacidade de itens em estrutura pai & filho.
Exemplo: Itens do pedido, itens da nota fiscal
Solução na mensagem
...
: O tamanho das listas deverá ficar livre.
Solução no produto
...
: O produto A deverá permitir configurar a quantidade máxima de registros a serem adicionados na lista. O produto B deverá validar no seu adapter se a lista recebida é maior que a sua. capacidade, e retornar erro na mensagem caso este limite seja ultrapassado.
...
...
Na mensagem única deverá ser documentado a regra de preenchimento do campo, para facilitar o entendimento dos produtos, que estão enviando ou recebendo a informação.
Bloco de código | ||
---|---|---|
|
...
| |||
"Telefone"{
...
...
"x-totvs": [
{
"product": "Protheus",
"field": "SA1.A1_TEL",
"required": true,
"type": "char",
"length": "09",
"note": "Permite somente o número do telefone",
"available": true,
"canUpdate": false
},
{
"product": "RM",
"field": "",
"required": true,
"type": "char",
"length": "20",
"note": "Permite informar DDD + Telefone/Celular com máscara",
"available": true,
"canUpdate": false
}
]
} |