Páginas filhas
  • DFWKLOGIX-580 DT [LGPD] função SGDPCommandUtil_checkSQLQuerySyntax() acusando erro de SUBSTRING

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Produto:

Solucoes_totvs
Solucao TOTVS Framework

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Logix

Segmento:

Segmentos_totvs
SegmentoTecnologia

Módulo:

Modulos_cross_segmentos

Modulos_framework
ModulosFrameworkFramework (Linha Logix) - LGPD (Lei Geral de Proteção de Dados)

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Função:CADASTRO DADOS PROTEGIDOS
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DFWKLOGIX-580


02. SITUAÇÃO/REQUISITO

Ao executar a função __SGDPCommandUtil_checkAllSQLQuerySyntax.4GL ocorre Para algumas instruções SQL cadastradas para consulta e anonimização de dados protegidos, no momento em que os programas LOG10003 ou LOG10004 consistiam a sintaxe da instrução SQL registrada, a função função interna SGDPCommandUtil_checkSQLQuerySyntax() apresentava o seguinte erro:


Informações

[Info  - 15:25:43] [15:25:43] ERROR: t4GLSubstr - A character variable has referenced subscripts that are out of range in file C:\bamboo\xml-data\build-dir\TP11-R2H-TECXWIN64\logix\logixfuncs.cpp at line 1309

__SGDPCOMMANDUTIL_REPLACEDOCUMENTVALUEINQUERY@SGDPCOMMANDUTIL.4GL - SGDPCOMMANDUTIL.4GL(1898) - Params: L_QUERY:AND NOT EXISTS (SELECT DISTINCT 1 FROM fat_nf_mestre WHERE fat_nf_mestre.cliente = clientes.cod_cliente AND fat_nf_mestre.dat_hor_emissao > {TEMPO:formatDateAsDbDttimeY2S}) AND NOT EXISTS (SELECT fat_nf_mestre.cliente FROM fat_nf_mestre WHERE fat_nf_mestre.cliente = clientes.cod_cliente AND fat_nf_mestre.tip_nota_fiscal IN ('SOLSERV','SOLPRDSV')) AND NOT EXISTS (SELECT DISTINCT 1 FROM pedidos WHERE pedidos.cod_cliente = clientes.cod_cliente AND pedidos.dat_emis_repres > {TEMPO} ) AND NOT EXISTS (SELECT DISTINCT 1 FROM pedidos, ped_itens WHERE pedidos.cod_cliente = clientes.cod_cliente AND pedidos.num_pedido = ped_itens.num_pedido AND (ped_itens.qtd_pecas_solic - ped_itens.qtd_pecas_atend - ped_itens.qtd_pecas_cancel) > 0),L_DOCUMENT_NAME:01/01/2022,L_DOCUMENT_VALUE:01/01/2022,L_OTHER_DOCUMENT:NIL )
[email protected] - SGDPCOMMANDUTIL.4GL(1839) - Params: L_QUERY:SELECT DISTINCT 1 FROM clientes WHERE clientes.num_cgc_cpf = '000.010.120/0000-22',L_TABLE_NAME: clientes,L_DOCUMENT_NAME:1,L_DOCUMENT_VALUE:1,L_QUERY_ANONYMIZATION:AND NOT EXISTS (SELECT DISTINCT 1 FROM fat_nf_mestre WHERE fat_nf_mestre.cliente = clientes.cod_cliente AND fat_nf_mestre.dat_hor_emissao > {TEMPO:formatDateAsDbDttimeY2S}) AND NOT EXISTS (SELECT fat_nf_mestre.cliente FROM fat_nf_mestre WHERE fat_nf_mestre.cliente = clientes.cod_cliente AND fat_nf_mestre.tip_nota_fiscal IN ('SOLSERV','SOLPRDSV')) AND NOT EXISTS (SELECT DISTINCT 1 FROM pedidos WHERE pedidos.cod_cliente = clientes.cod_cliente AND pedidos.dat_emis_repres > {TEMPO} ) AND NOT EXISTS (SELECT DISTINCT 1 FROM pedidos, ped_itens WHERE pedidos.cod_cliente = clientes.cod_cliente AND pedidos.num_pedido = ped_itens.num_pedido AND (ped_itens.qtd_pecas_solic - ped_itens.qtd_pecas_atend - ped_itens.qtd_pecas_cancel) > 0))[email protected] - SGDPCOMMANDUTIL.4GL(2062)


03. SOLUÇÃO

Foram corrigidos os problemas para não afetar produto padrão, como por exemplo, carregar a lista de erros da REQUESTID da base de dados e retornar o bloco JSON de erros da requisição pra usar na resposta para o TPD e, registrar todos erros no arquivo de LOG do processo em execução.

Além disso, foi criada uma função para recuperar o TENANT ID da requisição da base de dados que foi gravada na tabela LOG_PRIVATE_JOB_MAIN.

Ainda, foram implementadas as consistências de tabelas do LGPD que estão com query de consulta registrada e não possuem chave primária no banco de dados na listagem processada no LOG do appserver na função __SGDPCommandUtil_checkAllSQLQuerySyntaxCorreção da função de validação de instrução SQL do cadastro de mapeamento de tabelas e colunas de dados pessoais para que a falha de substring não ocorre mais, pois se tratava de uma situação de falha isolada que não havia sido prevista.

04. DEMAIS INFORMAÇÕES

Não se aplica.


Card documentos
InformacaoDisponível a partir do pacote oficial 12.1.2301 ou Framework Fix 12.1.2205.(fix01)
TituloIMPORTANTE!

05. ASSUNTOS RELACIONADOS

  • Não se aplica.



Templatedocumentos

...