01. DADOS GERAIS
| Produto: | TOTVS Agro API Hub |
|---|---|
| Linha de Produto: | Linha PIMS |
| Segmento: | Agroindústria |
| Módulo: | Framework |
| Função: | Todas |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : | DAGROFRAME-5415 |
02. SITUAÇÃO/REQUISITO
Criar métodos de execução das fórmulas existentes nos serviços de mobilidade do TOTVS Agro Bioenergia.
Específicos:
- Implementar um método para identificar o nome do fórmular e buscar na base tabela MOBILE_SERVICES
- Identificar o tipo de fórmula a ser executada
- SQL - Realizam um consulta no Banco de dados e retornam um valor.
- SqlParam - Faz a consulta e gera um condição AND ou OR para o WHERE do Serviço
- Const - Retornam um valor fixo, sem execução de qualquer consulta no banco
- SqlTernario - Fórmulas com operador ternário, onde deve existir um nova consulta ou apenas retornar um valor de acordo com o resultado da primeira query
- BeforeSql - Substitui o padrão antigo para as fórmulas e é executado antes da query principal
-
- Implementar a execução da fórmula e a substituição do nome da formula pelo resultado da execução da fórmula
03. SOLUÇÃO
Foi desenvolvido métodos de identificação, formatação e execução das formulas com base no padrão já existente no Portal Mobilidade, para que tenha o menor impacto possível nos aplicativos de mobilidade do TOTVS Agro Bioenergia.
- Padrão de Projeto Factory
Foi criada a Classe ExecutorStrategyFactory para gerenciar as instancias dos tipos de formulas existentes
- Padrão de Projeto Strategy
Foi desenvolvida uma interface chamada ExecutorStrategy a qual todo tipo de formula deverá implementar o método execute() com sua própria logica.
- Formato de cadastro das formulas
- As formulas devem ser inseridas na Tabela MOBILE_SERVICES respeitando o seguinte padrão no valor a ser inserido na coluna query - [Tipo_Formula, Formula]. Por Exemplo:
- Formato de cadastro das formulas
["Sql", "Select nome FROM Usuario WHERE codigo = 1]
A exceção desse formato é o tipo SqlTernario que segue o seguinte padrão [SqlTernario, formula, condição, true, false]. Por Exemplo
["SqlTernario","Select MAX(codigo) FROM Usuario", 0, 1, "Select MAX(codigo)+1 FROM Usuario"]
No exemplo se o codigo for igual a Zero retorna 1 caso contrario retorna o ultimo codigo + 1
04. DEMAIS INFORMAÇÕES
Não se aplica.
05. ASSUNTOS RELACIONADOS
Arquitetura e Tecnologia - TOTVS Agro API Hub