Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto |
| Módulo |
|
Segmento Executor |
| ||
Projeto1 |
| IRM1 |
|
Requisito1 |
| Subtarefa1 |
|
Chamado2 |
| ||
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Disponibilizar uma API para inclusão de strings de tradução no AtuSX.
Deverá ser desenvolvida uma API de integração com o AtuSX para permitir a inclusão de strings de tradução diretamente em sua base de dados.
O nome da rotina RESTFul deverá ser ATUSX.
A API deverá ser desenvolvida usando os fundamentos do RESTFul e deverá contemplar os seguintes metadados do AtuSX:
As chamadas do REST deverão ser organizadas da seguinte forma
Método | URI | Metadado | |||
---|---|---|---|---|---|
PUT | /question | Dicionário de perguntas | |||
PUT | /table | Dicionário de tabelas | |||
PUT | /field | Dicionário de campos | |||
PUT | /genericTable | Tabelas genéricas | |||
PUT | /parameter | Dicionário de parâmetros | |||
PUT | /folder | Dicionário de pastas e agrupamentos | |||
PUT | /lookup | Dicionário de consultas padrão | |||
PUT | /dependencyRules | Dicionário de regras de dependência | PUT | /fieldGroup | Dicionário de grupos de campos |
PUT | /help | Help de campo | |||
PUT | /programText | Strings de programas | |||
PUT | /menu | Menus do sistema |
Exemplo de como deverá ser composta uma URL: http://<servidor>:<porta>/rest/atusx/<URI>
Todos os métodos REST deverão receber um JSON no corpo da mensagem que deverá conter as seguintes informações:
key: Array contendo os valores que representam a chave da tabela de destino no AtuSX.
Esta opção poderá conter os seguinte valores:
URI | Valores | Exemplo de preenchimento | |||
---|---|---|---|---|---|
/question | ZX1_GRUPO+ZX1_IDFIL+ZX1_ORDEM+ZX1_IDZA4 | "key":["ABSENT","","01","BRA"] | |||
/table | ZX2_ALIAS+ZX2_IDZA4 | "key":["SA1","BRA"] | |||
/field | ZX3_CAMPO+ID_ZA4 | "key":["A1_NOME","BRA"] | |||
/genericTable | ZX5_TABELA+ZX5_CHAVE+ZX5_IDZA4 | "key":["00","01","BRA"] | |||
/parameter | ZX6_VAR+ZX6_IDZA4 | "key":["MV_1DUP","BRA"] | |||
/folder | ZXA_ALIAS+ZXA_ORDEM+ZXA_AGRUP | "key":["SA1","1",""] | |||
/lookup | ZXB_CODSXB+ZXB_TIPO+ZXB_SEQ+ZXB_COLUNA+ZXB_IDZA4 | "key":["A2A","1","01","DB","BRA"] | /dependencyRules | ZZA_DOM+ZZA_SEQUEN | "key":["DX1_LAB","001"] |
/fieldGroup | ZXG_CODSXG+ZXG_IDZA4 | "key":["001","BRA"] | |||
/help | ZXH_NOME+País** | "key":[".A014NOPR.","BRA"] | |||
/programText | ZB1_IDZB0+ZB1_CHAVE+ZB1_IDZA4 | "key":[1,"STR0001","BRA"] | |||
/menu | ZMN_CODIGO | "key":["0000008203"] |
** - O serviço de atualização do Help é o único que verifica duas tabelas, ZXH e ZXT, e apesar do País não estar presente na chave da ZXH, ele é necessário para atualização do valor na ZXT, dessa forma é preciso que seja informado.
Lista de possíveis países:
Código | Sigla | Descrição |
---|---|---|
1 | ALL | Todos |
2 | BRA | Brasil |
3 | ARG | Argentina |
4 | EUA | Estados Unidos |
5 | CHI | Chile |
6 | COL | Colômbia |
7 | VEN | Venezuela |
8 | MEX | México |
9 | POR | Porto Rico |
10 | PAR | Paraguai |
11 | URU | Uruguai |
12 | PER | Peru |
13 | COS | Costa Rica |
14 | DOM | Rep. Dominicana |
15 | EQU | Equador |
16 | PAN | Pana |
17 | BOL | Bolívia |
18 | SAL | El Salvador |
19 | PTG | Portugal |
20 | ANG | Angola |
21 | HAI | Haiti |
22 | TRI | Trinidad e Tobago |
23 | PAD | Padrão |
24 | AUS | Austrália |
25 | RUS | Russia |
property: Mnemônico que representa alguma coluna específica da tabela que será atualizada.
Os valores possíveis para esse parâmetro são:
URI | Valores | ||
---|---|---|---|
/question | description, definition1, definition2, definition3. definition4, definition5 | ||
/table | description | ||
/field | title, description, options | ||
/genericTable | description | ||
/parameter | description1, description2, description3 | ||
/folder | description | ||
/lookup | description | /dependencyRules | description |
/fieldGroup | description | ||
/help | text | ||
/programText | text | ||
/menu | text |
O JSON deverá ser montado seguindo o seguinte modelo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
[ { "version" : "<AtuSX version -non obligatory->", "project" : "<AtuSX project -non obligatory->", "package" : "<AtuSX package -non obligatory->", "key" : [ <Index Keys separate by ","> ], "property" : "<Field to update>", "idiom" : "<pt-br, pt, en, es, ru>", "value" : "<Tranlated term>" }, ... ] |
Exemplo de JSON formatado com valores reais para alterações de registros de SX1:
URI: /atusx/question
Bloco de código | ||||
---|---|---|---|---|
| ||||
[ {"version":"","project":"","package":"","key":["ABSENT","","01","RUS"],"property":"description","idiom":"ru","value":"России тест"}, {"version":"","project":"","package":"","key":["ABSENT","","01","RUS"],"property":"definition1","idiom":"ru","value":"да"}, {"version":"","project":"","package":"","key":["ABSENT","","01","RUS"],"property":"definition2","idiom":"ru","value":"нет"} ] |
De modo geral o JSON enviado deverá ser um array onde cada linha será correspondente a um UPDATE na tabela do AtuSX. Cada item do array deverá ter todas as informações necessárias para a localização do registro que será atualizado e o valor a ser incluído.
A principio utilizaremos autenticação Basic.
A própria API deverá possuir tratamento para diversos erros nas requisições. Segue a lista dos principais erros tratados:
Casso seja passado mais de um JSON pra ser processado de uma só vez, o erro deverá retornar qual posição do array apresentou erro. Porém, neste caso, todos os JSONs anteriores terão sido processados e o processo será abortado ao localizar um erro.
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|