Problema
Ao acessar a rotina de Orçamento por fases(OFIXA011) está apresentando o seguinte error.log argument error in function Len() on CRIAVAR(MATXATU.PRX), como pode ser visto abaixo.
Ambiente
Microsiga Protheus - SIGAPEC - Aplicável a partir do release 12
Solução
O erro (Argument Error in Function Len() ocorre pois esta recebendo um valor em um determinado campo que não é o seu tipo.
Para corrigir siga os passos abaixo:
1. Gere o error.log novamente ou caso tenha salvo o arquivo, abra ele em um editor de textos, pode ser no NotePad ++ para ficar de fácil visualização das informações de log.
Caso não possua é só clicar no link e baixar a versão mais atualizada para seu sistema operacional.
2. Com o arquivo de error.log aberto, vamos efetuar a seguinte busca no arquivo.
- Acione a tecla CTRL + F, vai abrir a tela de pesquisa e digite: STACK CRIAV, clique em "Localizar".
3. Veja que após a busca será posicionado na PILHA de chamadas STACK CRIAVAR referente a função da rotina que apresentou o erro.
4. Posteriormente, ao prosseguir com a análise da pilha de chamadas dessa função, veja que temos o campo VS1_FORPAG.
Note que esse campo VS1_FORPAG é do tipo caracter, isso pode ser visto através da variável CTIPO: C, e seu inicializador padrão LINICIALIZADOR (L): .T. esta recebendo um valor lógico ao invés do tipo carácter.
5. Para corrigir, é necessário acessar o módulo Configurador (SIGACFG).
- Acessar como admin.
- Acessar as opções: "Base de dados" -> "Dicionário" -> "Base de dados"
- Localize a tabela VS1, clique em "Editar".
- Busque pelo campo: VS1_FORPAG, clique em "Editar".
- Acesse a "Pasta" -> "Opções", procure o campo "Inicializador padrão".
- Remova o conteúdo do campo ou informe a correção diretamente no campo para tratar a validação, no caso desse exemplo, se adicionar as " " aspas duplas corrige o problema.
Salve as informações alteradas via configurador, acesse o ambiente novamente e execute o processo que estava apresentando o problema, veja que o erro será corrigido.
0 Comentários