ERP - GerarOP - Função GerarOP não valida os parâmetros
Incidente
No módulo de Recursos, ao utilizar a função GerarOP os parâmetros não estão sendo considerados validados.
Exemplo:
Definir Alfa Str;
Definir Alfa Retorno;
Definir Alfa DatStr;
Definir Numero DataNum;
IntParaAlfa(DatSis, DatStr); @ data atual @
Str = "CodPro=2101,CodDer=0,100,QtdPro=12.5,DatIni="+DatStr;
GerarOP(Str,Retorno);
Retorna = Mensagem(Retorna, Retorno)
O valor do campo CodDer está sendo considerado como 0 ao invés de 0,100.
Causa
Este incidente ocorre, pois o Código de Derivação foi cadastrado com carácter especial.
O cadastro em tela com caracteres especiais, não é uma recomendação da Senior, inclusive ao realizar o cadastro é retornado uma mensagem:
Caso os cadastros foram realizados e não tenham retornado nenhuma mensagem, certamente o Identificador de Regras GER-000ICECO01 (Clique aqui e acesse a documentação referente ao identificador de regras) deva estar ativo. Esse identificador tem como objetivo ignorar caracteres especiais em Telas de Cadastro, suprimindo a mensagem ao usuário, ou então o cadastro foi realizado via Layout de Importação sem a Consistência Padrão.
Solução
Para os casos onde as derivações estão cadastradas com caracteres especiais, não é possível utilizar a função GerarOP pois a mesma realiza a validação dos parâmetros separados por ponto e vírgula.
Sugere-se rever o cadastro atual realizado na base de dados e reavaliar o processo que está sendo realizado.
Segue abaixo um exemplo de regra utilizando a função GerarOP com o fluxo correto:
Definir Alfa Str;
Definir Alfa Retorno;
Definir Alfa DatStr;
Definir Numero DataNum;
IntParaAlfa(DatSis, DatStr); @ data atual @
Str = "CodPro=2101,CodDer=100,QtdPro=12.5,DatIni="+DatStr;
GerarOP(Str,Retorno);
Retorna = Mensagem(Retorna, Retorno)
Atenção! Antes de realizar qualquer alteração, analise o impacto que poderá ter em outros lançamentos/processos do sistema.