- Criado por Danilo Otavio Lima Salve, última alteração por Vanessa Ruama de Sousa Barros em 11 out, 2024
Descrição
API genérica para a listagem de dados de uma Consulta Padrão (SXB) do TOTVS linha Protheus.
Essa API foi criada com base na classe FWAdapterBaseV2, logo ela permite a utilização de filtros (oData) e a paginação de dados.
Utilização da API
É necessário ligar a segurança do socket do rest para a utilização dessa api (chave SECURITY=1)
Disponível a partir da lib 20231121.
Restrições
Tipos de consulta padrão suportadas
São suportadas pelo serviço somente consultas (SXB) do tipo Consulta padrão (DB).
Colunas
O serviço retorna somente os campos do primeiro indice da consulta padrão, ignorando todos os campos que contenham alguma função na definição da consulta.
Os detalhes dos campos retornados serão apresentados na propriedade descriptor contendo o nome do campo e descrição no dicionario de dados (SX3).
Dados protegidos
Caso o usuário que consuma a API não tenha acesso a algum campo, esses campos não são retornados e a propriedade protectedDataFields do JSON de retorno listará tais campos.
Campo | Permitido? |
---|---|
A1_COD | Sim |
SUBSTRING(A1_COD, 1, 3) | Não - Campo não será retornado pelo serviço |
SA1->(A1_COD + A1_LOJA) | Não - Campo não será retornado pelo serviço |
{ "descriptor": { "a1_cod": "Codigo", "a1_loja": "Loja", "a1_nome": "Nome" } }
Filtros
Não serão executados os filtros definidos no cadastro da Consulta Padrão, sendo executados somente os filtros recebidos no padrão oData da requisição.
Exemplo de uso - filtro utilizando o padrão oData
http://localhost:8080/rest/api/framework/v1/genericLookupService/smartview/:alias?pageSize=3&page=1&q=a1_cod eq '000001' and a1_loja eq '01'
Retorno da consulta
O serviço utiliza a propriedade keyProperty para informar qual campo será definido como o retorno da consulta, considerando somente um campo como retorno da Consulta padrão.
{ "keyProperty": "a1_cod" }
Smart view
Descrição
Obtem os dados de uma consulta padrão utilizando o padrão estabelecido para os Smart View, listando os recursos da tabela e os metadados da consulta padrão.
NextUrlPage
Indica a URL da proxima pagina dos recursos, podendo retornar nulo
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Valor padrão |
---|---|---|---|---|
Alias | String | Indica o alias da consulta padrão que terá seus dados listados | X | |
Page | Numeric | Número da pagina a ser retornada | 1 | |
PageSize | Numeric | Quantidade de registros por pagina | 200 | |
q | String | Filtro que faz um contains nos campos da consulta |
Exemplo de uso
http://localhost:8080/rest/api/framework/v1/genericLookupService/smartview/SA1?pageSize=2&page=1&q=000001
Comportamento
Devido ao nome de algumas tabelas do Protheus terem três letras e serem palavras reservadas do SQL, algumas tabelas recebem o sufixo PFW para que a query funcione corretamente:
- ADD
- ALL
- AND
- ANY
- ASC
- AVG
- DEC
- END
- FOR
- INT
- KEY
- NOT
- ROW
- SET
- SUM
Isso afeta apenas o alias (apelido) da tabela na query, exemplo: SELECT * FROM SETT10 SETPFW WHERE SETPFW.D_E_L_E_T_ = ' '
Essa mudança de comportamento está presente na lib 20241125 ou superior.
{ "data": [ { "a1_cod": "000001", "a1_loja": "01", "a1_nome": "CLIENTE PADRAO" }, { "a1_cod": "000001", "a1_loja": "01", "a1_nome": "CLIENTE 01" }, { "a1_cod": "000001", "a1_loja": "6", "a1_nome": "CLIENTE JURIDICO E FILIAL COM 1 DIGITO" } ], "remainingRecords": 1, "keyProperty": "a1_cod", "descriptor": { "a1_cod": "Codigo", "a1_loja": "Loja", "a1_nome": "Nome" }, "nextPageUrl": "http://127.0.0.1:8282/rest/api/framework/v1/genericLookupService/smartview/SA1?pageSize=2&page=2&q=000001" }