Precisa de mais informações?

Estamos aqui para ajudá-lo. Entre em contato por telefone, email ou redes sociais.

  • Black Facebook Icon
  • Black Twitter Icon
  • Black LinkedIn Icon
end_rodape_edited_edited_edited.jpg

© 2017 por EPV Consulting

Buscar
  • Eloy Vanço

Invalid Macro Source

Ocorrência

O sistema está gerando erro invalid macro source (SSYacc0105e: Error token failed, no valid token).

Ambiente

Microsiga Protheus - todas as versões

Causa

A causa deste tipo de erro geralmente está relacionada a validação de usuário nos campos de estrutura sx3, exemplo  x3_relação, x3_pictvar, x3_when ou x3_inibrw de algum campo de tabela.

Também pode estar relacionada ao cadastro de fórmulas (, geralmente quando a query está incompleta.

Solução Avalie: 1. Se os campos x3_relação, x3_pictvar, x3_when ou x3_inibrw, da tabela informada no erro, se há alguma informação que não esteja entre aspas duplas, ou está com aspas duplas e simples ao mesmo tempo; para corrigir, acerte a informação colocando entre aspas duplas;

2. Se alguma informação do tipo numérica sendo passada sem uso de aspas, visto que o campos x3_relação, x3_pictvar, x3_when ou x3_inibrw são do tipo carácter;para corrigir, acerte a informação colocando entre aspas duplas;

3. Se está sendo passado uma instrução ADVPL e não está fechando adequadamente parênteses, chaves e coxetes, para corrigir, acerte a expressão Advpl colocando os devidos  parênteses, chaves e coxetes que estão faltando.

OBS 1: Para descobrir o campo que apresenta o erro, basta procurar no errorlog, a tabela de estrutura SX3, que demonstrará o campo que foi lido e está com erro, exemplo:

d:\outsourcing\clientes\lvz2xd\protheus_data\system\sx3010.dtc; Rdd:DBFCDX; Alias:SX3; Filter :; Recno:124520; Total Recs:124529; Order:2

Index (1) :**SX30101 X3_ARQUIVO+X3_ORDEM

Field 1: D_E_L_E_T_E_D(C) :

Field 2: R_E_C_N_O(N) :124520

Field 3: X3_ARQUIVO(C) :SA1

Field 4: X3_ORDEM(C) :P6

Field 5: X3_CAMPO(C) :A1_NR_END

Field 6: X3_TIPO(C) :C

Field 18: X3_RELACAO(C) : Field 33: X3_PICTVAR(C) :@! 

Field 34: X3_WHEN(C) :

Field 35: X3_INIBRW(C) :

OBS 2: No caso do cadastro de fórmulas, procure no erro por querys incompletas que poderão também ser indicadas após a informação do erro no valid token:

invalid macro source (SSYacc0105e: Error token failed, no valid token) :IF(U_NEO34A04(SF2->F2_FILIAL,SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,SF2->F2_TIPO) .AND.SUBSTR(SF2->F2_EMISSAO,1,6)==SUBSTR(DTOS(DATE()),1,6).AND.!SF2->F2_TIPO $ "D/B",SF2->F2_VALISS ,0 on DETPROVA(MATXFUNA.PRX) - Veja que nesta instrução falta o parenteses para fechar a query.

invalid macro source (SSYacc0105e: Error token failed, no valid token) :DbSetFilter({||(A1_MSBLQL== "1" dToS(A1_DTCAD) >= "20170201" .AND. )},'(A1_MSBLQL== "1" dToS(A1_DTCAD) >= "20170201" .AND. )') on FWBRWTABLE:EXECUTEFILTER(FWBRWTABLE.PRW) - Veja que nesta instrução que não há término da query após o operador .AND.


Fonte: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360025544331-MP-FAT-Invalid-Macro-Source

157 visualizações0 comentário