Você está na página 1de 46

Treinamento: Infra-Estrutura Protheus

Treinamento: Infra-Estrutura Protheus


Mdulo 03: Anlise de Eventos de Erro
Mdulo 03: Anlise de Eventos de Erro
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 2
Tpicos Abordados
1. O!etivos___________________________________________________________________3
". Ar#uivos de Eventos de Erro_____________________________________________________3
3. Estrutura dos Eventos de Erro___________________________________________________4
3.1. Exemplo da Estrutura do Erro_______________________________________________5
$. Ti%os de Eventos de Erro_______________________________________________________7
4.1. Defini!o das "on#en$es de Texto %tili&adas___________________________________7
4.'. Defini!o dos tipos de erros_________________________________________________(
4.3. Tipos de erros espec)ficos_________________________________________________1*
&. Pro'essos de Anlise_________________________________________________________1'
5.1. An+lise ,imples_________________________________________________________1'
5.'. An+lise com "onsulta_____________________________________________________1'
5.3. An+lise "omplexa________________________________________________________13
5.4. An+lise de Erros Espec)ficos________________________________________________13
5.4.1. Anlise de Erros na execuo de Queries____________________________________________13
5.4.2. Anlise de Erros na execuo de Lanamentos Padres________________________________14
(. Estudo de )asos_____________________________________________________________1-
-.1. An+lise ,imples_________________________________________________________1-
6.1.1. Invalid Field Name_____________________________________________________________16
6.1.2. Incorrect Sintaxe Near (query)___________________________________________________18
-.'. An+lise com "onsulta_____________________________________________________'*
6.2.1. Argument error_______________________________________________________________20
6.2.2. Index not found_______________________________________________________________22
6.2.3. Invalid Data Type______________________________________________________________24
6.2.4. Type mismatch on <operation>___________________________________________________25
6.2.5. Variable does not exist__________________________________________________________26
6.2.6. Variable is not <tipo>__________________________________________________________28
-.3. Dicas para An+lise de Erros "omplexos_______________________________________'.
6.3.1. Array out of bounds____________________________________________________________29
6.3.2. File is in EOF_________________________________________________________________30
6.3.3. There is no current Index________________________________________________________31
*. )asos de Anlise_____________________________________________________________3'
7.1. "aso de An+lise ,imples___________________________________________________3'
7.'. "aso de An+lise com "onsulta______________________________________________34
7.3. "aso de An+lise "omplexa_________________________________________________37
7.4. "aso de An+lise Espec)fica/ 0anamentos 1adr$es_______________________________41
+. Informa,-es )om%lementares__________________________________________________43
(.1. 2ari+#eis 1ublicas do ,istema______________________________________________43
(.'. Estrutura do Ambiente 1rot3eus____________________________________________44
8.2.1. Componentes e Dependncias____________________________________________________44
8.2.2. Formas de Atualizao dos Componentes___________________________________________45
.. /efer0n'ias_________________________________________________________________4-
..1. Material %tili&ado________________________________________________________4-
..'. "olaboradores__________________________________________________________4-
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 3
1. 4b5eti#os
Os objetivos deste documento so:
Definir a estrutura dos arquivos error.log gerados pela aplicao Protheus;
Definir, conceituar e diferenciar os tipos de erros descritos nestes arquivos;
Definir um processo de anlise simples para o entendimento dos erros;
Exemplificar com casos reais os processos de anlise.
Este documento no tem a preteno de ser uma referncia incontestvel para a anlise
de eventos de erro, dada as inmeras possibilidades de combinaes que podem tornar
um dos processos de anlise aqui descritos ineficaz.
'. Ar6ui#os de E#entos de Erro
Os arquivos error.log so gerados quando ocorrem no conformidades no sistema para as
quais no existem tratamentos para situaes no previstas nas rotinas.
Por esta razo, estes arquivos contm a exata situao do sistema no momento do erro,
possibilitando ao analista de sistemas ou de desenvolvimento detectar e solucionar a
causa do mesmo, seja esta causa em um ambiente especifico, como por exemplo, a base
de dados de um cliente ou na prpria aplicao.
Deve-se entender como "situao do sistema" os seguintes componentes:
O conjunto de variveis ativas e seus respectivos escopos (Locais, Private e
Public) e contedos;
As funes e rotinas principais, executadas at o momento do erro;
Os parmetros recebidos por cada funo e suas respectivas variveis (Privates e
Locais);
As tabelas e ALIAS ativos, especificando o ndice, campos e contedo dos campos,
e qual o ALIAS selecionado no momento.
Para complementar estas informaes, na "pilha" de chamada de funes so
especificadas cada uma das linhas de chamadas das funes e as datas dos respectivos
fontes envolvidos.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 4
3. Estrutura dos E#entos de Erro
17 "abeal3o 7 Descri!o do erro/
Contm a mensagem de erro, detalhando seu tipo e a linha no fonte que o ocasionou.
'7 1il3a de 8un$es
Contm todas as funes principais executadas a partir da entrada do mdulo at a
gerao do erro.
37 2ari+#eis 1ublic
Lista todas as variveis de escopo Public, seus tipos e respectivos contedos.
47 Detal3amento das fun$es
Contm, respeitando a ordem apresentada anteriormente na Pilha de Funes, o
detalhamento da chamada de cada funo, contendo:
Parmetros recebidos pela funo;
Tipo e Contedo das Variveis Private;
Tipo e Contedo das Variveis Locais;
57 Tabelas
Contm a listagem de todas as tabelas ativas no mdulo no momento do erro, apontando
com 99 o ALIAS ativo, com o seguinte detalhamento:
ALIAS da Tabela;
Nome fsico do arquivo;
Filtro aplicado a tabela;
Total de Registros da tabela;
RECNO do registro atualmente posicionado;
Listagem dos ndices existentes para a tabela, apontado com ** o ndice ativo;
Listagem dos campos em uso na tabela, seus tipos e respectivos contedos.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 5
3.1. Exemplo da Estrutura do Erro
1
AP6 Build 7.00.031210A
ERRO THREAD (Administrator, COD!"A#0$% 1$&01&200$ 17'1('1(
t)*+ mismat,- on ,om*ar+ on .A/ORCTB(CTB#0!.PR#% 27&11&2003 lin+ '
$$1(
'
12uild'7.00.031210A3
1t-r+ad 4443
Call+d 5rom CTR1406"P(CTBR140.PR7% 24&10&2003 lin+ ' 74(
Call+d 5rom 89/ED9
CTR1406"P(:/ED,7RE/,C;TR6<,A;ETO0BOO=,ACTB"OEDA,C;A>CC,D6.6DE%?
(CTBR140.PR7% lin+ ' 203
Call+d 5rom lin+ ' 1@1(
Call+d 5rom 8 99 E.A/( BACT6O, :/;TOP %,/;TOP 'A .T., OD/<'ED(% ?
(AP/6B040.PR7% lin+ ' 1@1(
Call+d 5rom lin+ ' 0
Call+d 5rom RPT;TAT!;(AP/6B040.PR7% 0$&12&2003 lin+ ' 1@20
Call+d 5rom CTBR140(CTBR140.PR7% 24&10&2003 lin+ ' 203
Call+d 5rom BBE#EC!TE(AP/6B0(0.PR7% 0$&12&2003 lin+ ' (71
Call+d 5rom 899 BBE#EC!TE(CCTBR140(%C,C##########C,CBA/AC. CC # CTA
C,CC%? lin+ ' 27@2
Call+d 5rom lin+ ' 0
Call+d 5rom ;6<AAD.(;6<AAD..PR7% 23&0$&2002 lin+ ' 223
3
.ariDE+is +m uso
Pu2li,as
Pu2li,a 1' O"A67D(O% 'O
Pu2li,a 2' //E0T(/% '.0.
Pu2li,a 3' C!;ERA"E(C% '0003$$ "ARCE/
Pu2li,a $' /F!ER>(/% '.0.
Pu2li,a @' BB".CO"BOBO#(/% '.T.

4
;6<AAD.(;6<AAD..PR7% 23&0$&2002 Param 1' CE"PTR>(!% ' 6/
Param 2' C!;ER(!% ' 6/
Param 3' /0!//(!% ' 6/
PriEat+ 1' O;HORT/6;T(!% '6/
PriEat+ 2' CA"PO;(% '200
/o,al 1' CE"PTR>(!% '6/
/o,al 2' C!;ER(!% '6/
/o,al 3' /0!//(!% '6/
/o,al $' O6CO(!% '6/
CTBR140(CTBR140.PR7% 24&10&2003 PriEat+ 1' ARET!R(A% '
PriEat+ 2' A/6HA(A% '
PriEat+ 3' CPER<(C% 'CTR140
PriEat+ $' /A;T=E>(% '0
PriEat+ @' O"EPRO<(C% 'CTBR140
/o,al 1' A;ETO0BOO=(A% '
/o,al 2' ACTB"OEDA(A% '
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 6
5
0il+s
*'Ga*BdataGadEsGo5i,ialGsiHamat.+m* I Alias';"0J 0ilt+r ' J R+,no'3J
Total R+,s'@J Ord+r'1
ndice (0) :**SIGAMAT M0_CODIGO+M0_CODFIL
Cam*o 1' "0BCOD6<O(C% '01
Cam*o 2' "0BCOD06/(C% '02
Cam*o 3' "0B06/6A/(C% 'COD!"A# 6 6
Cam*o $' "0BO"E(C% 'C6A0!D6
Cam*o @' "0BO"ECO"(C% 'E/ETRO "ETA/!R<6CA C6A0!D6 /TDA
Cam*o 6' "0BEDCOB(C% 'RD 76/F!E" "AOE/ E.E; =" 3 @
*'Ga*BdataGadEsGo5i,ialGsK3010.d25 I Alias';#3J 0ilt+r ' J
R+,no'4132J Total R+,s'23363J Ord+r'2
Lndi,+ (0% ';#30101 #3BARF!6.OM#3BORDE"
ndice (1) :**SX30102 X3_CAMPO
6ndi,+ (2% ';#30103 #3B<RP;#<M#3BARF!6.OM#3BORDE"
6ndi,+ (3% ';#3010$ #3BARF!6.OM#3B0O/DERM#3BORDE"
Cam*o 1' #3BARF!6.O(C% ';A1
Cam*o 2' #3BORDE"(C% '26
Cam*o 3' #3BCA"PO(C% 'A1BC<C
Cam*o $' #3BT6PO(C% 'C
Cam*o @' #3BTA"AHO(% '1$
Cam*o 6' #3BDEC6"A/(% '0
Cam*o 7' #3BT6T!/O(C% 'C<C&CP0
Cam*o 4' #3BT6T;PA(C% 'CPN&CP0
Cam*o (' #3BT6TE<(C% 'CPN&CP0
Cam*o 10' #3BDE;CR6C(C% 'C<C&CP0 do ,li+nt+
Cam*o 13' #3BP6CT!RE(C% ':R ((.(((.(((&((((I((

**CT1010 - Ai!":CT1# Fi$e% : # &ecn':1()*# T'$! &ec":1**1#
O%de%:1
Indice (0) :**CT10101 CT1_FILIAL+CT1_CO+TA
6ndi,+ (1% 'CT10102 CT1B06/6A/MCT1BRE;
6ndi,+ (2% 'CT10103 CT1B06/6A/MCT1BC/A;;EMCT1BCOTA
6ndi,+ (3% 'CT1010$ CT1B06/6A/MCT1B<R!POMCT1BCOTA
6ndi,+ ($% 'CT1010@ CT1B06/6A/MCT1BCTA;!P
6ndi,+ (@% 'CT10106 CT1B06/6A/MCT1BDE;C01
6ndi,+ (6% 'CT10107 CT1B06/6A/MCT1BCC
Cam*o 1' CT1B06/6A/(C% '
Cam*o 2' CT1BCOTA(C% '3
Cam*o 3' CT1BDE;C01(C% 'D E ; P E ; A ;
Cam*o $' CT1BDE;C02(C% '
Cam*o @' CT1BDE;C03(C% '
Cam*o 6' CT1BDE;C0$(C% '
Cam*o 7' CT1BDE;C0@(C% '
Cam*o 4' CT1BC/A;;E(C% '1
Cam*o (' CT1BOR"A/(C% '1
Cam*o 10' CT1BRE;(C% '
Cam*o 11' CT1BB/OF(C% '2
Cam*o 12' CT1BDTB/6(D% '0&0&0
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 7
4. Tipos de E#entos de Erro
Neste tpico sero definidos os tipos de erros mais comuns e exemplificadas as situaes
aonde os mesmos normalmente ocorrem.
4.1. Defini!o das "on#en$es de Texto %tili&adas
Neste documento so utilizadas convenes de texto de forma a generalizar
determinados tipos de informaes. Estas informaes so relacionadas a contedos que
podem variar em diferentes situaes mas que permanecem relacionados ao mesmo tipo
de informao. Os tipos que se enquadram nestas convenes so identificados pelos
caracteres ":; conforme a listagem abaixo:
:alias;
:atributo;
:camin3o do ar6ui#o < nome do ar6ui#o;
:campos da c3a#e do )ndice;
:conte=do;
:data do fonte;
:express!o de filtro;
:fonte;
:fun!o;
:lin3a;
:nome do campo;
:nome_da_coluna;
:n=mero do campo;
:n=mero do )ndice;
:n=mero do re>istro posicionado;
:opera!o;
:operador;
:ordem de )ndice ati#a;
:select_parcial;
:tabela;
:texto;
:tipo do campo;
:tipo;
:total de re>istros na tabela;
:#ari+#el;
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 8
4.'. Defini!o dos tipos de erros
Alias alread? in use
A rotina est definindo um novo alias, normalmente atravs da funo DbUseArea, o qual
j est em uso no sistema.
Este erro normalmente ocorre na criao de arquivos temporrios, em rotinas de
relatrios e manipulao de arquivos / browses e em rotinas que utilizam queries.
Ar>ument error
As funes internas do sistema avaliam o tipo das variveis utilizadas como parmetros.
Quando o tipo da varivel passada como parmetro para uma dessas funes no condiz
com o tipo pr-definido na funo ocorre o erro.
Este tipo de erro pode ocorrer nas mais diversas situaes, mas est normalmente
vinculado :
Tipo incorreto do campo no SX3;
Tipo ou contedo incorreto do parmetro "MV_ no SX6 ;
Retorno incorreto de um Ponto de Entrada para uma varivel em uso pela rotina
padro.
Arra? out of bounds
A posio solicitada de uma varivel do tipo array no existe.
Este tipo de erro genrico e normalmente de difcil anlise, pois o contedo das
variveis do tipo array no exibido no error.log, tornando necessria uma anlise
apurada do fonte para determinar se houve falha na criao, atribuio ou na utilizao
do mesmo.
8ile is in E48
A rotina est efetuando alguma operao de leitura ou gravao em uma tabela a qual
est em fim de arquivo.
Este um dos erros mais genricos, pois est normalmente vinculado a rotinas padres
customizadas atravs de pontos de entrada, os quais no restauram o ambiente do
sistema aps sua execuo.
@ncorrect ,intaxe near ABuer?C
A rotina est executando uma query atravs da funo TcGenQuery(), a qual est com
um erro na sua estrutura.
Este erro est associado montagem incorreta dos argumentos da query pela rotina ou a
contedos indevidos nos campos das tabelas associadas a query.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 9
@mportante/ O smbolo () - "aspas simples interpretado pelo banco de dados como
um limitador de campos do tipo caractere. Um campo de uma tabela do sistema no
pode ser preenchido, independente da posio, com este smbolo.
Exemplo/ Campo SE1->E1_PREFIXO: A1D
@ndex not 8ound
A rotina est selecionando atravs da funo DbSetOrder() um ndice que no existe
definido no SINDEX / SIXxxx para o Alias corrente.
Uma situao comum em rotinas que criam ndices temporrios para manipulao dos
arquivos, ou na utilizao do cadastro de Relacionamentos do SigaCTB, pois nos casos
em que o nmero do ndice superior 9, o campo na tabela "CTL deve ser alterado
para duas posies e no ser tratado como "A, "B ou afins.
@n#alid "ursor ,tate AM,,B0 e @E84FM@GC
Apesar da mensagem de erro ser exibida no sistema Microsiga, o erro est relacionado
falta de recursos no banco, sendo que no manual da ferramenta ou no help est descrito
o procedimento para estas situaes.
@n#alid Data T?pe
Este erro ocorre na manipulao de campos de tabelas que esto com um tipo de dado
diferente do esperado pelo sistema.
Normalmente vinculado a ambientes de bancos de dados, onde campos data no esto
definidos da tabela de controle do sistema chamada TOP_FIELD.
@n#alid 8ield Eame
A rotina est utilizando um campo que no existe na tabela em uso.
Esta situao normalmente ocorre aps processos de atualizao de verso ou em
ambientes novos, os quais foram criados com base em um SXSBRA.txt desatualizado ou
incorreto.
T3ere is no current @ndex
A rotina est selecionando atravs da funo DbSetOrder() um ndice sendo que o Alias
corrente no possui nenhum ndice ativo.
Esta situao comum em rotinas que manipulam incorretamente o ALIAS, eliminando
os ndices ativos.
T?pe mismatc3 on :opera!o;
A rotina est efetuando uma operao algbrica ou uma comparao nas quais os tipos
de variveis no so compatveis.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 10
2ariable does not exist
A rotina est utilizando uma varivel que no foi pr-definida.
Aparentemente uma situao de erro simples, mas que pode ser causada por:
Especificao incorreta do escopo da varivel no desenvolvimento da rotina;
A rotina foi executa de uma forma no tradicional, o que provocou a no
inicializao da varivel;
Em lanamentos contbeis, o alias no foi especificado na definio de campos ou
no foram respeitadas as diferenas para aquela contabilizao entre o modo On-
Line e Off-Line.
2ariable is not :tipo;
A rotina est utilizando uma propriedade especfica de uma varivel ou um objeto, s que
o tipo da varivel no condiz com a propriedade utilizada.
Esta situao ocorre devido a inicializao incorreta da varivel, com um tipo que no
condizia com o esperado pelo programa. As causas mais comuns deste tipo de erro so
retornos incorretos de Pontos de Entrada e a definio incorreta de parmetros "MV_ na
tabela SX6.
4.3. Tipos de erros espec)ficos
Os erros especficos tratados neste documento so referentes a duas situaes que,
apesar do problema ser sempre focada em um mesmo ponto, a mensagem de erro
exibida pelo Protheus variam em quantidade e formas de interpretao.
Estes dois tipos de erros so:
Erros na execuo de Queries;
Erros na execuo de Lanamentos Padres - Funes DETPROVA e CTRELATION.
Erros na execu!o de 6ueries
Apesar da grande diversidades de mensagens, todas apontam sempre para problemas na
sintaxe do comando submetido ao banco pelo TopConnect. Desta forma em todas as
situaes dever ser identificada e analisada a Query.
Alguns dos tipos de erros mais comuns que se enquadram nesta situao esto listados a
seguir:
Attribute :atributo; not found;
Column :nome_da_coluna; not in specified tables;
:comando_s6l; keyword not found where expected;
Incorrect syntax near :texto;;
Invalid character;
Invalid column name :nome_da_coluna;;
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 11
Query Error on :fun!o; (:fonte;) :data do fonte; line : :lin3a;
The data type of an operand of an arithmetic function or operation "+" is not
numeric;
The data types of the operands for the operation :operador; are not
compatible;
Erros na execu!o de 0anamentos 1adr$es H 8un!o DET1F42A
A maior parte dos erros referentes funo DETPROVA esto relacionados com
problemas na configurao dos cadastros dos Lanamentos Padres.
Isto ocorre porque os contedos dos campos das tabelas SI5 e CT5, com algumas
restries, so interpretados por esta funo. Desta forma, um contedo invlido ir
causar um erro fatal de execuo.
Os tipos de erros que normalmente ocorrem por problemas nas configuraes dos
Lanamentos Padres so:
Argument error
File is in EOF
Index not found
Invalid Data Type / Invalid Field Name
There is no current Index
Type mismatch on :opera!o;
Variable does not exist
Variable is not a :tipo;
Erros na execu!o de 0anamentos 1adr$es H 8un!o "TFE0AT@4E
De forma semelhante ao caso anterior, a maior parte dos erros referentes funo
CTRELATION esto relacionados com problemas na configurao dos cadastros dos
Relacionamentos dos Lanamentos Padres. Caso os campos informados na chave de
ndice deste cadastro ou o nmero do ndice esteja invlido, sero normalmente exibidas
as seguintes mensagens de erro:
Invalid Field Name
Index not found
Argument error
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 12
5. 1rocessos de An+lise
Respeitando as diferenas entres os tipos de erros anteriormente mencionados, podem
ser definidos trs processos de anlise distintos.
Estes processos de anlise podem ser generalizados da seguinte forma:
1. Anlise somente atravs do Error.Log ou Anlise Simples.
2. Anlise atravs do Error.log com consulta a trechos do cdigo fonte principal ou
Anlise com Consulta.
3. Anlise da situao do sistema no momento do erro ou Anlise Complexa.
5.1. An+lise ,imples
Os erros considerados de Anlise Simples so aqueles que no necessitam da consulta ao
cdigo fonte, pois todas as informaes necessrias podem ser obtidas atravs da
verificao do error.log e das tabelas do sistema.
Os tipos de erros que se enquadram nesta categoria so:
@n#alid 8ield Eame
@ncorrect ,intaxe Eear A6uer?C
5.'. An+lise com "onsulta
Para analise da maioria dos tipos de error.log necessria uma mnima consulta ao fonte,
para identificar:
Linha de comando que ocasiona o erro;
Informaes associadas a esta linha de comando.
Deve-se entender por informaes associadas a uma linha de comando:
Declarao das variveis envolvidas nesta linha;
Variveis inicializadas como parmetros da funo;
Pontos de Entrada;
Consulta a contedos de tabelas especficas como SX5 e SX6, atravs das funes
Tabela(Sx5) e GetMV(Sx6);
Grupo de perguntas associado, identificado pela funo Pergunte().
Atravs da anlise dos fatores acima, que basicamente se referem inicializao das
variveis ou tabelas envolvidas normalmente possvel determinar os seguintes tipos de
erros:
Ar>ument error
@ndex not 8ound
@n#alid Data T?pe
T?pe mismatc3 on :operador;
2ariable does not exist
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 13
2ariable is not a :tipo;
5.3. An+lise "omplexa
Nesta categoria enquadram-se os erros que necessitam de uma anlise do momento do
sistema na situao de erro. Isso implica na necessidade de uma consulta mais
abrangente a maioria dos cdigos fontes listados na pilha de chamadas e por diversas
vezes necessrio o auxlio da ferramenta de Debug do APxIDE.
So considerados erros complexos:
Arra? out of bounds
8ile is in E48
T3ere is no current @ndex
5.4. An+lise de Erros Espec)ficos
Como mencionado anteriormente, so considerados erros especficos aqueles referentes
a problemas encontrados na execuo de uma Query ou na execuo de um Lanamento
Padro.
5.4.1. An+lise de Erros na execu!o de Bueries
Os erros relacionados ao tratamento de Queries so visualizados atravs de mensagens
de erros geradas pelos gerenciadores de bancos de dados mas interpretadas pelo sistema
e mensagens de erro geradas pela ferramenta TopConnect.
Nestes casos necessria a anlise do erro com o uso de ferramentas complementares,
tais como:
Iuia de FeferJncia para Mensa>ens de Erro/ AD,K "TFEEK LTF@E2EM
Iuia de FeferJncia para Erros do Top"onnectM
An+lise do 0o> de E#entos do Top"onnectM
Ainda nas situaes em que o erro est na sintaxe incorreta da query, h a necessidade
do conhecimento mnimo da linguagem SQL e da consulta a caractersticas especficas
dos diversos Bancos de Dados para tratamentos de comandos.
Para estes casos, o melhor procedimento seguir :
1N Para mensagens de erros especficas do TopConnect, ADS, CTREE e BTRIEVE,
consultar no site do AC o Guia de Referncia de Mensagens de Erro.
'N Para erros na estrutura da Query executada, enviar para o suporte juntamente com o
arquivo error.log o arquivo contendo os eventos do TopConnect, o qual deve ser gerado
atravs da ferramenta TopManager.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 14
5.4.'. An+lise de Erros na execu!o de 0anamentos 1adr$es
Erros na execu!o de 0anamentos 1adr$es H 8un!o TFAE,0"TA
Os erros relacionados interpretao de contedos invlidos no cadastro de lanamentos
padres ocorrem na execuo da funo TRANSLCTA.
Esta funo interpreta o contedo de campos especficos dos cadastros SI5 - SIGACON /
CT5 - SIGACTB, permitindo a execuo de funes para retorno de valores.
Por causa desta funcionalidade, a execuo da TRANSLCTA no momento da
contabilizao depende da integridade das informaes dos cadastros dos lanamentos.
Para determinar o lanamento / seqncia que ocasionou o erro de execuo podem ser
observados os seguintes pontos:
1O 1asso/ Verificar no arquivo error.log o ALIAS:SI5 ou ALIAS:CT5, determinando em
qual lanamento a rotina estava posicionada, e qual o contedo dos campos do cadastro.
Em alguns casos o cadastro de lanamentos no est posicionado no lanamento
que ocasionou o erro, ento importante avaliar outros aspectos do error.log,
mencionados no 2 passo.
'O 1asso/ Normalmente o evento de erro da TRANSLCTA est relacionado com uma das
seguintes ocorrncias:
1. @n#alid 8ield Eame
'. 2ariable does not exist
3. Ar>ument error expected
'.1. Para as duas primeiras ocorrncias devem ser utilizados os procedimentos de
anlise especficos para as mesmas, o que ir apontar para um contedo incorreto
de um dos campos do cadastro do lanamento padro.
'.'. No caso do Argument error expected, no error.log dever ser localizada a
sesso do error.log referente as variveis em uso pela funo TRANSLCTA.
Nesta sesso os contedos das variveis <cConteudo> e <xConteudo>
determinaro quais informaes definidas no cadastro do lanamento esto
incorretas.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 15
Erros na execu!o de 0anamentos 1adr$es H 8un!o "TFE0AT@4E
A funo CTRELATION executada nos lanamentos padres, de acordo com o cadastro
de Relacionamentos do CTB - Tabela CTL, e seu objetivo gravar uma chave de pesquisa
nas tabelas CTK - campo CTK_KEY e CT2 - campo CT2_KEY.
A chave de pesquisa gravada por esta funo permite identificar a origem do lanamento,
e utilizada por diversas funes existentes no mdulo CTB (vide documentao sobre
Relacionamentos).
A ocorrncia de erros durante a execuo desta funo est relacionada normalmente a
duas causas:
1O "ausa/ Cadastro incorreto do Relacionamento - Tabela CTL
No cadastro de Relacionamento devem ser informados:
1. Cdigo do Lanamento Padro;
2. Alias da tabela que contm o gerador do lanamento;
3. Campos que compe a chave de ndice para a busca do gerador do
lanamento;
4. Ordem de ndice (SIX) correspondente a esta chave, em formato numrico.
O preenchimento incorreto dos campos ORDEM e CHAVE causam erros diversos na
execuo da CTRELATION, tais como:
1. Index not found;
2. Invalid field name;
3. Variable does not exist.
'O "ausa/ Tratamento incorreto da rotina que est efetuando a contabilizao
Algumas rotinas do sistema que utilizam queries para montagem de reas
temporrias e otimizao de performance fecham os ALIAS das tabelas do
sistema.
Neste processo os ndices destas tabelas tambm so fechados, ocasionando o
erro: PT3ere is no current @ndexQ.
Para esta situao dever ser avaliada a rotina para determinar a melhor forma de
adequ-la para permitir o uso dos relacionamentos no processo de contabilizao.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 16
-. Estudo de "asos
-.1. An+lise ,imples
-.1.1. @n#alid 8ield Eame
1. "abeal3o do erro
Invalid field name in Alias :alias; :nome do campo; on :fun!o; (:fonte;)
:data do fonte; line: :lin3a;
'. An+lise
1. Verificar no error.log a estrutura da tabela ao qual o campo pertence, procurando pelo
texto: ALIAS::tabela;
Esta informao estar disposta no error.log da seguinte forma:
1O 0in3a da Estrutura H @nforma$es da Tabela
:camin3o do ar6ui#o < nome do ar6ui#o;
Alias::tabela;;
Filter : :express!o de filtro; ;
Recno: :n=mero do re>istro posicionado;;
Total Recs: :total de re>istros na tabela;;
Order: :ordem de )ndice ati#a;
0in3as de Rndices da Tabela
Indice (:n=mero do )ndice;) : :campos da c3a#e do )ndice;
0in3as de "ampos
Campo :numero do campo;: :nome do campo;(:tipo do campo;) :
:conte=do;
'. Pela anlise da estrutura demonstrada no error.log temos:
O campo no existe na tabela, pois a estrutura da mesma est divergente da
estrutura do SX3, ocasionando o problema.
O fonte est referenciando incorretamente um campo que no existe na tabela,
ocasionando o problema.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 17
3. Exemplo
AP6 Build 7.00.031210A
ERRO THREAD (Emartins, CPDB66% 20&01&200$ 07'33'22
inEalid 5i+ld nam+ in Ai!" S,2--&_,_C_+_O_ on 0A3$0T6T(06A3$0.PR#%
24&11&2003 lin+ ' 1$(7
12uild'7.00.031210A3
1t-r+ad 23043
Call+d 5rom 0A3$0CO"P(06A3$0.PR#% 24&11&2003 lin+ ' 3$(
Call+d 5rom E#ECBRO7(";/6B.PR7% 0$&12&2003 lin+ ' @3$
Call+d 5rom 899 ;ETECH(OPCO"PE;ARO%, A/TERA'A.T.,E#ECBRO7(C0A3$0CO"PC,,
3,C;E2C,:AECHO,,C#06/6A/(O;E2O%C,C#06/6A/(O;E2O%C%? lin+ ' $$70
Call+d 5rom lin+ ' 0
Call+d 5rom "BR76DO7(";/6B.PR7% 0$&12&2003 lin+ ' $@$(
Call+d 5rom "BRO7;E(";/6B.PR7% 0$&12&2003 lin+ ' $11
Call+d 5rom 06A3$0(06A3$0.PR#% 24&11&2003 lin+ ' 107
Call+d 5rom BBE#EC!TE(AP/6B0(0.PR7% 0$&12&2003 lin+ ' (71
Call+d 5rom 899 BBE#EC!TE(C06A3$0(%C,C##########C,CCO"PE;AQRO CPC,CC%?
lin+ ' 27@2
Call+d 5rom lin+ ' 0
Call+d 5rom ;6<AAD.(;6<AAD..PR7% 23&0$&2002 lin+ ' 223
...
SS I Ai!":S,2J 0ilt+r ' J R+,no'0J Total R+,s'1J Ord+r'0
Cam*o 1' E2BPRE06#O(C% 'C#3
Cam*o 2' E2B!"(C% '30101
Cam*o 3' E2BPARCE/A(C% '
Cam*o $' E2BT6PO(C% '0
Cam*o @' E2BAT!RET(C% '11101102
Cam*o 6' E2BPORTADO(C% '
Cam*o 7' E2B0ORECE(C% '000@03
Cam*o 4' E2B/ONA(C% '01
Cam*o (' E2BO"0OR(C% 'T>CO
Cam*o 10' E2BE"6;;AO(D% '200$&1&20

...
Cam*o 7@' E2B"!/TAT(C% '2
Cam*o 76' E2BPRONP";(C% '2
Cam*o 77' E2BP//OTE(C% '
Cam*o 74' E2BCODRET(C% '
Cam*o 7(' E2BD6R0(C% '2
Cam*o 40' E2BTA#DO/(% '0
Cam*o 41' E2BCCOTAB(C% '@1207201
Cam*o 42' E2BCC!;TO(C% '3700
Cam*o 43' :DE/ETED:(C% '
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 18
-.1.'. @ncorrect ,intaxe Eear A6uer?C
1. "abeal3o do erro
Incorrect syntax near :texto;
:select_parcial; on :fun!o; (:fonte;) :data do fonte; line : :lin3a;
'. An+lise
1. Localizar no error.log a varivel cQuery, pois a mesma utilizada como padro na
montagem de queries pelos fontes. Caso contrrio, determinar pela anlise do
fonte qual varivel contm a query que ocasionou o erro.
o A linha do fonte referenciada no erro normalmente apontar para o
conjunto de instrues DbUseArea(...,TcGenQry(:#ari+#el;)...)
2. Caso a varivel cQuery seja encontrada e o contedo da varivel for igual ao
:select_parcial; exibido no cabealho do erro:
o Analisar o texto da query em busca de um caracter " D (aspas simples)
indevido.
3. Caso a varivel cQuery no seja encontrada ou o contedo da varivel no for
igual ao :select_parcial; exibido no cabealho do erro, dever ser efetuada
uma consulta ao :fonte; / :lin3a; / :data do fonte; especificados no
cabealho do erro.
o Na linha especificada haver a chamada da funo
TcGenQry(,,:#ari+#el;).
o Localizar a :#ari+#el; no error.log e analisar o texto da query em busca
de um caracter " D (aspas simples) indevido.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 19
3. Exemplo
AP6 Build 7.00.0$0@31P
ERRO THREAD (administrator, =6A7A% 0(&07&200$ 0('27'2$
' T;0170 I 1"i,roso5t31ODBC ;F/ ;+rE+r DriE+r31;F/ ;+rE+r3/in+ 1' Inc'%%ec$
".n$!/ ne!% 0 A+D ,)_+1M,&O20.
( 0rom ;F/Fr)B0il+'';F/Fr)B0il+ %
;E/ECT CO!T(S% E;TORO 0RO" ;E@020 7HERE E@B06/6A/AC0$C AD E@BPRE06#OAC C
C AD E@B!"EROAC022212C AD E@BPARCE/AAC C AD E@BT6POACRC C AD
E@BC/60ORAC000636C AD E@B/ONAAC01C AD E@B;EFAC01C AD E@BT6PODOCACE;C AD
E@BDATA UA C200$070(C AD DBEB/BEBTBUVCSC on T,M3XCA+C(MATXF1+34P&X)
16&02&200$ lin+ ' $771
12uild'7.00.0$0@31P3
1t-r+ad 2($03
Call+d 5rom 0A1(06"P(06R1(0.PR#% 26&04&2003 lin+ ' @23
Call+d 5rom 89/ED9 0A1(06"P(:/ED,7RE/,C;TR6<%?(06R1(0.PR#% lin+ ' 111
Call+d 5rom lin+ ' 1@1(
Call+d 5rom 8 99 E.A/( BACT6O, :/;TOP %,/;TOP 'A .T., OD/<'ED(% ?
(AP/6B040.PR7% lin+ ' 1@1(
Call+d 5rom lin+ ' 0
Call+d 5rom RPT;TAT!;(AP/6B040.PR7% 0$&12&2003 lin+ ' 1@20
Call+d 5rom 06R1(0(06R1(0.PR#% 26&04&2003 lin+ ' 111
Call+d 5rom BBE#EC!TE(AP/6B0(0.PR7% 0$&12&2003 lin+ ' (71
Call+d 5rom 899 BBE#EC!TE(C06R1(0(%C,C##########C,CRE/AQRO DE BA6#A;
C,CC%? lin+ ' 27@2
Call+d 5rom lin+ ' 0
Call+d 5rom ;6<A06(;6<A06.PR7% 21&04&2001 lin+ ' 222
...
T,M3XCA+C(MATXF1+34P&X) 16&02&200$ Param 1' CCHA.E(C% ' C 022212 RC
0006360101
/o,al 1' CCHA.E(C% 'C 022212 RC 0006360101
/o,al 2' AAREA(A% '
/o,al 3' AAREA;E@(A% '
/o,al $' /RET(/% '.0.
L'c! ): C51,&6(C) ';E/ECT CO!T(S% E;TORO 0RO" ;E@020 7HERE
E@B06/6A/AC0$C AD E@BPRE06#OAC C C AD E@B!"EROAC022212C AD E@BPARCE/AAC
C AD E@BT6POACRC C AD E@BC/60ORAC000636C AD E@B/ONAAC01C AD E@B;EFAC01C
AD E@BT6PODOCACE;C AD E@BDATA UA C200$070(C AD DBEB/BEBTBUVCSC
/o,al 6' CA/6A;(C% 'BBB#CA
Texto da Buer?
;E/ECT CO!T(S% E;TORO 0RO" ;E@020 7HERE E@B06/6A/AC0$C AD ,)_P&,FIXO20 0
0 A+D E@B!"EROAC022212C AD E@BPARCE/AAC C AD E@BT6POACRC C AD
E@BC/60ORAC000636C AD E@B/ONAAC01C AD E@B;EFAC01C AD E@BT6PODOCACE;C AD
E@BDATA UA C200$070(C AD DBEB/BEBTBUVCSC
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 20
-.'. An+lise com "onsulta
-.'.1. Ar>ument error
1. "abeal3os do erro
Argument <n=mero do parSmetro> error, expected :tipo; -> :tipo recebido;,
function :nome da fun!o; on :rotina;(:fonte;) :data do fonte; line: :lin3a
do fonte;
ou
Argument error on :fun!oTrotina;(:fonte;) :data do fonte; line: :lin3a do
fonte;
'. An+lise
1. Verificar no :fonte;T :data do fonte; T :lin3a; especificados no cabealho
do erro quais parmetros esto sendo informados para a funo :nome da
fun!o;
'. Verificar no arquivo error.log gerado o contedo de cada uma das variveis de
forma a determinar qual est com o contedo do :tipo recebido; incorreto
informado no cabealho do erro.
3. Analisar o :fonte; e/ou :fontes; especificados na Pilha de Funes para
determinar:
a. Em que momento e com qual contedo a varivel que ocasionou o erro foi
inicializada. (primeira atribuio de contedo).
b. Em qual/quais momento(s) esta varivel sofre alteraes de seu contedo.
4. Atravs da anlise do item P3.Q determinar a causa do contedo incorreto e
proceder na correo.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 21
3. Exemplo
AP7 Build 7.00.031002A
ERRO THREAD (Administrador, A!D6ET1% 1(&11&2003 11'16'@2
!%789en$ :0 e%%'%; e/<ec$ed C--1, 5un,tion on FA1)0G&A=A(06A1@0.PR#%
02&0(&2003 lin+ ' 667
12uild'7.00.031002A3
1t-r+ad 2$(23
Call+d 5rom 0A1@0<ER(06A1@0.PR#% 02&0(&2003 lin+ ' 36@
Trec3os do ar6ui#o error.lo>
06A1@0(06A1@0.PR#% 02&0(&2003 PriEat+ 1' CBACO(C% '237
PriEat+ 2' CA<EC6A(C% '33(0
P%i>!$e 3: XCO+T,1DO(1) :+IL
PriEat+ $' CPER<(C% 'A061@0
PriEat+ @' HD/BCO(% '$
PriEat+ 6' HD/;A6DA(% 'I1
PriEat+ 7' ;EF(% '1
PriEat+ 4' ;O"A.A/OR(% '(7.04
PriEat+ (' AROT6A(A% '
PriEat+ 10' BORDERO;(% '0
PriEat+ 11' #B!00ER(C% ';ACADOR&A.A/6;T33@3($0E#ECB/OC=(OO"ECEDETEO%
PriEat+ 12' /6DO;(% '@01@
PriEat+ 13' TOTCAB2(% '0
PriEat+ 1$' /6HA(% '0
PriEat+ 1@' CCADA;TRO(C% 'Comuni,aQRo Ban,DriaIEnEio
PriEat+ 16' RE<(% '2
/o,al 1' RE<;(% '0
Trec3o do 8onte 8@EA15* H 8A15*IFA2A
&&WXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXY
&&Z Analisa ,ont+udo Z
&&[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\
60 Em*t)(,Cont+udo%
,Cam*o'A;*a,+(nTam%
Els+
lCont+udo 'A 5a1@0OriH( ,Cont+udo %
60 ]lCont+udo
R+stAr+a(a<+tAr+a%
R+turn nR+torno
Els+
60 .alT)*+(KCont+udo%AODO
,Cam*o 'A <raEaData(KCont+udo,.0.%
Els+i5 .alT)*+(KCont+udo%AOO
,Cam*o'A;u2str(;tr^+ro(KCont+udo,nTam,nD+,%,1,nTam%
Els+
cC!9<':2S8?"$%(/C'n$e8d';1;nT!9)
End65
End65
End65
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 22
-.'.'. @ndex not found
1. "abeal3o do erro
SetOrder - Index not found. On :fun!o;(:fonte;) :data do fonte; line : :lin3a;
'. An+lise
1. Verificar no :fonte;T :data do fonte; T :lin3a; especificados no cabealho
do erro qual nmero de ndice est sendo utilizado na chamada da funo
DbSetOrder(:numero_do_)ndice;).
2. Verificar atravs da anlise do :fonte; ou do error.log qual a :tabela; ativa no
momento da execuo da funo DbSetOrder.
o Pela anlise do fonte deve ser verificada a ltima ocorrncia da funo
DbSelectArea(P:alias;Q) ou verificar se a sintaxe utilizada : :alias; ->
(DbSelectArea(P:alias;Q)).
o Pela anlise do error.log, deve ser localizado o :alias; indicado pelos
smbolos 99 no incio da 1 Linha das Informaes da Tabela.
1O 0in3a H @nforma$es da Tabela
Alias Ativo::99;: somente estar marcando o ALIAS ativo no momento do erro
:camin3o do ar6ui#o < nome do ar6ui#o;
Alias::tabela;M
Filter : :express!o de filtro;M
Recno: :n=mero do re>istro posicionado;M
Total Recs: :total de re>istros na tabela;M
Order: :ordem de )ndice ati#a;
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 23
3. Exemplo
AP7 Build 7.00.031210A
ERRO THREAD (ansantos, D6<6TACAO% 30&12&2003 11'1('0@
' ;+tOrd+r I Inde/ n'$ @'8nd4 'n CT&,LATIO+(MATXF1+C4P&X) 12&0(&2003 lin+ '
6231
Trec3os do ar6ui#o error.lo>
CTRE/AT6O("AT#0!C.PR#% 12&0(&2003 Param 1' CPADRAO(C% ' 610
/o,al 1' CPAD&AO(C) :A10
/o,al 2' A;A.EAREA(A% '
/o,al 3' C_ALIAS(C) :SD2
/o,al $' CBCHA.E(C%
'D2B06/6A/MD2BDOCMD2B;ER6EMD2BC/6ETEMD2B/ONAMD2BCODMD2B6TE"
/o,al @' +_O&D,M(+) :3
/o,al 6' CCHA.EB!;CA(C% '
/o,al 7' AAREA(A% '
...
CT/010 I Alias'CT/J 0ilt+r ' J R+,no'14J Total R+,s'22J Ord+r'1
6ndi,+ (0% 'SSCT/0101 CT/B06/6A/MCT/B/P
Cam*o 1' CT/B06/6A/(C% '01
C!9<' 2: CTL_LP(C) :A10
Cam*o 3' CT/B=E>(C% ...
C!9<' B: CTL_O&D,&(C) :3
Cam*o @' CT/BDE;C(C% 'DOC!"ETO DE ;A6DA (CABECA/HO%
Cam*o 6' CT/BE#EC!T(C% '
C!9<' (: CTL_ALIAS(C) :SD2
...
;D1010 I Alias';D1J 0ilt+r ' J R+,no'110(1J Total R+,s'60(1J Ord+r'1
6ndi,+ (0% 'SS;D10101
6ndi,+ (1% ';D10102
6ndi,+ (2% ';D10103
6ndi,+ (3% ';D1010$
6ndi,+ ($% ';D1010@
6ndi,+ (@% ';D10106
6ndi,+ (6% ';D10107
6ndi,+ (7% ';D10104
6ndi,+ (4% ';D1010(
6ndi,+ ((% ';D1010A
Cam*o 1' ...
...
** - Ai!":SD2# Fi$e% : # &ecn':1# T'$! &ec":1# O%de%:0
Cam*o 1' ;02RECO(% '260
Cam*o 2' ;A1RECO(% '1
Cam*o 3' ;0$RECO(% '13
Cam*o $' ;B1RECO(% '7@
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 24
-.'.3. @n#alid Data T?pe
1. "abeal3o do erro
Invalid data type on :campo; in file :lib de tecnolo>ia; at line :lin3a da lib; on
:fun!oTrotina;(:fonte;) :data do fonte; line : :lin3a do fonte;
'. An+lise
1. Verificar se o tipo do campo no SX3 e da tabela/arquivo esto coerentes e de
acordo com o padro ou documentaes fornecidas pela Microsiga.
2. Verificar no :fonte;T :data do fonte; T :lin3a; especificados no cabealho
do erro qual contedo atribudo ao :campo; tambm especificado no
cabealho. Este contedo pode ser:
a. Uma varivel ou uma operao entre variveis utilizadas pela rotina;
b. Retorno de uma outra funo;
c. Valores fixos especificados na rotina;
d. Formato incorreto dos dados em uma tabela do sistema.
3. Dependendo do tipo de contedo atribudo ao campo:
a. 2ari+#el ou 4pera!o entre #ari+#eis/ Verificar no arquivo error.log
gerado o contedo das variveis de forma a determinar o que est
causando um retorno com um tipo diferente do esperado pelo campo.
b. Fetorno de outra fun!o/ Determinar atravs da anlise do fonte da
funo o que est causando um retorno com um tipo diferente do esperado
pelo campo.
c. 2alores fixos/ Verificar se o tipo de informao atribuda pela rotina est
coerente com o tipo do campo.
4. Atravs da anlise do item P3.Q determinar a causa da atribuio incorreta e
proceder na correo.
3. Exemplo
AP6 Build 7.00.031002A
ERRO THREAD (siHa1$4$, C/A!D6ACABRA/% 03&12&2003 11'@7'@3
In>!id d!$! $.<e 'n (CTC_DATA) in 5il+ C'GAD.TEC7GadE*lGinstrEar.inl at
lin+ 337 on <RA.ACTC(CTB#0!.PR#% 04&10&2003 lin+ ' $@7
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 25
-.'.4. T?pe mismatc3 on :operation;
1. "abeal3o do erro
Type mismatch on :opera!o; on :fun!oTrotina;(:fonte;) :data do fonte;
line: :lin3a do fonte;
'. An+lise
1. Verificar no :fonte;T :data do fonte; T :lin3a; especificados no cabealho
do erro quais variveis esto sendo utilizadas na :opera!o;
'. Verificar no arquivo error.log gerado o contedo de cada uma das variveis de
forma a determinar qual est com o contedo invlido para o tipo de
:opera!o; empregado.
3. Analisar o :fonte; e/ou :fontes; especificados na Pilha de Funes para
determinar:
a. Em que momento e com qual contedo a varivel que ocasionou o erro foi
inicializada. (primeira atribuio de contedo).
b. Em qual/quais momento(s) esta varivel sofre alteraes de seu contedo.
4. Atravs da anlise do item P3.Q determinar a causa do contedo incorreto e
proceder na correo.
3. Exemplo
AP7 Build 7.00.0$0@31P
ERRO THREAD (Administrador, 60O% 0@&07&200$ 16'$4'$(
$.<e 9i"9!$cC 'n c'9<!%e 'n FA1*0IMP(06R1(0.PR#% 26&04&2003 lin+ ' @3@
Trec3o do 8onte 8@EF1.* 7 8A1.*@M1
65 +,DS,)--,)_FILO&IG E 9>_<!%33 .or. +,DS,)--,)_FILO&IG - 9>_<!%3B
d2;+l+,tAr+a(OE7;E@O%
E7;E@IV( d2;_i*(% %
/oo*
Endi5
Trec3os do ar6ui#o error.lo>
.ariaE+is +m uso
Pu2li,as
...
Pu2li,a 133' M=_PA&33(D) :1**(F1F1
Pu2li,a 13$' M=_PA&3B(D) :200*F12F31
** - Ai!":+,DS,)# Fi$e% : # &ecn':1# T'$! &ec":1# O%de%:0
...
Cam*o $@' ,)_FILO&IG(C) :
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 26
-.'.5. 2ariable does not exist
1. "abeal3o do erro
Variable does not exist :#ari+#el; on :fun!oTrotina;(:fonte;) :data do fonte;
line: :lin3a do fonte;
'. An+lise
1. Verificar no error.log se :#ari+#el; especificada no cabealho do erro existe em
alguma das funes registradas na Pilha de Funes.
a. Caso a varivel exista, deve ser observada a seguinte regra referente ao
escopo:
Escopo Local: deve estar contida na listagem das variveis da
:fun!oTrotina; especificada no cabealho do erro.
Escopo Private: deve estar contida na listagem das variveis de
uma :fun!oTrotina; que foi responsvel pela execuo da
:fun!oTrotina; especificada no cabealho do erro. Esta
anlise somente possvel atravs da verificao das chamadas
pela Pilha de funes.
Escopo Public: Esta varivel est disponvel para todas as
funes especificadas na Pilha de Funes.
b. Caso o escopo da varivel no esteja condizente com sua utilizao na
funo, proceder na correo.
2. Se a verificao do item P1.Q indicou que a varivel no existe no error.log,
devem ser observados:
a. Grafia da varivel: A varivel utilizada com um nome similar em outros
pontos da rotina, caracterizando erro de codificao.
b. Falta de Declarao: A grafia da varivel est correta, caracterizando falta
da declarao da mesma.
c. Campo sem ALIAS: A tabela ao qual pertence um campo no o ALIAS
ativo no momento da verificao do mesmo e a sintaxe utilizada na
utilizao do campo no for ALIAS->CAMPO, caracterizando erro de
codificao.
d. Utilizao Indevida: A varivel normalmente empregada em outros
processos do sistema, mas no foi disponibilizada para a :rotina
Tfun!o;, caracterizando erro de codificao.
3. Atravs da anlise do item P'.Q proceder na correo do erro caracterizado.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 27
3. Exemplo
AP6 Build 7.00.0$0431P
ERRO THREAD (`aniss+, DP$% 20&0(&200$ 16'32'20
>!%i!?e d'e" n'$ e/i"$ CMOD&,TPIS on 0.ER"66"P(06A0@0.PR#% 1$&0(&200$
lin+ ' 47@@
Trec3os do ar6ui#o error.lo>
0.ER"66"P(06A0@0.PR#% 1$&0(&200$ Param 1' .A/OR(% ' 63.$6
PriEat+ 1' P6;OR6(% '0
PriEat+ 2' CO0OR6(% '0
PriEat+ 3' C;/OR6(% '0
/o,al 1' .A/OR(% '63.$6
/o,al 2' ./"66"P(% '@000
/o,al 3' COD(% '0
/o,al $' .A/;E;T(% '0
/o,al @' /COTRRET(/% '.T.
Eota/ Pela definio de escopos de variveis, se CMODRETPIS existisse definida como
tipo PRIVATE em uma funo executada anteriormente na pilha, esta definio a tornaria
vlida na funo FVERMINIMP.
Trec3o do 8onte 8@EA*5* 7 82EFM@E@M1
0un,tion 0.+r"in6m*(n.alor%
/o,al n.l"in6m* 'A <+t+aPar(O".B./10(2@O,@000%
/o,al nCond 'A 0
/o,al n.al;+st 'A ...
/o,al lContrR+t 'A ...
65 lAlt+ra
lAlt+rat 'A .T.
Endi5
DE0A!/T n.alor 'A "IVE2B.A/OR
nPisOri 'A 665(T)*+(OnPisOriO% ]A OO , 0, nPisOri%
nCo5Ori 'A 665(T)*+(OnCo5OriO% ]A OO , 0, nCo5Ori%
nCslOri 'A 665(T)*+(OnCslOriO% ]A OO , 0, nCslOri%
65 C*os6m*PaHar(% .and. lContrR+t
&&ao r+t+m Pis,Co5ins,C;//
I@ cM'd&e$Pi" 22 G3G &&ao r+t+m P6;
n.lR+tPis 'A "IVE2BP6;
n.lR+tCo5 'A "IVE2BCO06;
n.lR+tCsl 'A "IVE2BC;//
"IVE2B.A/OR MA "IVE2BP6; M "IVE2BCO06; M "IVE2BC;//
"IVE2BP6; 'A 0
"IVE2BCO06; 'A 0
"IVE2BC;// 'A 0
Els+
...
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 28
-.'.-. 2ariable is not :tipo;
1. "abeal3o do erro
Variable is not :tipo; on :fun!oTrotina;(:fonte;) :data do fonte; line: :lin3a
do fonte;
'. An+lise
1. Verificar no :fonte;T :data do fonte; T :lin3a; especificados no cabealho
do erro quais variveis esto sendo utilizadas na :fun!oTrotina;
'. Verificar no arquivo error.log gerado o contedo de cada uma das variveis de
forma a determinar qual est com o contedo invlido para o :tipo; esperado
pela :fun!oTrotina;
3. Analisar o :fonte; e/ou :fontes; especificados na Pilha de Funes para
determinar:
a. Em que momento e com qual contedo a varivel que ocasionou o erro foi
inicializada. (primeira atribuio de contedo).
b. Em qual/quais momento(s) esta varivel sofre alteraes de seu contedo.
4. Atravs da anlise do item P3.Q determinar a causa do contedo incorreto e
proceder na correo.
3. Exemplo
AP7 Build 7.00.0$0431P
ERRO THREAD (3rH2$, "AR6HE6RO% 1(&10&200$ 12'@4'@$
>!%i!?e i" n'$ !%%!. 'n SALDOTIT(06#0!.PR#% 16&0(&200$ lin+ ' 1$3
Trec3o do 8onte 8@EG8%E H ,A0D4T@T
65 EKistPro,( ,Pro,+dur+ % .and. ( T,;rET)*+(% UV OA;&$00O %
aR+sult 'A 8?
...
aR+sult 'A TC;PE#EC( ... %
...
nS!d' :2 !&e"8$H1I
Trec3os do ar6ui#o error.lo>
;A/DOT6T(06#0!.PR#% 16&0(&200$ Param 1' CPRE06#O(C% '
Param 2' C!"ERO(C% ' 000002
Param 3' CPARCE/A(C% '
...
PriEat+ 1' A&,S1LT(1) :+IL
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 29
-.3. Dicas para An+lise de Erros "omplexos
-.3.1. Arra? out of bounds
1. "abeal3o do erro
Array out of bounds on :fun!oTrotina;(:fonte;) :data do fonte; line: :lin3a do
fonte;
'. Dicas
1. Arra? com conte=do incompleto/
a. Verificar atravs da anlise do fluxo do programa quais dados o array
deveria conter em uma situao normal.
b. Atravs desta anlise, determinar as possveis causas para que estes dados
no estejam presentes na estrutura do array e proceder com as correes
necessrias.
Exemplo/
aCampos := {}
If cAlias := "001
AADD(aCampos,001_CAMPO01)
AADD(aCampos,001_CAMPO02)
AADD(aCampos,001_CAMPO03)
ElseIf cAlias := 002
AADD(aCampos,002_CAMPO01)
AADD(aCampos,002_CAMPO02)
AADD(aCampos,002_CAMPO03)
ElseIf cAlias := "003
AADD(aCampos,003_CAMPO01)
AADD(aCampos,003_CAMPO02)
Endif
cCampo := aCampos[3]
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 30
'. 0imites do arra? excedidos/
a. Verificar atravs da anlise do fluxo do programa quais as dimenses
normais do array.
b. Verificar atravs da anlise das variveis do error.log se os limites do array
foram desrespeitados por um contedo incorreto em um dos indexadores
do utilizados no mesmo.
Exemplo/ Array: aValores - Indexador "i
aValores := Array(9)
For i:= 1 to 10 // Excede o tamanho do array
nSoma += aValores[i]
Next i
-.3.'. 8ile is in E48
1. "abeal3o do erro
:4pera!oT1rocesso; - File is in EOF - :tabelaTar6ui#o; in file :lib de
tecnolo>ia; at line :lin3a da lib; on :fun!oTrotina;(:fonte;) :data do fonte;
line: :lin3a do fonte;
'. Dicas
1. Alias posicionado incorretamente pela rotina/
a. Efetuar a anlise do fluxo da rotina para determinar em qual momento o
ALIAS utilizado na operao que acusou o erro deveria ter sido
posicionado.
b. Dependendo da anlise do fluxo da rotina, podem ser constatadas as
seguintes situaes:
i. A rotina no efetuou o tratamento para posicionar o alias;
ii. O tratamento estava condicionado a uma instruo e no foi
executada devido parametrizao da rotina;
iii. O tratamento foi executado, mas a instruo recebeu um conjunto
de parmetros incorretos, desposicionando o arquivo.
c. A anlise do fluxo do programa depende do contedo das variveis contido
no error.log
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 31
'. Alias desposicionado por um tratamento inde#ido de uma customi&a!o/
a. Uma customizao ou instruo especfica do ambiente do cliente causou o
desposicionamento do ALIAS necessrio rotina padro do sistema, em
uma das situaes abaixo:
i. A customizao no armazenou antes de sua execuo e restaurou
ao final da mesma o ambiente do sistema, utilizando as funes
GetArea() e RestArea();
ii. A customizao manipulou incorretamente o contedo de variveis
do tipo PRIVATE utilizada pela rotina padro do sistema.
b. Estas situaes normalmente ocorrem no emprego do seguintes recursos
do sistema:
i. Pontos de entrada;
ii. Funes especficas em Lanamentos Padres ou a utilizao da
funo Posicione();
iii. Funes especficas em gatilhos ou validaes de campos.
-.3.3. T3ere is no current @ndex
1. "abeal3o do erro
:Ar6ui#oTTabela;: There is no current index on :fun!oTrotina;(:fonte;) :data
do fonte; line: :lin3a do fonte;
'. Dicas
1. %tili&a!o incorreta da fun!o db"loseAreaAC T db"lose@ndexAC
a. A rotina padro ou uma rotina especfica utilizou a funo dbCloseArea()
ou dbCloseIndex() mas no restaurou o ALIAS ou os ndices ao trmino de
sua execuo ou na mudana de processos.
'. 8al3a na execu!o da fun!o @ndFe>uaAC
a. Na execuo da funo IndRegua() ocorreu um erro que impossibilitou a
criao do ndice temporrio utilizado pela rotina, ocasionando o erro.
b. Como o erro ocorreu quando a rotina tentou utilizar o ndice especfico,
devem ser analisados os erros nos gerenciadores de bancos (TopConnect)
e/ou gerenciadores de arquivos (ADS/CTREE entre outros).
3. Tratamento incorreto para o ambiente Top"onnect
a. Para ambiente TopConnect a funo dbSetIndex() no deve ser utilizada,
pois referencia um arquivo temporrio local (\SIGAADV\), sendo que neste
ambiente os arquivos de ndices temporrios para tabelas que esto no
Banco de Dados tambm sero criados no mesmo.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 32
7. "asos de An+lise
7.1. "aso de An+lise ,imples
"abeal3o do erro
AP7 Build 7.00.0$0304A
ERRO THREAD (2or2a, T"/1(1% 13&0@&200$ 12'$2'$3
' T;0170 I 1"i,roso5t31ODBC ;F/ ;+rE+r DriE+r31;F/ ;+rE+r3
/in+ 1' 6n,orr+,t s)ntaK n+ar CRAC.
( 0rom ;F/Fr)B0il+'';F/Fr)B0il+ %
;E/ECT CO!T(S% E;TORO 0RO" ;E@010 7HERE E@B06/6A/AC01C AD
E@BPRE06#OACAD6C AD E@B!"EROACP.20@@C AD E@BPARCE/AAC CC AD E@BT6POACRA
C AD E@BC/60ORACC436 C AD E@B/ONAAC02C AD E@B;EFAC C AD E@BT6PODOCACE;C
AD E@BDATA UA C200$0@13C AD DBEB/BEBTBUVCSC
on TE"B#CAC("AT#0!B.PR#% 03&03&200$ lin+ ' $7@$
1N 1asso/ @nterpreta!o do erro
Incorrect syntax near :texto;
:select_parcial; on :fun!o; (:fonte;) :data do fonte; line : :lin3a;
Aonde:
:texto;
CRAC
:select_parcial;
;E/ECT CO!T(S% E;TORO 0RO" ;E@010
7HERE
E@B06/6A/AC01C AD
E@BPRE06#OACAD6C AD
E@B!"EROACP.20@@C AD
E@BPARCE/AAC CC AD
E@BT6POACRA C AD
E@BC/60ORACC436 C AD
E@B/ONAAC02C AD
E@B;EFAC C AD
E@BT6PODOCACE;C AD
E@BDATA UA C200$0@13C AD
DBEB/BEBTBUVCSC
:fun!o;
TE"B#CAC
:fonte;
"AT#0!B.PR#
:data do fonte;
03&03&200$
:lin3a;
$7@$
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 33
'N 1asso/ An+lise do Error.lo>
1. Localizar a varivel que contm a query completa (normalmente cQuery) na
funo na qual ocorreu o erro:
Trec3o do ar6ui#o error.lo>
T,M3XCA+C("AT#0!B.PR#% 03&03&200$ Param 1' CCHA.E(C% ' AD6P.20@@CRA
C436 02
/o,al 1' CCHA.E(C% 'AD6P.20@@CRA C436 02
/o,al 2' AAREA(A% '
/o,al 3' AAREA;E@(A% '
/o,al $' /RET(/% '.0.
/o,al @' C51,&6(C) ';E/ECT CO!T(S% E;TORO 0RO" ;E@010 7HERE
E@B06/6A/AC01C AD E@BPRE06#OACAD6C AD E@B!"EROACP.20@@C AD
E@BPARCE/AAC CC AD E@BT6POACRA C AD E@BC/60ORACC436 C AD E@B/ONAAC02C
AD E@B;EFAC C AD E@BT6PODOCACE;C AD E@BDATA UA C200$0@13C AD
DBEB/BEBTBUVCSC
/o,al 6' CA/6A;(C% 'BBB#CA
3N 1asso/ An+lise do conte=do da #ari+#el
1. Contedo da varivel cQuery alinhado:
;E/ECT CO!T(S% E;TORO 0RO" ;E@010
7HERE
E@B06/6A/AC01C AD
E@BPRE06#OACAD6C AD
E@B!"EROACP.20@@C AD
E@BPARCE/AAC CC AD
E@BT6POACRA C AD
E@BC/60ORACC436 C AD
E@B/ONAAC02C AD
E@B;EFAC C AD
E@BT6PODOCACE;C AD
E@BDATA UA C200$0@13C AD
DBEB/BEBTBUVCSC
2. Anlise da query para identificar a string que contm o caractere " U
(apstrofe):
,)_PA&C,LA20 00 AD
4N 1asso/ @nterpreta!o da An+lise e ,olu!o
1. Os campos das tabelas do sistema no podem conter o caracter apstrofe (`) pois
o mesmo interpretado pelos bancos de dados padro SQL.
2. Deve ser removido o caracter invlido do registro do SE5 indicado na query e do
registro do SE1 (RA - Recebimento Antecipado). Tambm devem ser avaliadas
outras ocorrncias desta situao na base.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 34
7.'. "aso de An+lise com "onsulta
"abeal3o do erro
MP8 Build 7.00.041103A
ERRO THREAD (microsiga, BRAS064) 13/12/2004 18:13:47
type mismatch on $ on FA050TIPO(FINA050.PRX) 25/11/2004 line : 1227
1N 1asso/ 2erificar a lin3a do fonte
1. Trecho do fonte FINA050.PRX - 25/11/2004:
0in3as "di>o
1227
1228
1229
1230
If lRetorna .And. m->e2_naturez$&(GetMv("MV_INSS" .And. !m->e2_t"#o $ MVINSS
$el#(" "%&%"'2_(I)*"
lRetorna +, .-.
'ndIf
2. Instrues que podem ter ocasionado o erro:
m->e2_naturez V &(GetMv("MV_INSS"))
!m->e2_tipo V MVINSS
'N 1asso/ A#aliar conte=do das #ari+#eis en#ol#idas na opera!o
1. Variveis da instruo: m7;e'_nature& V WAIetM#AXM2_@E,,XCC
2ari+#el "onte=do
m->e2_naturez "branco / vazio
MV_INSS 26003
Origem do contedo da varivel: m7;e'_nature&
Contedo disponvel apenas no error.log, para a varivel PRIVATE
E2_NATUREZ, identificada pelo uso do ALIAS "M-> (variveis em
memria para utilizao em telas).
Error.lo> "onte=do
.&/
.&.
.&0
.12
.1&
.1.
A3IN456I(MA(3A(6.)R3 207&272228 )aram &+ 4A5IAS(4 + S'2
)aram 2+ NR'G(N + 9222
)aram 1+ N*)4(N + 1
...
)r"vate &+ A('5A(A +
)r"vate 2+ AG'(S(A +
...
)r"vate 0+ E2_NATUREZ(C) :
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 35
Origem do contedo da varivel: M2_@E,,
Contedo disponvel na tabela SX6 da empresa/filial corrente ou no
error.log, caso o ALIAS SX6 esteja posicionado.
Error.lo> "onte=do
&2:2
&2:1
&2:8
&2:9
&2:/
&&2/
e+;#rot<eu=0;#rot<eu=_data;=>=tem#rodu?ao;=@/222.dAf - Al"a=+S3/B -"lter + B
Re?no+0.8B (otal Re?=+2&2.B *rder+&
Ind"?e (2 +CCS3/222& 3/_-I5D3/_VAR
4am#o &+ 3/_-I5(4 +
4am#o 2+ 3/_VAR(4 +MV_INSS
4am#o 1+ 3/_(I)*(4 +4
...
4am#o &1+ X6_CONTEUD(C) :26003

2. Variveis da instruo: Ym7;e'_tipo V M2@E,,
2ari+#el "onte=do
m->e2_tipo "DP
MVINSS "INS
Origem do contedo da varivel: m7;e'_tipo
Contedo disponvel apenas no error.log, para a varivel PRIVATE
E2_TIPO, identificada pelo uso do ALIAS "M-> (variveis em
memria para utilizao em telas).
Error.lo> "onte=do
.&/
.&.
.&0
.12
.1&
.1/
A3IN456I(MA(3A(6.)R3 207&272228 )aram &+ 4A5IAS(4 + S'2
)aram 2+ NR'G(N + 9222
)aram 1+ N*)4(N + 1
...
)r"vate &+ A('5A(A +
)r"vate 2+ AG'(S(A +
...
)r"vate .+ E2_TIPO(C) :DP
Origem do contedo da varivel: M2@E,,
Contedo disponvel apenas no error.log, para a varivel PUBLICA
MVINSS
Error.lo> "onte=do
12
1&
12
22&
222
221
228
Var"ave"= em u=o
)uAl"?a=
)uAl"?a &+ *A))(* +*
...
)uAl"?a &.2+ MV(A3A(4 +(3
)uAl"?a &.&+ MV(3A(4 +(3A
)uAl"?a &.2+ MVIR-(4 +IR-
)uAl"?a &.1+ MVINSS(C) :INS
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 36
3N 1asso/ Determinar a opera!o 6ue manipulou um conte=do incorreto
1. Instruo: m7;e'_nature& V WAIetM#AXM2_@E,,XCC
1.1. Interpretao da instruo com os contedos:
"branco $ &(26003)
"branco $ 26003
1.2. Tipos das variveis envolvidas
Caractere $ Numrico
2. Instruo: Ym7;e'_tipo V M2@E,,
Interpretao da instruo com os contedos:
"DP $ "INS
Tipos das variveis envolvidas
Caractere $ Caractere
4N 1asso/ @nterpreta!o da An+lise e ,olu!o
1. O contedo do parmetro MV_INSS est incorreto, pois o mesmo ser utilizado
em uma operao com & (macro).
2. Dever ser alterado o contedo de '-**3 para P'-**3Q permitindo a correta
interpretao do parmetro.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 37
7.3. "aso de An+lise "omplexa
"abeal3o do erro
AP7 Build 7.00.040308A
ERRO THREAD (ventura, CPDX) 22/10/2004 10:19:31
array out of bounds on af060grvmov(ATFA060.PRX) 20/10/2004 line : 2345
1N 1asso/ 2erificar a lin3a do fonte
1. Trecho do fonte ATFA060.PRX - 20.10.2004
0in3as "di>o
2188
2189
218/
218.
2180
218:
2192
219&
2192
2191
2198
2199
If ?*?orren ,, "21" 77 *r"Eem
SN8 -> N8_446S(* +, &("SN1->"Da4#F"E"tG2HG&H
If 5en(a4#F"E"t >, 1
SN8 -> N8_S6I4(A +, &("SN1->"Da4#F"E"tG1HG&H
'nd"f
If 5en(a4#F"E"t >, 8
SN8 -> N8_45V5 +, &("SN1->"Da4#F"E"tG8HG&H
'nd"f
'l=e 77 Fe=t"no
SN8 -> N8_446S(* +, 46S(I'M4(I
SN8 -> N8_S6I4(A +, S6I44*N4(I
SN8 -> N8_45V5 +, 45V54*N4(I
'nd"f
2. Instrues que podem ter ocasionado o erro:
SN4 -> N4_CCUSTO := WAX,E37;X<a"pDi>itZ'[Z1[C
'N 1asso/ Determinar as opera$es 6ue atribuiram o conte=do ao arra?
1. Funes que devero ser avaliadas, de acordo com o fluxo do error.log:
Error.lo> "onte=do
0
:
&2
&&
&2
&1
&8
&9
&/
&.
&0
&:
22
4alled from A-2/2GRV-I5(A(-A2/2.)R3 227&272228 l"ne + &//1
4alled from A-2/2(RANS(A(-A2/2.)R3 227&272228 l"ne + 990
4alled from '3'4IR*J(MS5II.)RJ 2072.72228 l"ne + /8.
4alled from KLL S'('N4$("&(RANS-'RIR"% A5('RA+,.(.%'3'4IR*J(MA-2/2(RANSM%%
1%MSN1M%NA'N4$*%%M3-I5IA5("SN1"M%M3-I5IA5("SN1"M% .-.%.(.O l"ne + 8.2&
4alled from l"ne + 2
4alled from MIRJINF*J(MS5II.)RJ 2072.72228 l"ne + 801:
4alled from MIR*JS'(MS5II.)RJ 2072.72228 l"ne + 819
4alled from A(-A2/2(A(-A2/2.)R3 227&272228 l"ne + 99
4alled from __'3'46('(A)5II2:2.)RJ 2072.72228 l"ne + .&:
4alled from KLL
__'3'46('(MA(-A2/2(M%M3333333333M%M(RANS-'RPN4IASM%M2&M%M&A(6A5IQARS'S-
>M*VIM'N(*SM%&O l"ne + 2181
4alled from l"ne + 2
4alled from MSA))+R6NA))(A)5II222.)RJ 2072.72228 l"ne + 192
4alled from SIGAAFV(A)5II222.)RJ 2072.72228 l"ne + .18
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 38
1.1. Lista das funes em ordem de avaliao:
ATFA060
AF060TRANS
AF060GRVFIL
AF060GRVMOV (cabealho do erro)
2. Trechos do fonte ATFA060.PTX - 20.10.2004:
1N 1onto H A8*-*TFAE,
0in3as "di>o
&2:
&&2
&&&
5o?al aVar +, K K ""% ""% ""% ""% "" O O 77 Somente "n"?"al"zo
5o?al a4#F"E"t +, K K "N1_44*N(AI"% "N1_44*RR'4"% "N1_4F')R'4"% "N1_44F')R"%
"N1_4F'S)"% "N1_446S(*"% "SN&->N&_5*4A5" O O
5o?al o5o?al% o44u=to
'N 1onto H A8*-*TFAE,
0in3as "di>o
&09
&0/
&0.
&00
&0:
&:2
If l4?
Aadd(a("t-older% 4tASa>A#ro(T4((U
Aadd(a*AVeto=% K %%%%% T4((U% I?? O
Aadd(aVar% A?lone(aVarG&H
Aadd(a4#F"E"t% K TN1_46S(I'MU% TN1_444*RRU% TN1_44F'S)U% TN1_444F')U%
TN1_444F'SU O
'nd"f
3N 1onto H A8*-*TFAE,
0in3as "di>o
&:2
&:1
&:8
&:9
&:/
&:.
If lItem
Aadd(a("t-older% 4tASa>A#ro("4(F"
Aadd(a*AVeto=% K %%%%% "4(F"% AItem O
Aadd(aVar% A4lone(aVarG&H
Aadd(a4#F"E"t% K "N1_S6I44*N"% "N1_S6I44*R"% "N1_S6I4F')"% "N1_S6I44F'"%
"N1_S6I4F'S" O
'nd"f
4N 1onto H A8*-*TFAE,
0in3as "di>o
&::
222
22&
222
221
228
If l4lVl
Aadd(a("t-older% 4tASa>A#ro("4($"
Aadd(a*AVeto=% K %%%%% "4($"% A4lVl O
Aadd(aVar% A4lone(aVarG&H
Aadd(a4#F"E"t% K "N1_45V54*N"% "N1_45V54*R"% "N1_45V5F')"% "N1_45V54F'"%
"N1_45V5F'S" O
'nd"f
3. Contedo esperado do array para cada um dos pontos avaliados:
Arra? a"pDi>it
01 U
01 01 C N3_CCONTAB
01 02 C N3_CCORREC
01 03 C N3_CDEPREC
01 04 C N3_CCDEPR
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 39
Arra? a"pDi>it
01 05 C N3_CDESP
01 06 C N3_CCUSTO
01 07 C N1_LOCAL
02 U
02 01 C N3_CUSTBEM
02 02 C N3_CCCORR
02 03 C N3_CCDESP
02 04 C N3_CCCDEP
02 05 C N3_CCCDES
03 U
03 01 C N3_SUBCCON
03 02 C N3_SUBCCOR
03 03 C N3_SUBCDEP
03 04 C N3_SUBCCDE
03 05 C N3_SUBCDES
04 U
04 01 C N3_CLVLCON
04 02 C N3_CLVLCOR
04 03 C N3_CLVLDEP
04 04 C N3_CLVLCDE
04 05 C N3_CLVLDES
3N 1asso/ Determinar as poss)#eis situa$es de fal3a em cada opera!o
1. Pela avaliao dos 4 pontos do fonte ATFA060.PRX nos quais o contedo do array
aCpDigit atribudo, os pontos nos quais podem ocorrer falhas so:
1.1. 'N 1onto : varivel lCC
1.2. 3N 1onto : varivel lItem
1.3. 4N 1onto : vairvel lClvl
Moti#o *1/ A atribuio do contedo do array est condicionada a estas variveis.
Caso o contedo de alguma dessas seja .F. (falso) no sero adicionadas as
posies 02, 03 e 04.
Moti#o *'/ Conforme trecho do fonte ATFA060.PRX entre as linhas 2344 e 2351
estas variveis no so consideradas na utilizao do array aCpDigit.
2. Avaliao das possveis situaes de falha encontradas:
2.1. 'N 1onto / varivel lCC - contedo: .F. (falso)
Error.lo> "onte=do
9&:
922
92&
9.&
A-2/2(RANS(A(-A2/2.)R3 227&272228 )aram &+ 4A5IAS(4 + SN1
)aram 2+ NR'G(N + &002/
)aram 1+ N*)4(N + 1
...
Local 29: LCC(L) :!
2.2. 3N 1onto / varivel lItem - contedo: .F. (falso)
Error.lo> "onte=do
9&:
922
92&
9.2
A-2/2(RANS(A(-A2/2.)R3 227&272228 )aram &+ 4A5IAS(4 + SN1
)aram 2+ NR'G(N + &002/
)aram 1+ N*)4(N + 1
...
Local 30: LITEM(L) :!
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 40
2.3. 4N 1onto / varivel lClvl - contedo: .F. (falso)
Error.lo> "onte=do
9&:
922
92&
9.1
A-2/2(RANS(A(-A2/2.)R3 227&272228 )aram &+ 4A5IAS(4 + SN1
)aram 2+ NR'G(N + &002/
)aram 1+ N*)4(N + 1
...
Local 3": LCLVL(L) :!
4N 1asso/ @nterpreta!o da An+lise e 1rximas A$es
1. Pela anlise do contedo das variveis nos pontos determinados como possveis
causas do problema estava coerente com a situao de erro, contatou-se a causa do
problema:
"ausa do 1roblema/ Foi utilizada uma posio do array aCpDigit que no existe,
pois no foi executada a atribuio de contedo do 2 passo, que criaria
aCpDigit[2][1], utilizado na linha 2345 - fonte ATFA060.PRX
2. Pela anlise do fonte, constatou-se que um problema no controle do array, pois na
atribuio so utilizadas variveis de controle, as quais no esto presentes quando o
contedo do array acessado.
Moti#o/ O fonte no efetua o tratamento correto para acessar o contedo do
array aCpDigit no trecho entre as linhas 2344 e 2351 - fonte ATFA060.PRX
3. Como o "Motivo aponta o fonte como causador do erro, temos:
,olu!o T 1rximos passos/ Dever ser avaliada a verso mais recente do fonte
ATFA060.PRX, referente ao tratamento do array aCpDigit na funo AF060GRVMOV.
Caso o fonte atual j possua o controle adequado, dever ser aplicada uma patch do
mesmo no RPO no qual ocorre a situao de erro, caso contrrio dever ser aberta
uma solicitao de correo de erro para o fonte.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 41
7.4. "aso de An+lise Espec)fica/ 0anamentos 1adr$es
"abeal3o do erro
MP8 Build 7.00.040608A
ERRO THREAD (admin, SERVIDOR) 20/07/2004 09:39:21
variable does not exist PF on TRANSLCTA(TRANSLCT.PRG) 09/01/2004 line : 35
1N 1asso/ Determinar o lanamento padr!o em execu!o
1. Avaliar pela pilha de chamada de funes a rotina que originou o processo de
contabilizao. A rotina caracterizada por executar a funo DETPROVA:
Error.lo> "onte=do
0
:
&2
&&
&2
&1
&8
&9
&/
&.
4alled from F'()R*VA(MA(3-6NA.)R3 2272172228 l"ne + /220
4alled from !A3#0PROCESSA(!INA3#0PRX) 0$%02%200& l'() : ""60
4alled from KL5'NFL -A1.2)R*4'SSA(O(-INA1.2.)R3 l"ne + &29
4alled from l"ne + 81
4alled from K LL 'VA5( IA4(I*N% N5'NF %5'NF +, .(. % *F5G+'NF( O(MS)R*4'S.)RJ l"ne + 81
4alled from l"ne + 2
4alled from )R*4'SSA(MS)R*4'S.)RJ &272&72228 l"ne + 89
4alled from -INA1.2(-INA1.2.)R3 2972272228 l"ne + &29
4alled from __'3'46('(A)5II2:2.)RJ &272972228 l"ne + .98
4alled from MFI'3'46('(A)5II2/2.)RJ 2172972228 l"ne + .2:
2. Avaliar pelo error.log (varivel cPadro) ou atravs da anlise do fonte / rotina, qual
o lanamento padro executado:
Error.lo> "onte=do
102
10&
102
1:2
-A1.2)R*4'SSA(-INA1.2.)R3 2972272228 )aram &+ 5IA((5 + .-.
)r"vate &+ 44AM)*(4 +'9_FA(A
)r"vate 2+ IN456I(5 +.(.
...
5o?al .+ CPADRAO(C) :$"0
3. Avaliar pelo error.log se o ALIAS SI5/CT5 est posicionado no lanamento padro em
execuo, e se na estrutura deste lanamento h indicao da varivel apontada no
erro:
Error.lo> "onte=do
&9&2
&9&&
&9&2
&9&1
&9&8
&9&9
&9&/
&9&.
d+;#rot<eu=0;te=te_data;dado=adv;?t92&2.dAf - Al"a=+4(9B -"lter + B Re?no+2&0B (otal Re?=+1.8B
*rder+&
Ind"?e (2 +CC4(92&2& 4(9_-I5IA5D4(9_5AN)AFD4(9_S'W6'N
Ca*+o ": CT$_!ILIAL(C) :P!
4am#o 2+ 4(9_5AN)AF(4 +9&9
4am#o 1+ 4(9_S'W6'N(4 +&2&
4am#o 8+ 4(9_F'S4(4 +4AN4'5 )R*VISA* 4*N(AS A )AGAR
4am#o 9+ 4(9_F4(4 +1
4am#o /+ 4(9_F'II(*(4 +SA2->A2_4*N(A

@mportante/ Neste exemplo o ALIAS SI5/CT5 estava posicionado em uma
seqncia do lanamento padro que possui a varivel apontada no evento de
erro. Caso esta situao no ocorra, devero ser avaliadas todas as seqncias do
lanamento atravs da consulta respectiva tabela, e se caso necessrio, avaliar
o retorno dos "ExecBlocks utilizados nos mesmos.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 42
'N 1asso/ A#aliar o conte=do do lanamento padr!o 6ue causou o erro
1. Avaliar se o contedo do campo est compatvel com o tipo de preenchimento
esperado pela ou definido para a rotina:
Campo CT5_FILIAL: tipo caractere
Forma de preenchimento: direto - sem a necessidade de "
Contedo informado: PF
Contedo e forma de preenchimento compatveis com o esperado pela
rotina.
3N 1asso/ @nterpreta!o da An+lise e 1rximas A$es
1. Pela anlise do contedo do campo do ALIAS SI5/CT5 constatou-se o seguinte
problema:
"ausa do 1roblema/ A rotina TRANSLCTA no est interpretando corretamente o
contedo do campo CT5_FILIAL quando este possui apenas letras.
2. Como a "Causa do Problema aponta o fonte como causador do erro, temos:
,olu!o T 1rximos passos/ Dever ser avaliada a verso mais recente do fonte
MATXFUNA.PRX, referente ao tratamento do campo CT5_FILIAL na funo TRANSLCTA.
Caso o fonte atual j possua o tratamento adequado, dever ser aplicada uma patch do
mesmo no RPO no qual ocorre a situao de erro, caso contrrio dever ser aberta uma
solicitao de correo de erro para o fonte.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 43
(. @nforma$es "omplementares
Na anlise do arquivo error.log normalmente necessrio identificar algumas
configuraes do ambiente do cliente para poder determinar caractersticas que
influenciam na ocorrncia do erro.
Desta forma existem dois grupos de variveis (Public e Private) utilizados pelo sistema
que podem ser consultados para obter este tipo de informao.
(.1. 2ari+#eis 1ublicas do ,istema
2ari+#el Tipo Descri!o Exemplo de "onte=do
__CLOGSIGA Caractere Contedo do parmetro
MV_LOGSIGA.
NNNNN
__CRDD Caractere Drivers de Banco de Dados
utilizado pelo Protheus.
TOPCONN
__LOCALDRIVER Caractere Driver utilizado pelos arquivos
locais / temporaries do Protheus.
DBFCDX
__TTSINUSE Lgico Contedo referente ao parmetro
MV_TTS ( S = .T. / N = .F.)
.T.
CARQTAB Caractere Listagem das tabelas abertas e o
modo de compartilhamento das
mesmas.
CTTE/ SE5E/ SD1C
CEMPANT Caractere Empresa ativa no sistema. 01
CFILANT Caractere Filial da empresa ativa no sistema. 05
CFOPENED Caractere Arquivos ativos no sistema. RCESRNSI5SI1SI4SIC
CNIVEL Numrico Nvel do usurio ativo no sistema. 5
CPAISLOC Caractere Pas para o qual o Protheus est
configurado.
Brasil
CUSERNAME Caractere Usurio ativo no sistema. Administrador
CVERSAO Caractere Verso do Protheus em uso. AP5 5.08
DDATABASE Data Data com a qual o sistema est
ativo.
2004/10/31
LAS400 Lgico Se o Banco de Dados utilizado pelo
Protheus o AS400 em ambiente
IBM.
.F.
MV_MOEDAx Caractere Contedo do parmetro
MV_MOEDAx.
REAIS
MV_PARxx Mltiplos Perguntas e respectivos contedos
utilizados pela rotina.
No se aplica
MV_SIMBx Caractere Contedo do parmetro MV_SIMBx R$
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 44
(.'. Estrutura do Ambiente 1rot3eus
O ambiente Protheus composto basicamente pelos seguintes componentes:
L@E\F@4 AL@EC/
Arquivos que compe o ncleo do sistema Protheus, compostos pelos
arquivos APxSVRxxx.EXE (principal) e APxRMT.EXE (dependente). A verso
da BUILD do Protheus refere-se a estes arquivos.
F14 H Fepositrio de 4b5etos/
Arquivo que contm os fontes compilados dos mdulos que compe o
sistema Protheus e os fontes especiais conhecidos como LIBs. As LIBs so
as bibliotecas de funes que em conjunto com o BIN definem as
caractersticas tcnicas e funcionalidades tecnolgicas do sistema.
T41"4EEE"T/
Ferramenta de comunicao entre o sistema Protheus e os diversos bancos
de dados relacionais com os quais o mesmo implementado.
(.'.1. "omponentes e DependJncias
L@E\F@4 AL@EC
Define as verses de RPO compatveis (datas de disponibilizao);
Define as verses de TOPCONNECT compatveis (Builds do Topconnect).
F14 H Fepositrio de 4b5etos
Depende da verso do BIN (BUILD) do Protheus em uso.
T41"4EEE"T
Depende da verso do BIN (BUILD) do Protheus em uso.
A #ers!o do L@E AL%@0DC do 1rot3eus define 6uais datas de disponibili&a!o de
F14s e 6uais #ers$es AL%@0DsC do Top"onnect de#em ser utili&adas.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 45
(.'.'. 8ormas de Atuali&a!o dos "omponentes
L@E\F@4 AL@EC
Disponibilizao de nova BUILD (Server e Remote).
F14 H Fepositrio de 4b5etos
Disponibilizao de novo Repositrio;
Disponibilizao de updates;
Disponibilizao de patches;
Aplicao de patches emergenciais.
T41"4EEE"T
Disponibilizao de nova BUILD.
Material de Apoio
Treinamento: Infra-Estrutura Protheus
Mdulo 03: Anlise de Eventos de Erro
Pgina 46
.. FeferJncias
..1. Material %tili&ado
DEM - Documentao Eletrnica Microsiga
o http://dem.microsiga.com.br
Documentao de Atendimentos no PRC- ADM.FIN ACR.N1 e ACR.N2
Manual Eletrnico - Advanced Protheus 7.10 e 8.11
o Acesso interno: http://helpintranet.microsiga.com.br
o Acesso atravs do site do ACR: http://acr.microsiga.com.br
..'. "olaboradores
Equipe do ACR.N2
Equipe do ACR.N1
Equipe do Desenvolvimento

Você também pode gostar