| Produto: |
| ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Linha de Produto: |
| ||||||||
| Segmento: |
| ||||||||
| Tipo de Documento: | Manutenção | ||||||||
| Módulo: | Acordos e Verbas | ||||||||
| Caminho: | Administração > Verba Bonificação | ||||||||
| Função: | VERBAS DE BONIFICAÇÃO - MAX0302 | ||||||||
| País: | Brasil | ||||||||
| Ticket: | 25423792 | ||||||||
| Requisito/Story/Issue (informe o requisito relacionado) : |
|
- Contexto: problema, inovação, manutenção ou necessidade legislativa. Seja claro e objetivo.
- Causa raiz: explique a origem do problema ou razão para alteração proposta Ao informar uma descrição de família ou produto que contenha caracteres especiais, principalmente o apóstrofo ('), o sistema passa a montar um SQL dinâmico inválido durante a construção da cláusula LIKE. Essa falha ocorre porque o valor digitado pelo usuário é concatenado diretamente no comando SQL, sem qualquer sanitização ou escape do caractere especial. Como consequência, o apóstrofo encerra prematuramente a string literal do SQL, resultando em erro de sintaxe no momento da execução.
| Nota |
|---|
Alterações ou parametrizações incorretas podem comprometer o desempenho e causar falhas no sistema. Sempre que necessário, consulte um especialista ou a equipe responsável para garantir a configuração correta. |
...
| tabs | Passo 01, Passo 02, Passo 03, Passo 04 |
|---|---|
| ids | passo1,passo2 |
Existência de descrições de produtos ou famílias contendo caracteres especiais — especialmente o apóstrofo (') — utilizadas como filtro na aplicação de verbas de bonificação, quando realizada por meio do acesso por lote.
A solução implementada impede que descrições de produtos ou famílias contendo apóstrofos, ou outros caracteres especiais interrompam a montagem do SQL dinâmico utilizado na cláusula LIKE. O erro ocorria porque o valor digitado pelo usuário era inserido diretamente na instrução SQL, fazendo com que o apóstrofo encerrasse a string literal e quebrasse o comando.
Para corrigir o problema, o texto informado passou a ser tratado previamente no banco de dados antes de compor o WHERE. Foi adicionada uma execução via SqlPrepareAndExecute, utilizando a função fc5LimpaTexto, responsável por normalizar a descrição, convertê-la para maiúsculas e remover caracteres que possam comprometer a integridade da consulta.
O resultado desse processamento é armazenado em uma variável intermediária, que então é utilizada na montagem do SQL dinâmico, garantindo a construção correta da cláusula LIKE e evitando falhas na execução da consulta.
Se estiver na versão 25.01, atualizar o sistema para o service pack 25.01.048 ou service pack superior.
Se estiver na versão 25.07, atualizar o sistema para o service pack 25.07.023 ou service pack superior
...
| default | yes |
|---|---|
| referencia | passo1 |
...
| default | no |
|---|---|
| referencia | passo2 |