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 Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 3 Tpicos Abordados 1. Objetivos...............................................................................................................................................................5 2. Arquivos de Eventos de Erro...............................................................................................................................5 3. Estrutura dos Eventos de Erro............................................................................................................................6 3.1. Exemplo da Estrutura do Erro.................................................................................................7 4. Tipos de Eventos de Erro.....................................................................................................................................9 4.1. Definio das Convenes de Texto Utilizadas........................................................................ 4.!. Definio dos tipos de erros....................................................................................................1" 4.3. Tipos de erros espe#$fi#os........................................................................................................1! 5. Processos de Anise..........................................................................................................................................14 %.1. &n'lise (imples........................................................................................................................ 14 %.!. &n'lise #om Consulta..............................................................................................................14 %.3. &n'lise Complexa....................................................................................................................1% %.4. &n'lise de Erros Espe#$fi#os...................................................................................................1% 5.4.1. Anlise de Erros na execuo de Queries............................................................................................15 5.4.2. Anlise de Erros na execuo de Lanamentos Padres.....................................................................16 6. Estudo de !asos.................................................................................................................................................1" ).1. &n'lise (imples........................................................................................................................ 1* 6.1.1. Inalid !ield "ame..............................................................................................................................1# 6.1.2. Incorrect $intaxe "ear %&uer'(............................................................................................................2) ).!. &n'lise #om Consulta..............................................................................................................!! 6.2.1. Ar*ument error....................................................................................................................................22 6.2.2. Index not +ound....................................................................................................................................24 6.2.,. Inalid -ata .'/e................................................................................................................................26 6.2.4. .'/e mismatc0 on 1o/eration2...........................................................................................................23 6.2.5. 4aria5le does not exist.........................................................................................................................2# 6.2.6. 4aria5le is not 1ti/o2..........................................................................................................................,) ).3. Di#as para &n'lise de Erros Complexos................................................................................31 6.,.1. Arra' out o+ 5ounds.............................................................................................................................,1 6.,.2. !ile is in E6!.......................................................................................................................................,2 6.,.,. .0ere is no current Index.....................................................................................................................,, #. !asos de Anise.................................................................................................................................................34 7.1. Caso de &n'lise (imples..........................................................................................................34 7.!. Caso de &n'lise #om Consulta................................................................................................3) 7.3. Caso de &n'lise Complexa......................................................................................................3 7.4. Caso de &n'lise Espe#$fi#a+ ,anamentos -adres..............................................................43 ". $n%or&a'(es !o&pe&entares...........................................................................................................................45 *.1. .ari'veis -u/li#as do (istema................................................................................................4% *.!. Estrutura do &m/iente -rot0eus...........................................................................................4) #.2.1. 7om/onentes e -e/end8ncias.............................................................................................................46 #.2.2. !ormas de Atuali9ao dos 7om/onentes...........................................................................................43 9. )e%er*ncias.........................................................................................................................................................4" Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 4 .1. 1aterial Utilizado....................................................................................................................4* .!. Cola/oradores..........................................................................................................................4* Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 5 1. Objetivos 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. 2. Arquivos de Eventos 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 6 3. Estrutura dos Eventos de Erro 1- Cabealo - !escri"o do erro# Contm a mensagem de erro, detalhando seu tipo e a linha no fonte que o ocasionou. 2- $ila de %un&es Contm todas as funes principais executadas a partir da entrada do mdulo at a gerao do erro. 3- 'ari(veis $ublic Lista todas as variveis de escopo Public, seus tipos e respectivos contedos. )- !etala*ento das +un&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; ,- Tabelas Contm a listagem de todas as tabelas ativas no mdulo no momento do erro, apontando com -- 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 7 3.1. E.e*plo 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( 2 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.
**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 9 ). Tipos de Eventos de Erro Neste tpico sero definidos os tipos de erros mais comuns e exemplificadas as situaes aonde os mesmos normalmente ocorrem. ).1. !e+ini"o das Conven&es de Te.to /tili0adas 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 "12 conforme a listagem abaixo: 1alias2 1atributo2 1ca*ino do arquivo 3 no*e do arquivo2 1ca*pos da cave do 4ndice2 1conte5do2 1data do +onte2 1e.press"o de +iltro2 1+onte2 1+un"o2 1lina2 1no*e do ca*po2 1no*e6da6coluna2 1n5*ero do ca*po2 1n5*ero do 4ndice2 1n5*ero do re7istro posicionado2 1opera"o2 1operador2 1orde* de 4ndice ativa2 1select6parcial2 1tabela2 1te.to2 1tipo do ca*po2 1tipo2 1total de re7istros na tabela2 1vari(vel2 Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 10 ).2. !e+ini"o dos tipos de erros Alias alread8 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. Ar7u*ent 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. Arra8 out o+ 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. %ile is in EO% 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. 9ncorrect :inta.e near ;<uer8= 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 11 9*portante# 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. E.e*plo# Campo SE1->E1_PREFIXO: A1> 9nde. not %ound 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. 9nvalid Cursor :tate ;M::<? e 9@%OAM9B= 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. 9nvalid !ata T8pe 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. 9nvalid %ield @a*e 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. Tere is no current 9nde. 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. T8pe *is*atc on 1opera"o2 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 12 'ariable does not e.ist 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. 'ariable is not 1tipo2 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. ).3. Tipos de erros espec4+icos 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 e.ecu"o de queries 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 1atributo2 not found; Column 1no*e6da6coluna2 not in specified tables; 1co*ando6sql2 keyword not found where expected; Incorrect syntax near 1te.to2; Invalid character; Invalid column name 1no*e6da6coluna2; Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 13 Query Error on 1+un"o2 (1+onte2) 1data do +onte2 line : 1lina2 The data type of an operand of an arithmetic function or operation "+" is not numeric; The data types of the operands for the operation 1operador2 are not compatible; Erros na e.ecu"o de ?ana*entos $adr&es C %un"o !ET$AO'A 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 1opera"o2 Variable does not exist Variable is not a 1tipo2 Erros na e.ecu"o de ?ana*entos $adr&es C %un"o CTAE?AT9O@ 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 14 ,. $rocessos 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. ,.1. An(lise :i*ples 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: 9nvalid %ield @a*e 9ncorrect :inta.e @ear ;quer8= ,.2. An(lise co* Consulta 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: Ar7u*ent error 9nde. not %ound 9nvalid !ata T8pe T8pe *is*atc on 1operador2 'ariable does not e.ist Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 15 'ariable is not a 1tipo2 ,.3. An(lise Co*ple.a 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: Arra8 out o+ bounds %ile is in EO% Tere is no current 9nde. ,.). An(lise de Erros Espec4+icos Como mencionado anteriormente, so considerados erros especficos aqueles referentes a problemas encontrados na execuo de uma Query ou na execuo de um Lanamento Padro. ,.).1. An(lise de Erros na e.ecu"o de <ueries 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: Duia de Ae+erEncia para Mensa7ens de Erro# A!:F CTAEEF GTA9E'EH Duia de Ae+erEncia para Erros do TopConnectH An(lise do ?o7 de Eventos do TopConnectH 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 : 1I Para mensagens de erros especficas do TopConnect, ADS, CTREE e BTRIEVE, consultar no site do AC o Guia de Referncia de Mensagens de Erro. 2I 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 16 ,.).2. An(lise de Erros na e.ecu"o de ?ana*entos $adr&es Erros na e.ecu"o de ?ana*entos $adr&es C %un"o TAA@:?CTA 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: 1J $asso# 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. 2J $asso# Normalmente o evento de erro da TRANSLCTA est relacionado com uma das seguintes ocorrncias: 1. 9nvalid %ield @a*e 2. 'ariable does not e.ist 3. Ar7u*ent error e.pected 2.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. 2.2. 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 17 Erros na e.ecu"o de ?ana*entos $adr&es C %un"o CTAE?AT9O@ 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: 1J Causa# 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. 2J Causa# 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: KTere is no current 9nde.L. 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 18 M. Estudo de Casos M.1. An(lise :i*ples M.1.1. 9nvalid %ield @a*e 1. Cabealo do erro Invalid field name in Alias 1alias2 1no*e do ca*po2 on 1+un"o2 (1+onte2) 1data do +onte2 line: 1lina2 2. An(lise 1. Verificar no error.log a estrutura da tabela ao qual o campo pertence, procurando pelo texto: ALIAS:1tabela2 Esta informao estar disposta no error.log da seguinte forma: 1J ?ina da Estrutura C 9n+or*a&es da Tabela 1ca*ino do arquivo 3 no*e do arquivo2 Alias:1tabela2; Filter : 1e.press"o de +iltro2 ; Recno: 1n5*ero do re7istro posicionado2; Total Recs: 1total de re7istros na tabela2; Order: 1orde* de 4ndice ativa2 ?inas de Nndices da Tabela Indice (1n5*ero do 4ndice2) : 1ca*pos da cave do 4ndice2 ?inas de Ca*pos Campo 1nu*ero do ca*po2: 1no*e do ca*po2(1tipo do ca*po2) : 1conte5do2 2. 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 19 3. E.e*plo 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 20 M.1.2. 9ncorrect :inta.e @ear ;quer8= 1. Cabealo do erro Incorrect syntax near 1te.to2 1select6parcial2 on 1+un"o2 (1+onte2) 1data do +onte2 line : 1lina2 2. 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(1vari(vel2)...) 2. Caso a varivel cQuery seja encontrada e o contedo da varivel for igual ao 1select6parcial2 exibido no cabealho do erro: o Analisar o texto da query em busca de um caracter " > (aspas simples) indevido. 3. Caso a varivel cQuery no seja encontrada ou o contedo da varivel no for igual ao 1select6parcial2 exibido no cabealho do erro, dever ser efetuada uma consulta ao 1+onte2 / 1lina2 / 1data do +onte2 especificados no cabealho do erro. o Na linha especificada haver a chamada da funo TcGenQry(,,1vari(vel2). o Localizar a 1vari(vel2 no error.log e analisar o texto da query em busca de um caracter " > (aspas simples) indevido. Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 21 3. E.e*plo 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 Te.to da <uer8 ;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 22 M.2. An(lise co* Consulta M.2.1. Ar7u*ent error 1. Cabealos do erro Argument <n5*ero do parO*etro> error, expected 1tipo2 -> 1tipo recebido2, function 1no*e da +un"o2 on 1rotina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 ou Argument error on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. An(lise 1. Verificar no 1+onte2P 1data do +onte2 P 1lina2 especificados no cabealho do erro quais parmetros esto sendo informados para a funo 1no*e da +un"o2 2. Verificar no arquivo error.log gerado o contedo de cada uma das variveis de forma a determinar qual est com o contedo do 1tipo recebido2 incorreto informado no cabealho do erro. 3. Analisar o 1+onte2 e/ou 1+ontes2 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 K3.L 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 23 3. E.e*plo 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@ Trecos do arquivo error.lo7 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 Treco do %onte %9@A1,Q C %A1,QDAA'A &&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 24 M.2.2. 9nde. not +ound 1. Cabealo do erro SetOrder - Index not found. On 1+un"o2(1+onte2) 1data do +onte2 line : 1lina2 2. An(lise 1. Verificar no 1+onte2P 1data do +onte2 P 1lina2 especificados no cabealho do erro qual nmero de ndice est sendo utilizado na chamada da funo DbSetOrder(1nu*ero6do64ndice2). 2. Verificar atravs da anlise do 1+onte2 ou do error.log qual a 1tabela2 ativa no momento da execuo da funo DbSetOrder. o Pela anlise do fonte deve ser verificada a ltima ocorrncia da funo DbSelectArea(K1alias2L) ou verificar se a sintaxe utilizada : 1alias2 -> (DbSelectArea(K1alias2L)). o Pela anlise do error.log, deve ser localizado o 1alias2 indicado pelos smbolos -- no incio da 1 Linha das Informaes da Tabela. 1J ?ina C 9n+or*a&es da Tabela Alias Ativo:1--2: somente estar marcando o ALIAS ativo no momento do erro 1ca*ino do arquivo 3 no*e do arquivo2 Alias:1tabela2H Filter : 1e.press"o de +iltro2H Recno: 1n5*ero do re7istro posicionado2H Total Recs: 1total de re7istros na tabela2H Order: 1orde* de 4ndice ativa2 Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 25 3. E.e*plo 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 Trecos do arquivo error.lo7 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 26 M.2.3. 9nvalid !ata T8pe 1. Cabealo do erro Invalid data type on 1ca*po2 in file 1lib de tecnolo7ia2 at line 1lina da lib2 on 1+un"oProtina2(1+onte2) 1data do +onte2 line : 1lina do +onte2 2. 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 1+onte2P 1data do +onte2 P 1lina2 especificados no cabealho do erro qual contedo atribudo ao 1ca*po2 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. 'ari(vel ou Opera"o entre vari(veis# 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. Aetorno de outra +un"o# Determinar atravs da anlise do fonte da funo o que est causando um retorno com um tipo diferente do esperado pelo campo. c. 'alores +i.os# Verificar se o tipo de informao atribuda pela rotina est coerente com o tipo do campo. 4. Atravs da anlise do item K3.L determinar a causa da atribuio incorreta e proceder na correo. 3. E.e*plo 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 27 M.2.). T8pe *is*atc on 1operation2 1. Cabealo do erro Type mismatch on 1opera"o2 on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. An(lise 1. Verificar no 1+onte2P 1data do +onte2 P 1lina2 especificados no cabealho do erro quais variveis esto sendo utilizadas na 1opera"o2 2. 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 1opera"o2 empregado. 3. Analisar o 1+onte2 e/ou 1+ontes2 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 K3.L determinar a causa do contedo incorreto e proceder na correo. 3. E.e*plo 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@ Treco do %onte %9@A1RQ - %A1RQ9M$ 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 Trecos do arquivo error.lo7 .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 28 M.2.,. 'ariable does not e.ist 1. Cabealo do erro Variable does not exist 1vari(vel2 on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. An(lise 1. Verificar no error.log se 1vari(vel2 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 1+un"oProtina2 especificada no cabealho do erro. Escopo Private: deve estar contida na listagem das variveis de uma 1+un"oProtina2 que foi responsvel pela execuo da 1+un"oProtina2 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 K1.L 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 1rotina P+un"o2, caracterizando erro de codificao. 3. Atravs da anlise do item K2.L proceder na correo do erro caracterizado. Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 29 3. E.e*plo 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@@ Trecos do arquivo error.lo7 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. @ota# 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. Treco do %onte %9@AQ,Q - %'EAM9@9M$ 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 30 M.2.M. 'ariable is not 1tipo2 1. Cabealo do erro Variable is not 1tipo2 on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. An(lise 1. Verificar no 1+onte2P 1data do +onte2 P 1lina2 especificados no cabealho do erro quais variveis esto sendo utilizadas na 1+un"oProtina2 2. 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 1tipo2 esperado pela 1+un"oProtina2 3. Analisar o 1+onte2 e/ou 1+ontes2 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 K3.L determinar a causa do contedo incorreto e proceder na correo. 3. E.e*plo 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 Treco do %onte %9@B%/@ C :A?!OT9T 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 Trecos do arquivo error.lo7 ;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 31 M.3. !icas para An(lise de Erros Co*ple.os M.3.1. Arra8 out o+ bounds 1. Cabealo do erro Array out of bounds on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. !icas 1. Arra8 co* conte5do inco*pleto# 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. E.e*plo# 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 32 2. ?i*ites do arra8 e.cedidos# 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. E.e*plo# Array: aValores - Indexador "i aValores := Array(9) For i:= 1 to 10 // Excede o tamanho do array nSoma += aValores[i] Next i M.3.2. %ile is in EO% 1. Cabealo do erro 1Opera"oP$rocesso2 - File is in EOF - 1tabelaParquivo2 in file 1lib de tecnolo7ia2 at line 1lina da lib2 on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. !icas 1. Alias posicionado incorreta*ente 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 33 2. Alias desposicionado por u* trata*ento indevido de u*a custo*i0a"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. M.3.3. Tere is no current 9nde. 1. Cabealo do erro 1ArquivoPTabela2: There is no current index on 1+un"oProtina2(1+onte2) 1data do +onte2 line: 1lina do +onte2 2. !icas 1. /tili0a"o incorreta da +un"o dbCloseArea;= P dbClose9nde.;= 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. 2. %ala na e.ecu"o da +un"o 9ndAe7ua;= 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. Trata*ento incorreto para o a*biente TopConnect 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 34 S. Casos de An(lise S.1. Caso de An(lise :i*ples Cabealo 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@$ 1I $asso# 9nterpreta"o do erro Incorrect syntax near 1te.to2 1select6parcial2 on 1+un"o2 (1+onte2) 1data do +onte2 line : 1lina2 Aonde: 1te.to2 CRAC 1select6parcial2 ;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 1+un"o2 TE"B#CAC 1+onte2 "AT#0!B.PR# 1data do +onte2 03&03&200$ 1lina2 $7@$ Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 35 2I $asso# An(lise do Error.lo7 1. Localizar a varivel que contm a query completa (normalmente cQuery) na funo na qual ocorreu o erro: Treco do arquivo error.lo7 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 3I $asso# An(lise do conte5do da vari(vel 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 " T (apstrofe): ,)_PA&C,LA20 00 AD )I $asso# 9nterpreta"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 36 S.2. Caso de An(lise co* Consulta Cabealo 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 1I $asso# 'eri+icar a lina do +onte 1. Trecho do fonte FINA050.PRX - 25/11/2004: ?inas Cdi7o 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 U &(GetMv("MV_INSS")) !m->e2_tipo U MVINSS 2I $asso# Avaliar conte5do das vari(veis envolvidas na opera"o 1. Variveis da instruo: *-2e26nature0 U V;DetMv;WM'69@::W== 'ari(vel Conte5do m->e2_naturez "branco / vazio MV_INSS 26003 1.1. Origem do contedo da varivel: *-2e26nature0 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.lo7 Conte5do .&/ .&. .&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 37 1.2. Origem do contedo da varivel: M'69@:: Contedo disponvel na tabela SX6 da empresa/filial corrente ou no error.log, caso o ALIAS SX6 esteja posicionado. Error.lo7 Conte5do &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: X*-2e26tipo U M'9@:: 'ari(vel Conte5do m->e2_tipo "DP MVINSS "INS 2.1 Origem do contedo da varivel: *-2e26tipo 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.lo7 Conte5do .&/ .&. .&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 2.2 Origem do contedo da varivel: M'9@:: Contedo disponvel apenas no error.log, para a varivel PUBLICA MVINSS Error.lo7 Conte5do 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 38 3I $asso# !eter*inar a opera"o que *anipulou u* conte5do incorreto 1. Instruo: *-2e26nature0 U V;DetMv;WM'69@::W== 1.1. Interpretao da instruo com os contedos: "branco $ &(26003) "branco $ 26003 1.2. Tipos das variveis envolvidas Caractere $ Numrico 2. Instruo: X*-2e26tipo U M'9@:: 2.1. Interpretao da instruo com os contedos: "DP $ "INS 2.2. Tipos das variveis envolvidas Caractere $ Caractere )I $asso# 9nterpreta"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 2MQQ3 para K2MQQ3L permitindo a correta interpretao do parmetro. Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 39 S.3. Caso de An(lise Co*ple.a Cabealo 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 1I $asso# 'eri+icar a lina do +onte 1. Trecho do fonte ATFA060.PRX - 20.10.2004 ?inas Cdi7o 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 := V;W:@3-2W3aCp!i7itY2ZY1Z= 2I $asso# !eter*inar as opera&es que atribuira* o conte5do ao arra8 1. Funes que devero ser avaliadas, de acordo com o fluxo do error.log: Error.lo7 Conte5do 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 40 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: 1I $onto C A%QMQTAA@: ?inas Cdi7o &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 2I $onto C A%QMQTAA@: ?inas Cdi7o &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 3I $onto C A%QMQTAA@: ?inas Cdi7o &: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 )I $onto C A%QMQTAA@: ?inas Cdi7o &:: 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: Arra8 aCp!i7it 01 U 01 01 C N3_CCONTAB 01 02 C N3_CCORREC 01 03 C N3_CDEPREC 01 04 C N3_CCDEPR 01 05 C N3_CDESP Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 41 Arra8 aCp!i7it 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 3I $asso# !eter*inar as poss4veis situa&es de +ala e* 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. 2I $onto : varivel lCC 1.2. 3I $onto : varivel lItem 1.3. )I $onto : vairvel lClvl Motivo Q1# 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. Motivo Q2# 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. 2I $onto # varivel lCC - contedo: .F. (falso) Error.lo7 Conte5do 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. 3I $onto # varivel lItem - contedo: .F. (falso) Error.lo7 Conte5do 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 42 2.3. )I $onto # varivel lClvl - contedo: .F. (falso) Error.lo7 Conte5do 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) :! )I $asso# 9nterpreta"o da An(lise e $r.i*as 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: Causa do $roble*a# 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. Motivo# 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 P $r.i*os 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 43 S.). Caso de An(lise Espec4+ica# ?ana*entos $adr&es Cabealo 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 1I $asso# !eter*inar o lana*ento padr"o e* e.ecu"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.lo7 Conte5do 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.lo7 Conte5do 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.lo7 Conte5do &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
9*portante# 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 44 2I $asso# Avaliar o conte5do do lana*ento padr"o que 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. 3I $asso# 9nterpreta"o da An(lise e $r.i*as A&es 1. Pela anlise do contedo do campo do ALIAS SI5/CT5 constatou-se o seguinte problema: Causa do $roble*a# 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 P $r.i*os 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 45 [. 9n+or*a&es Co*ple*entares 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. 'ari(veis $ublicas do :iste*a 'ari(vel Tipo !escri"o E.e*plo de Conte5do __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 46 [.2. Estrutura do A*biente $roteus O ambiente Protheus composto basicamente pelos seguintes componentes: G9@\A9O ;G9@=# 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. A$O C Aepositrio de Objetos# 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. TO$CO@@ECT# Ferramenta de comunicao entre o sistema Protheus e os diversos bancos de dados relacionais com os quais o mesmo implementado. [.2.1. Co*ponentes e !ependEncias G9@\A9O ;G9@= Define as verses de RPO compatveis (datas de disponibilizao); Define as verses de TOPCONNECT compatveis (Builds do Topconnect). A$O C Aepositrio de Objetos Depende da verso do BIN (BUILD) do Protheus em uso. TO$CO@@ECT Depende da verso do BIN (BUILD) do Protheus em uso. A vers"o do G9@ ;G/9?!= do $roteus de+ine quais datas de disponibili0a"o de A$Os e quais vers&es ;G/9?!s= do TopConnect deve* ser utili0adas. Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 47 [.2.2. %or*as de Atuali0a"o dos Co*ponentes G9@\A9O ;G9@= Disponibilizao de nova BUILD (Server e Remote). A$O C Aepositrio de Objetos Disponibilizao de novo Repositrio; Disponibilizao de updates; Disponibilizao de patches; Aplicao de patches emergenciais. TO$CO@@ECT Disponibilizao de nova BUILD. Material de Apoio Treinamento: Infra-Estrutura Protheus Mdulo 03: Anlise de Eventos de Erro Pgina 48 R. Ae+erEncias R.1. Material /tili0ado 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 R.2. Colaboradores Equipe do ACR.N2 Equipe do ACR.N1 Equipe do Desenvolvimento