Novos métodos e passo a passo

Foi implementado na integração com o Smart View a possibilidade dos parâmetros nativos terem lookup (consulta) e combo.

Como funcionará para os parâmetros nativos do SX1

Lookup

As consultas de lookup cadastradas no SX1 que se encaixam como simples (DB) e não possuem filtros/funções, irão ser retornadas automaticamente ao aplicarem a lib com a nova implementação.

Mais informações sobre quais consultas serão contempladas, ler a documentação completa da api criada: GenericLookupService

Combo

Os parâmetros do SX1 que possuem combo, receberão seus valores automaticamente ao aplicar a lib com a implementação.

Criamos uma api para retornar os combos da SX1, mais informações na documentação: OptionsService (Smart View)

Para manter o mesmo comportamento do pergunte do Protheus, o retorno da api de combo (propriedade key) será numérico.

Possibilidade de adicionar uma consulta personalizada para os parâmetros

Método setCustomURL()

Seta a URL da consulta personalizada.

Este método deverá ser utilizado no getSchema() do objeto de negócio, após ser criado todos os parâmetros nativos, para o mesmo ter a referência do ID enviado.

Parâmetros:

Nome

Tipo

Obrigatório

Default

Descrição

cIdCaractereX
Id do parâmetro
cCustomUrlCaractereX
URl personalizada (path)
nTypeNuméricoX

Indica o tipo de consulta.

1 - Combo

2 - Lookup

Exemplo de uso para o combo:

self:setCustomURL("MV_PAR01", "/api/framework/treports/integratedprovider/v1/options/MTR120/MV_PAR10", 1)

Exemplo de uso para o lookup:

self:setCustomURL("MV_PAR01", "api/framework/v1/genericLookupService/smartview/SA1", 2)

Sintaxe: self:setCustomURL() → nil

  • As api's criadas pelo desenvolvedor devem seguir os padrões de retorno documentados abaixo
  • As api's de lookup devem ter paginação de acordo com o volume de dados retornados
  • As api's de lookup devem estar preparadas para receber o filtro "q" onde deverá ser feita a pesquisa em todos campos inseridos na consulta
  • As api's de lookup devem estar preparadas para tratar o page e o pageSize

Novas funcionalidades

A partir da LIB Label 20240115 será possível utilizar a api GenericQuery para criar lookups customizados a partir de uma query, verificar a documentação completa.

Exemplo de uso:

self:setCustomURL("MV_PAR01", "api/framework/v1/genericQuery?FromQry=SEDT10 SED JOIN SE1T10 SE1 ON SE1.E1_NATUREZ = SED.ED_CODIGO&tables=SED,SE1&fields=ed_codigo,ed_descric,e1_prefixo,e1_num,e1_parcela,e1_tipo&where=SED.D_E_L_E_T_=' ' AND SE1.D_E_L_E_T_ = ' ' AND SE1.E1_FILIAL = 'D MG 01' AND SED.ED_FILIAL = 'D MG 01 ' AND SED.ED_CODIGO <> ''&e1_parcela=''&e1_prefixo=''&Format=smartview&KeyProperty=ed_codigo", 2)


Exemplo de retorno esperado pelo Smart View para valores do Combo

{
    "data": [
        {
            "key": 1,
            "label": "Todos"
        },
        {
            "key": 2,
            "label": "Em aberto"
        },
        {
            "key": 3,
            "label": "Atendidos"
        }
    ]
}


  • key = Valor que será retornado (chave)
  • label = Label de exibição

Valores exibidos no Smart View


Exemplo de retorno esperado pelo Smart View para valores do Lookup

{
    "data": [
        {
            "b1_cod": "COM00000000000000000000000011",
            "b1_desc": "PRODUTO PADRAO  ALT _"
        },
        {
            "b1_cod": "COM000000000006",
            "b1_desc": "REQUEIJAO CREMOSO LIGHT 175 G"
        },
        {
            "b1_cod": "COM0000MAT103CT030",
            "b1_desc": "PROD COM0000MAT103CT030"
        }
    ],
    "keyProperty": "b1_cod",
    "descriptor": {
        "b1_cod": "Codigo",
        "b1_desc": "Descricao"
    },
    "nextPageUrl": "http://127.0.0.1:8050/rest/api/framework/v1/genericLookupService/smartview/SB1?page=2&pageSize=10"
}
  • keyProperty = Valor que será retornado (chave)
  • descriptor = Descrição das colunas de cada campo presente na consulta
  • nextPageUrl = Rota para próxima página de dados

Valores exibidos no Smart View

Uso do Lookup no Smart View

A regra para os Lookups no Smart View é o usuário primeiramente realizar uma pesquisa, de no mínimo 3 caracteres para aparecer os resultados da consulta.

  • Sem rótulos