Árvore de páginas

Versões comparadas

Chave

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

Tratamento para possíveis erros no Protheus

Produto:

Microsiga Protheus®

Ambiente:Faturamento (SIGAFAT)

Ocorrência:

Possíveis erros no ambiente Protheus, suas causas e como solucionar


Expandir
titleArgument_error_in_function_Len()_on_CRIAVAR

Causa

O retorno do erro ocorre quando inserido no inicializador padrão de um determinado campo, um conteúdo não válido com relação a tipagem do campo. 

A maioria dos casos onde ocorre este erro estão relacionados a campos do tipo caractere que recebe um inicializador padrão numérico.

Solução

Para solucionar o problema, retire a opção do inicializador padrão, uma vez  que no dicionário padrão não há validação ou coloque a informação entre aspas (" ")

Processo:

  • Acessar o ambiente Configurador - SIGACFG;
  • Atualizações - Base de Dados - Dicionário - Base de Dados - Dicionário de Dados;
  • Localize a tabela correspondente, editar;
  • Localize o campo, editar;
  • Folder Opções - Inicializador Padrão;
  • Retire o conteúdo ou insira a tratativa necessária para para sanar o retorno. 
  • Salve o campo, salve a alteração da tabela, atualize o dicionário de dados, reinicie o Smartclient e realize novamente o processo.

(aviso) Importante: A ocorrência "argument_error_in_function_Len()_on_CRIAVAR" pode ocorrer em qualquer processo do Protheus em que o conteúdo do inicializador padrão divergir do conteúdo que o campo foi configurado para receber.


Expandir
titleNão foi possível resolver o conflito de agrupamento entre "Latin1_General_BIN" e "Latin1_General_CI_AS" na operação equal to.

Causa

Error : 468 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Não foi possível resolver o conflito de agrupamento entre "Latin1_General_BIN" e "Latin1_General_CI_AS" na operação equal to. ( From tMSSQLConnection::GetQueryFile )

Este não é um erro relacionado ao Protheus e suas rotinas e sim, um problema que ocorre devido a um conflito de collation* entre dois databases (database onde esta os dados do Protheus x database de sistema "TempDB").

*Collation - É o mapa de caracteres utilizados em seu database. 

O database criado para armazenar as tabelas do Microsiga Protheus possui o mapa de caracteres "Latin_General_BIN" e o database de sistema "TempDB" possui o collation "Latin_General_CI_AS".

Solução

  • Opção 1) Alterar o Tipo do Agrupamento configurado no Banco de Dados.

Realizar a conversão do banco de dados de sistema "TEMPDB - Ex. SQL Server" para a collation "Latin_General_BIN (Padrão Protheus)

  • Opção 2) Atualize o ambiente com o último DBAccess , Build e LIB disponibilizados no Portal do Cliente (Havendo dificuldade, contate nosso Suporte Framework).

As novas atualizações de tecnologia do Protheus já contemplam tratamento para converter os caracteres e evitar as diferenças entre as Collations.

Expandir
titleIncorrect syntax near "X"

Causa

O erro ocorre ,por que, ao tentar executar uma query do lançamento padrão para a contabilização, o Banco de Dados está recebendo conteúdo de gravação com caractere especial (' " # @ $ % ¨! & *).

A informação a ser gravada contendo caracteres especiais na sua composição, interfere na codificação e na gravação de banco de dados, no caso de uso de apostrofo (') por exemplo,  o banco entenderá que a query finalizou seu bloco de instruções, sendo que o que vier após isso, fica caracterizado como erro de sintaxe.

Solução

1) Identifique o campo que está trazendo o caractere especial.

2) Retire o caractere especial da informação, assim não terá problemas para a gravação no Banco de Dados.

3) Em último caso, utilizar um execblock no lançamento padrão, para poder tratar caracteres especiais. Em caso de dúvidas sobre esse processo, contate nossa equipe de Atendimento Advpl para melhor orientação.

Expandir
titleErro No Inicializador Padrão do Campo A1_VM_MARC

Causa

O erro ocorre ao excluir um cliente (MATA030),onde, o sistema apresenta três mensagens de erro informando que:

  1. INITTER - Erro no conteúdo do Inicializador Padrão: Campo. (Marcação)
  2. INITTER - Erro no conteúdo do Inicializador Padrão: Campo: A1_VM_MARC
  3. MA030TEMPV - Cliente não poderá ser excluído. Flial "x".

A mensagem relacionada a inconsistência no inicializador padrão do campo A1_VM_MARC ocorre ,por que, o campo A1_COD_MARC, possui a chamada do A1_VM_MARC.

Solução

1) Identifique o campo que está trazendo o caractere especial.

2) Retire o caractere especial da informação, assim não terá problemas para a gravação no Banco de Dados.

3) Em último caso, utilizar um execblock no lançamento padrão, para poder tratar caracteres especiais. Em caso de dúvidas sobre esse processo, contate nossa equipe de Atendimento Advpl para melhor orientação.

Ex: A1_COD_MARC = Ordem 20 / A1_VM_MARC = ordem 21

Expandir
titleType mismatch on compare on MAPVL2SF2(MATA461.PRX) 06/06/2017 13:55:06 line : 5218 com uso do mv_horarmt

Causa

O erro refere-se a um tipo incompatível que está sendo utilizado para comparação na função MAPVL2SF2.

A função em questão, tem uma variável do tipo caractere que recebe a informação passada pelo parâmetro MV_HORARMT, que também é do tipo caractere. Todavia, essa variável está recebendo uma informação do tipo numérica , conforme o trecho do erro:
 

STACK MAPVL2SF2(MATA461.PRX) 06/06/2017 13:55:06
Local 30: CHORARMT(N) :2

 Veja que a variável CHORARMT, é definida como caractere, devido a letra C no início de seu nome, mas a informação que chega para ela vem entre parênteses como numérico (N), gerando incompatibilidade para a comparação de informações que variável precisa receber e o que está recebendo.

Solução

Para solucionar a questão, coloque a informação do parâmetro MV_HORARMT entre aspas duplas ("), indicando que a informação em questão é do tipo caractere: MV_HORARMT="2"

 Ticket referência : #1065455



Aviso
titleImportante


Dica
titleImportante


Pode lhe interessar: