Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             



Informações Gerais

Especificação

Produto

TOTVS

Módulo

EAI

Segmento Executor

Framework

Projeto1

DEAI1

IRM/EPIC1


Requisito/Story/Issue1

DEAI1-3067

Subtarefa1

DEAI1-3186

Chamado/Ticket2


País

(  ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   ( X ) TODOS.

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). 

Objetivo

Explicitar o que foi definido e especificar os caminhos sugeridos a serem seguidos.


Definições Gerais

Como foi definido em grooming dia (21/09/2018), iremos criar a pagina dinâmica utilizando componentes criando em angular, a partir de um arquivo JSON que seja extraído do repositório de mensagem automaticamente no momento de aprovação do pull request. Também será gerado um segundo JSON que seja focado para a seção de pesquisa(para este seja realizado um estudo mais aprofundado no futuro).

o JSON deve ter as seguintes especificações:

  • Deve se basear em um JSON Schema já na branch Master, ou seja, uma mensagem já homologada pelo comitê
  • Deve ser "desreferenciado", ou seja, ele poderá conter referencia a outros schemas e arquivos
  • Deve ser MInificado
  • Deve organizar as propriedades de modo a facilitar a leitura da rotina que irá renderizar a tela, ele não será lido por humanos.

A interface em Angular deve ter as seguintes especificações:

  • Deve seguir o guia definido pelo UX
  • Deve conter apenas as marcas que são informadas no JSON

No link abaixo segue POC criada em Node.js, pode ser utilizada como base para a geração do JSON.

JSON_generator.zip


exemplo de JSON a ser gerado pelo ferramenta:

JSON de Exemplo
{
    "ProductList": [
        "agriApi"
    ],
    "info": {
        "description": "The <code>TOTVS Agriculture API</code> (aka <code>T-Agri API</code>) is a RESTFul API that provides entities and resources based on the <code>agriculture context for TOTVS' solutions</code>.\n\nBelow is a list of available REST API call for business agriculture resources.",
        "version": "1.000",
        "title": "Base Quantity API",
        "contact": {
            "name": "Ttalk",
            "url": "http://www.totvs.com",
            "email": "[email protected]"
        },
        "x-totvs": {
            "messageDocumentation": {
                "description": "TOTVS Agriculture API - Base Quantity API",
                "name": "Base Quantity API",
                "segment": "Agribusiness"
            },
            "productInformation": [
                {
                    "product": "agriApi",
                    "adapter": "",
                    "contact": "[email protected]",
                    "description": "TOTVS Agriculture API - Base Quantity API",
                    "helpUrl": ""
                }
            ]
        }
    },
    "paths": {
        "/baseQuantities": {
            "get": {
                "tags": [
                    "base-quantity"
                ],
                "summary": "Recovers a list of enumeration values",
                "operationId": "5b8fe3feddadf327c027e527",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "required": false,
                        "description": "Cabeçalho usado para autorização das requisições",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "description": "Ordenação da Coleção",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "uniqueItems": true
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Paginação da Coleção",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 1,
                            "minimum": 1,
                            "exclusiveMinimum": false
                        }
                    },
                    {
                        "name": "pageSize",
                        "in": "query",
                        "description": "Quantidade de Itens por Página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 10
                        }
                    },
                    {
                        "name": "Accept-Language",
                        "in": "header",
                        "description": "Descreve qual o idioma que o cliente vai compreender",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Enumeration values recovered successfully",
                        "content": {
                            "schema": {
                                "agriApi": {
                                    "page": {
                                        "type": "integer",
                                        "format": "int64",
                                        "description": "Records page selected",
                                        "x-Field": "tabela.campo",
                                        "x-Required": false,
                                        "x-Type": "Char",
                                        "x-length": "12",
                                        "x-avialable": true,
                                        "x-canUpdate": false
                                    },
                                    "pageSize": {
                                        "type": "integer",
                                        "format": "int64",
                                        "description": "Number of records per page",
                                        "x-Field": "tabela.campo",
                                        "x-Required": false,
                                        "x-Type": "Char",
                                        "x-length": "12",
                                        "x-avialable": true,
                                        "x-canUpdate": false
                                    },
                                    "total": {
                                        "type": "integer",
                                        "format": "int32",
                                        "description": "Total number of records in the collection",
                                        "x-Field": "tabela.campo",
                                        "x-Required": false,
                                        "x-Type": "Char",
                                        "x-length": "12",
                                        "x-avialable": true,
                                        "x-canUpdate": false
                                    }
                                }
                            }
                        }
                    }
                },
                "x-totvs": {
                    "productInformation": [
                        {
                            "product": "agriApi",
                            "available": "true",
                            "minimalVersion": "12.1.22",
                            "note": "This service is available to recover data"
                        }
                    ]
                }
            }
        }
    }
}

Fluxo da mensagem

Foi definido o fluxo da mensagem para que possa padronizar e automatizar o processo:

Segue o diagrama:

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.