Tempo aproximado para leitura: 00:01:30 min
Ocorrência
No módulo MNF_MAN, ao realizar o envio e a oficialização de apontamentos de manutenção (via aplicativo Minha Manutenção de Frotas) para as tabelas oficiais, os serviços a serem executados na Ordem de Serviço multiplicam-se indevidamente, gerando inúmeras sequências de atividades incorretas.
Ambiente
TOTVS Agro - TOTVS Agro - Bioenergia - Manut Frotas - Manutenção - MNF_MAN - Versão 12.1.2512
Causa
Este incidente ocorre devido à existência de quebras de linha ("Enter" ou espaços ocultos) ao final do texto no campo Descrição da Tarefa (campo DE_TAREFA) dos cadastros de Planos de Manutenção e Ordens de Serviço. Esta condição, geralmente ocasionada ao copiar e colar dados diretamente de editores como Word ou Excel, interfere no processamento e validação das informações pelas rotinas do Sistema, ocasionando a multiplicação das sequências.
Solução
Para solucionar essa ocorrência, realize os seguintes passos:
1. Identificação e correção detalhada na Ordem de Serviço oficial — Serviços a Serem Executados
-- Identificação dos registros com quebra de linha no final da descrição
SELECT TRIM(TESTE),
TRIM(DE_TAREFA) TAREFA,
LENGTH(TESTE) QTDE,
ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA) - 1,
LENGTH(DE_TAREFA) - 1)) CARACTER_ESPECIAL
FROM (
SELECT REPLACE(D.DE_TAREFA, CHR(10), '') TESTE,
D.*,
ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) ASCC
FROM MNF_OS_SERV_PREV D
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10)
);
-- Correção
UPDATE MNF_OS_SERV_PREV D
SET D.DE_TAREFA = SUBSTR(DE_TAREFA, 0, LENGTH(DE_TAREFA) - 1)
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);2. Identificação e correção na Ordem de Serviço temporária — Plano de Manutenção
-- Identificação
SELECT *
FROM RAPT_OS_PLMANUT
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);
-- Correção
UPDATE RAPT_OS_PLMANUT D
SET D.DE_TAREFA = SUBSTR(DE_TAREFA, 0, LENGTH(DE_TAREFA) - 1)
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);3. Identificação e correção na Ordem de Serviço oficial — Plano de Manutenção
-- Identificação
SELECT *
FROM APT_OS_PLMANUT
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);
-- Correção
UPDATE APT_OS_PLMANUT D
SET D.DE_TAREFA = SUBSTR(DE_TAREFA, 0, LENGTH(DE_TAREFA) - 1)
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);4. Identificação e correção na Pré-Ordem de Serviço — Oficial
-- Identificação
SELECT *
FROM MNF_SOL_SERV_DE
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);
-- Correção
UPDATE MNF_SOL_SERV_DE D
SET D.DE_TAREFA = SUBSTR(DE_TAREFA, 0, LENGTH(DE_TAREFA) - 1)
WHERE ASCII(SUBSTR(DE_TAREFA, LENGTH(DE_TAREFA),
LENGTH(DE_TAREFA))) IN (13, 10);Importante
Para evitar reincidência, recomenda-se rever os processos de criação e importação de planos de manutenção. Ao definir as descrições, evite copiar e colar os textos diretamente de documentos externos (como Word ou Excel) para dentro do Sistema, garantindo assim que não sejam inseridas quebras de linha indesejadas nos cadastros.
0 Comentários