01. DADOS GERAIS
| Produto: | TOTVS Jurídico Departamentos
|
|---|---|
| Linha de Produto: | Linha Protheus |
| Segmento: | Jurídico |
| Módulo: |
Departamentos - Departamentos (SIGAJURI)
|
| Função: | WSJurConsultas.PRW jurconsultas.service.ts custom-fields.component.ts |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : | DJURDEP-14483 |
02. SITUAÇÃO/REQUISITO
Foi identificado que, em algumas Consultas Padrão, utilizadas via TJD, os usuários precisam preencher campos auxiliares adicionais em tela (como Banco, Agência e Conta) a partir de dados retornados pela consulta. Porém esses dados são apenas concatenados no label do campo, deixando a visualização poluída e pouco usável.
Atualmente, o cliente configura múltiplos campos de origem (ex.: A2_BANCO, A2_AGENCIA, A2_CONTA) no 3º parâmetro da JURSXB, e o sistema monta um único label com todas as informações, o que dificulta a leitura e não permite preencher automaticamente os campos de destino do cadastro (ex.: NT3__BANCO, NT3__AGENC, NT3__CONTA).
Diante disso, surgiu a necessidade de padronizar uma forma de a Consulta Padrão informar ao TJD quais campos adicionais devem ser retornados, e em quais campos do formulário esses valores deverão ser aplicados, por meio de uma estrutura de De/Para que permita ao endpoint retornar esses dados extras para os Campos Customizados.
03. SOLUÇÃO
Para tanto, implementamos uma nova regra na Consulta Padrão para permitir o retorno de campos adicionais vinculados à consulta, de forma parametrizada, contemplando o cenário em que o TJD consome essas informações para preenchimento automático de campos auxiliares em tela.
Criamos uma nova estrutura de dicionário/tabela (O1K) para registrar o De/Para dos campos, onde passamos a identificar para cada registro: (i) qual é a Consulta Padrão utilizada; (ii) qual é a tela/rotina de destino; e (iii) quais são os campos de origem e de destino que devem participar do mapeamento, garantindo que, quando houver configuração, esses campos sejam incluídos automaticamente no SELECT e retornados no payload da API.
Adaptamos o endpoint responsável pela consulta para que, ao montar o response, retorne os valores mapeados na nova estrutura dentro de um objeto de “extras”, por exemplo: “extras”: { “NT3__AGENC”: “033”, “NT3__CONTA”: “555”, ... }), permitindo que o componente de Campos Customizados aplique o patchValue nesses campos de destino e elimine a dependência da concatenação excessiva de informações no label da consulta.
Estrutura de dicionário e tabela O1K - De\Para de Campos Customizados:
| X3_ARQUIVO | X3_ORDEM | X3_CAMPO | X3_TIPO | X3_TAMANHO | X3_DECIMAL | X3_TITULO | X3_DESCRIC | X3_PICTURE | X3_VALID | X3_USADO | X3_RELACAO | X3_F3 | X3_NIVEL | X3_RESERV | X3_CHECK | X3_TRIGGER | X3_PROPRI | X3_BROWSE | X3_VISUAL | X3_CONTEXT | X3_OBRIGAT | X3_VLDUSER | X3_CBOX | X3_PICTVAR | X3_WHEN | X3_INIBRW | X3_GRPSXG | X3_FOLDER | X3_PYME | X3_ORTOGRA | X3_IDXFLD | X3_TELA | X3_PICBRV | X3_AGRUP | X3_POSLGT | X3_MODAL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| O1K | 01 | O1K_FILIAL | C | 8 | 0 | Filial | Filial do Sistema | @! | x | 1 | xxxxxx x | U | S | A | R | 033 | S | |||||||||||||||||||
| O1K | 02 | O1K_COD | C | 10 | 0 | Código | Código | x | GetSXENum("O1K","O1K_COD") | 0 | xxxxxx x | U | S | V | R | S | N | N | 1 | |||||||||||||||||
| O1K | 03 | O1K_ENTIDA | C | 10 | 0 | Entidade | Entidade de Destino | x | 0 | xxxxxx x | U | N | A | R | S | N | N | 1 | ||||||||||||||||||
| O1K | 04 | O1K_CONPAD | C | 6 | 0 | Consulta Padrão | Consulta Padrão | x | 0 | xxxxxx x | U | S | A | R | S | N | N | 1 | ||||||||||||||||||
| O1K | 05 | O1K_ORIGEM | C | 10 | 0 | Campo de Origem | Campo de Origem | x | 0 | xxxxxx x | U | S | V | R | S | N | N | 1 | ||||||||||||||||||
| O1K | 06 | O1K_DESTIN | C | 10 | 0 | Campo de Destino | Campo de Destino | x | 0 | xxxxxx x | U | S | V | R | S | N | N |
| INDICE | ORDEM | CHAVE | DESCRICAO | PROPRI | SHOWPESQ | IX_VIRTUAL | IX_VIRCUST |
|---|---|---|---|---|---|---|---|
| O1K | 1 | O1K_FILIAL+O1K_COD | Código | U | N | 2 | 3 |
| O1K | 2 | O1K_FILIAL+O1K_CONPAD+O1K_ENTIDA | Consulta Padrão + Entidade | U | N | 2 | 3 |
Exemplo de implementação:
04. DEMAIS INFORMAÇÕES
- JURSXB() no Totvs Departamento Jurídico - Configurações para consulta específica
- JURSXB() - Configurações para consulta específica
- JUR0093_Campos adicionais no TOTVS Jurídico Departamentos
05. ASSUNTOS RELACIONADOS
- TOTVS Jurídico Departamentos - Despesas
- TOTVS Jurídico Departamentos - Resumo do processo#10.Painel-Despesas