Error Log
Error Log
Error Log
Tópicos 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. Definição das Convenções de Texto Utilizadas........................................................................9
4.2. Definição dos tipos de erros....................................................................................................10
4.3. Tipos de erros específicos........................................................................................................12
5. Processos de Análise..........................................................................................................................................14
5.1. Análise Simples........................................................................................................................14
5.2. Análise com Consulta..............................................................................................................14
5.3. Análise Complexa....................................................................................................................15
5.4. Análise de Erros Específicos...................................................................................................15
5.4.1. Análise de Erros na execução de Queries............................................................................................15
5.4.2. Análise de Erros na execução de Lançamentos Padrões.....................................................................16
6. Estudo de Casos.................................................................................................................................................18
6.1. Análise Simples........................................................................................................................18
6.1.1. Invalid Field Name..............................................................................................................................18
6.1.2. Incorrect Sintaxe Near (query)............................................................................................................20
6.2. Análise com Consulta..............................................................................................................22
6.2.1. Argument error....................................................................................................................................22
6.2.2. Index not found....................................................................................................................................24
6.2.3. Invalid Data Type................................................................................................................................26
6.2.4. Type mismatch on <operation>...........................................................................................................27
6.2.5. Variable does not exist.........................................................................................................................28
6.2.6. Variable is not <tipo>..........................................................................................................................30
6.3. Dicas para Análise de Erros Complexos................................................................................31
6.3.1. Array out of bounds.............................................................................................................................31
6.3.2. File is in EOF.......................................................................................................................................32
6.3.3. There is no current Index.....................................................................................................................33
7. Casos de Análise.................................................................................................................................................34
7.1. Caso de Análise Simples..........................................................................................................34
7.2. Caso de Análise com Consulta................................................................................................36
7.3. Caso de Análise Complexa......................................................................................................39
7.4. Caso de Análise Específica: Lançamentos Padrões..............................................................43
8. Informações Complementares...........................................................................................................................45
8.1. Variáveis Publicas do Sistema................................................................................................45
8.2. Estrutura do Ambiente Protheus...........................................................................................46
8.2.1. Componentes e Dependências.............................................................................................................46
8.2.2. Formas de Atualização dos Componentes...........................................................................................47
9. Referências.........................................................................................................................................................48
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 4
Módulo 03: Análise de Eventos de Erro
1. Objetivos
Este documento não tem a pretenção de ser uma referência incontestável para a análise
de eventos de erro, dada as inúmeras possibilidades de combinações que podem tornar
um dos processos de análise aqui descritos ineficaz.
Os arquivos error.log são gerados quando ocorrem não conformidades no sistema para
as quais não existem tratamentos para situações não previstas nas rotinas.
Por esta razão, estes arquivos contêm a exata situação 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 própria aplicação.
Contém a mensagem de erro, detalhando seu tipo e a linha no fonte que o ocasionou.
2- Pilha de Funções
3- Variáveis Public
5- Tabelas
ALIAS da Tabela;
Nome físico 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 conteúdos.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 7
Módulo 03: Análise de Eventos de Erro
[build:7.00.031210A]
[thread 888]
Called from CTR180IMP(CTBR180.PRW) 28/10/2003 line : 789
Called from {|LEND|
CTR180IMP(@LEND,WNREL,CSTRING,ASETOFBOOK,ACTBMOEDA,CSAYCC,NDIVIDE)}
(CTBR180.PRW) line : 203
Called from line : 1519
Called from { || EVAL( BACTION, @LSTOP ),LSTOP := .T., ODLG:END() }
2 (APLIB080.PRW) line : 1519
Called from line : 0
Called from RPTSTATUS(APLIB080.PRW) 04/12/2003 line : 1520
Called from CTBR180(CTBR180.PRW) 28/10/2003 line : 203
Called from __EXECUTE(APLIB090.PRW) 04/12/2003 line : 971
Called from {|| __EXECUTE('CTBR180()','XXXXXXXXXX','BALANC. CC X CTA
','')} line : 2752
Called from line : 0
Called from SIGAADV(SIGAADV.PRW) 23/04/2002 line : 223
Variáveis em uso
Publicas
Publica 1: OMAINWND(O) :O
3 Publica 2: LLEFT(L) :.F.
Publica 3: CUSERNAME(C) :000344 MARCEL
Publica 4: LQUERY(L) :.F.
Publica 5: __MVCOMBOBOX(L) :.T.
Files
p:\ap_data\advs\oficial\sigamat.emp - Alias:SM0; Filter : ; Recno:3;
Total Recs:5; Order:1
Índice (0) :**SIGAMAT M0_CODIGO+M0_CODFIL
Campo 1: M0_CODIGO(C) :01
Campo 2: M0_CODFIL(C) :02
Campo 3: M0_FILIAL(C) :CONDUMAX I I
Campo 4: M0_NOME(C) :CIAFUNDI
Campo 5: M0_NOMECOM(C) :ELETRO METALURGICA CIAFUNDI LTDA
Campo 6: M0_ENDCOB(C) :RD WILQUEM MANOEL NEVES KM 3 5
Neste tópico serão definidos os tipos de erros mais comuns e exemplificadas as situações
aonde os mesmos normalmente ocorrem.
<alias>
<atributo>
<caminho do arquivo + nome do arquivo>
<campos da chave do índice>
<conteúdo>
<data do fonte>
<expressão de filtro>
<fonte>
<função>
<linha>
<nome do campo>
<nome_da_coluna>
<número do campo>
<número do índice>
<número do registro posicionado>
<operação>
<operador>
<ordem de índice ativa>
<select_parcial>
<tabela>
<texto>
<tipo do campo>
<tipo>
<total de registros na tabela>
<variável>
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 10
Módulo 03: Análise de Eventos de Erro
A rotina está definindo um novo alias, normalmente através da função DbUseArea, o qual
já está em uso no sistema.
Argument error
As funções internas do sistema avaliam o tipo das variáveis utilizadas como parâmetros.
Quando o tipo da variável passada como parâmetro para uma dessas funções não condiz
com o tipo pré-definido na função ocorre o erro.
Este tipo de erro pode ocorrer nas mais diversas situações, mas está normalmente
vinculado à:
Retorno incorreto de um Ponto de Entrada para uma variável em uso pela rotina
padrão.
Este tipo de erro é genérico e normalmente de difícil análise, pois o conteúdo das
variáveis do tipo array não é exibido no error.log, tornando necessária uma análise
apurada do fonte para determinar se houve falha na criação, atribuição ou na utilização
do mesmo.
File is in EOF
A rotina está efetuando alguma operação de leitura ou gravação em uma tabela a qual
está em fim de arquivo.
Este é um dos erros mais genéricos, pois está normalmente vinculado a rotinas padrões
customizadas através de pontos de entrada, os quais não restauram o ambiente do
sistema após sua execução.
A rotina está executando uma query através da função TcGenQuery(), a qual está com
um erro na sua estrutura.
Este erro está associado à montagem incorreta dos argumentos da query pela rotina ou a
conteúdos indevidos nos campos das tabelas associadas a query.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 11
Módulo 03: Análise de Eventos de Erro
Importante: O símbolo (’) – “aspas simples” é interpretado pelo banco de dados como
um limitador de campos do tipo caractere. Um campo de uma tabela do sistema não
pode ser preenchido, independente da posição, com este símbolo.
A rotina está selecionando através da função DbSetOrder() um índice que não existe
definido no SINDEX / SIXxxx para o Alias corrente.
Uma situação comum em rotinas que criam índices temporários para manipulação dos
arquivos, ou na utilização do cadastro de Relacionamentos do SigaCTB, pois nos casos
em que o número do índice é superior à 9, o campo na tabela “CTL” deve ser alterado
para duas posições e não ser tratado como “A”, “B” ou afins.
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 situações.
Este erro ocorre na manipulação de campos de tabelas que estão com um tipo de dado
diferente do esperado pelo sistema.
Normalmente vinculado a ambientes de bancos de dados, onde campos data não estão
definidos da tabela de controle do sistema chamada TOP_FIELD.
A rotina está selecionando através da função DbSetOrder() um índice sendo que o Alias
corrente não possui nenhum índice ativo.
A rotina está efetuando uma operação algébrica ou uma comparação nas quais os tipos
de variáveis não são compatíveis.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 12
Módulo 03: Análise de Eventos de Erro
Aparentemente uma situação de erro simples, mas que pode ser causada por:
A rotina está utilizando uma propriedade específica de uma variável ou um objeto, só que
o tipo da variável não condiz com a propriedade utilizada.
Esta situação ocorre devido a inicialização incorreta da variável, com um tipo que não
condizia com o esperado pelo programa. As causas mais comuns deste tipo de erro são
retornos incorretos de Pontos de Entrada e a definição incorreta de parâmetros “MV_” na
tabela SX6.
Os erros específicos tratados neste documento são referentes a duas situações que,
apesar do problema ser sempre focada em um mesmo ponto, a mensagem de erro
exibida pelo Protheus variam em quantidade e formas de interpretação.
Alguns dos tipos de erros mais comuns que se enquadram nesta situação estão listados a
seguir:
A maior parte dos erros referentes à função DETPROVA estão relacionados com
problemas na configuração dos cadastros dos Lançamentos Padrões.
Isto ocorre porque os conteúdos dos campos das tabelas SI5 e CT5, com algumas
restrições, são interpretados por esta função. Desta forma, um conteúdo inválido irá
causar um erro fatal de execução.
Os tipos de erros que normalmente ocorrem por problemas nas configurações dos
Lançamentos Padrões são:
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>
De forma semelhante ao caso anterior, a maior parte dos erros referentes à função
CTRELATION estão relacionados com problemas na configuração dos cadastros dos
Relacionamentos dos Lançamentos Padrões. Caso os campos informados na chave de
índice deste cadastro ou o número do índice esteja inválido, serão normalmente exibidas
as seguintes mensagens de erro:
5. Processos de Análise
Os erros considerados de Análise Simples são aqueles que não necessitam da consulta ao
código fonte, pois todas as informações necessárias podem ser obtidas através da
verificação do error.log e das tabelas do sistema.
Para analise da maioria dos tipos de error.log é necessária uma mínima consulta ao
fonte, para identificar:
Através da análise dos fatores acima, que basicamente se referem à inicialização das
variáveis ou tabelas envolvidas é normalmente possível determinar os seguintes tipos de
erros:
Argument error
Index not Found
Invalid Data Type
Type mismatch on <operador>
Variable does not exist
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 15
Módulo 03: Análise de Eventos de Erro
Ainda nas situações em que o erro está na sintaxe incorreta da query, há a necessidade
do conhecimento mínimo da linguagem SQL e da consulta a características específicas
dos diversos Bancos de Dados para tratamentos de comandos.
2º 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
através da ferramenta TopManager.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 16
Módulo 03: Análise de Eventos de Erro
Esta função interpreta o conteúdo de campos específicos dos cadastros SI5 – SIGACON /
CT5 – SIGACTB, permitindo a execução de funções para retorno de valores.
Para determinar o lançamento / seqüência que ocasionou o erro de execução podem ser
observados os seguintes pontos:
2ª Passo: Normalmente o evento de erro da TRANSLCTA está relacionado com uma das
seguintes ocorrências:
Para esta situação deverá ser avaliada a rotina para determinar a melhor forma
de adequá-la para permitir o uso dos relacionamentos no processo de
contabilização.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 18
Módulo 03: Análise de Eventos de Erro
6. Estudo de Casos
1. Cabeçalho do erro
2. Análise
Linhas de Campos
3. Exemplo
[build:7.00.031210A]
[thread 2308]
Called from FA340COMP(FINA340.PRX) 28/11/2003 line : 349
Called from EXECBROW(MSLIB.PRW) 04/12/2003 line : 534
Called from {|| SETENCH("&COMPENSAR"), ALTERA:=.T.,EXECBROW('FA340COMP',,
3,'SE2',@AENCHO,,'XFILIAL("SE2")','XFILIAL("SE2")')} line : 4470
Called from line : 0
Called from MBRWINDOW(MSLIB.PRW) 04/12/2003 line : 4549
Called from MBROWSE(MSLIB.PRW) 04/12/2003 line : 411
Called from FINA340(FINA340.PRX) 28/11/2003 line : 107
Called from __EXECUTE(APLIB090.PRW) 04/12/2003 line : 971
Called from {|| __EXECUTE('FINA340()','XXXXXXXXXX','COMPENSAçäO CP','')}
line : 2752
Called from line : 0
Called from SIGAADV(SIGAADV.PRW) 23/04/2002 line : 223
...
...
1. Cabeçalho do erro
2. Análise
3. Caso a variável cQuery não seja encontrada ou o conteúdo da variável não for
igual ao <select_parcial> exibido no cabeçalho do erro, deverá ser efetuada
uma consulta ao <fonte> / <linha> / <data do fonte> especificados no
cabeçalho do erro.
3. Exemplo
[build:7.00.040531P]
[thread 2940]
Called from FA190IMP(FINR190.PRX) 26/08/2003 line : 523
Called from {|LEND| FA190IMP(@LEND,WNREL,CSTRING)}(FINR190.PRX) line : 111
Called from line : 1519
Called from { || EVAL( BACTION, @LSTOP ),LSTOP := .T., ODLG:END() }
(APLIB080.PRW) line : 1519
Called from line : 0
Called from RPTSTATUS(APLIB080.PRW) 04/12/2003 line : 1520
Called from FINR190(FINR190.PRX) 26/08/2003 line : 111
Called from __EXECUTE(APLIB090.PRW) 04/12/2003 line : 971
Called from {|| __EXECUTE('FINR190()','XXXXXXXXXX','RELAçäO DE BAIXAS
','')} line : 2752
Called from line : 0
Called from SIGAFIN(SIGAFIN.PRW) 21/08/2001 line : 222
...
Texto da Query
SELECT COUNT(*) ESTORNO FROM SE5020 WHERE E5_FILIAL='04' AND E5_PREFIXO=' '
' AND E5_NUMERO='022212' AND E5_PARCELA=' ' AND E5_TIPO='RC ' AND
E5_CLIFOR='000636' AND E5_LOJA='01' AND E5_SEQ='01' AND E5_TIPODOC='ES' AND
E5_DATA <= '20040709' AND D_E_L_E_T_<>'*'
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 22
Módulo 03: Análise de Eventos de Erro
1. Cabeçalhos do erro
ou
2. Análise
a. Em que momento e com qual conteúdo a variável que ocasionou o erro foi
inicializada. (primeira atribuição de conteúdo).
3. Exemplo
[build:7.00.031002A]
[thread 2492]
Called from FA150GER(FINA150.PRX) 02/09/2003 line : 365
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Analisa conteudo ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
IF Empty(cConteudo)
cCampo:=Space(nTam)
Else
lConteudo := fa150Orig( cConteudo )
IF !lConteudo
RestArea(aGetArea)
Return nRetorno
Else
IF ValType(xConteudo)="D"
cCampo := GravaData(xConteudo,.F.)
Elseif ValType(xConteudo)="N"
cCampo:=Substr(Strzero(xConteudo,nTam,nDec),1,nTam)
Else
cCampo:=Substr(xConteudo,1,nTam)
EndIf
EndIf
EndIf
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 24
Módulo 03: Análise de Eventos de Erro
1. Cabeçalho do erro
2. Análise
3. Exemplo
...
...
...
1. Cabeçalho do erro
Invalid data type on <campo> in file <lib de tecnologia> at line <linha da lib> on
<função/rotina>(<fonte>) <data do fonte> line : <linha do fonte>
2. Análise
3. Exemplo
1. Cabeçalho do erro
2. Análise
a. Em que momento e com qual conteúdo a variável que ocasionou o erro foi
inicializada. (primeira atribuição de conteúdo).
3. Exemplo
Variaveis em uso
Publicas
...
...
1. Cabeçalho do erro
2. Análise
3. Exemplo
Function FVerMinImp(nValor)
Local nVlMinImp := GetNewPar("MV_VL10925",5000)
Local nCond := 0
Local nValSest := ...
Local lContrRet := ...
If lAltera
lAlterNat := .T.
Endif
1. Cabeçalho do erro
2. Análise
a. Em que momento e com qual conteúdo a variável que ocasionou o erro foi
inicializada. (primeira atribuição de conteúdo).
3. Exemplo
...
...
nSaldo := aResult[1]
...
1. Cabeçalho do erro
2. Dicas
Exemplo:
aCampos := {}
If cAlias := “001”
AADD(aCampos,”001_CAMPO01”)
AADD(aCampos,”001_CAMPO02”)
AADD(aCampos,”001_CAMPO03”)
AADD(aCampos,”002_CAMPO01”)
AADD(aCampos,”002_CAMPO02”)
AADD(aCampos,”002_CAMPO03”)
AADD(aCampos,”003_CAMPO01”)
AADD(aCampos,”003_CAMPO02”)
Endif
cCampo := aCampos[3]
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 32
Módulo 03: Análise de Eventos de Erro
aValores := Array(9)
nSoma += aValores[i]
Next i
1. Cabeçalho do erro
2. Dicas
i. Pontos de entrada;
1. Cabeçalho do erro
2. Dicas
7. Casos de Análise
Cabeçalho do erro
Aonde:
<texto> 'RA'
<fonte> MATXFUNB.PRX
<linha> 4754
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 35
Módulo 03: Análise de Eventos de Erro
1. Os campos das tabelas do sistema não podem conter o caracter apóstrofe (‘) pois
o mesmo é interpretado pelos bancos de dados padrão SQL.
Cabeçalho do erro
Linhas Código
m->e2_naturez $ &(GetMv("MV_INSS"))
!m->e2_tipo $ MVINSS
Variável Conteúdo
m->e2_naturez “branco / vazio”
MV_INSS 26003
Error.log Conteúdo
716 AXINCLUI(MATXATU.PRX) 28/10/2004 Param 1: CALIAS(C) : SE2
717 Param 2: NREG(N) : 5000
718 Param 3: NOPC(N) : 3
...
730 Private 1: ATELA(A) :
731 Private 2: AGETS(A) :
...
737 Private 8: E2_NATUREZ(C) :
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 37
Módulo 03: Análise de Eventos de Erro
Error.log Conteúdo
1092 e:\protheus8\protheus_data\systemproducao\sx6020.dbf - Alias:SX6; Filter : ;
Recno:874; Total Recs:2107; Order:1
1093 Indice (0) :**SX60201 X6_FIL+X6_VAR
1094 Campo 1: X6_FIL(C) :
1095 Campo 2: X6_VAR(C) :MV_INSS
1096 Campo 3: X6_TIPO(C) :C
...
1106 Campo 13: X6_CONTEUD(C) :26003
Variável Conteúdo
m->e2_tipo “DP”
MVINSS “INS”
Error.log Conteúdo
716 AXINCLUI(MATXATU.PRX) 28/10/2004 Param 1: CALIAS(C) : SE2
717 Param 2: NREG(N) : 5000
718 Param 3: NOPC(N) : 3
...
730 Private 1: ATELA(A) :
731 Private 2: AGETS(A) :
...
736 Private 7: E2_TIPO(C) :DP
Error.log Conteúdo
30 Variaveis em uso
31 Publicas
32 Publica 1: OAPP(O) :O
...
201 Publica 170: MVTAXA(C) :TX
202 Publica 171: MVTXA(C) :TXA
203 Publica 172: MVIRF(C) :IRF
204 Publica 173: MVINSS(C) :INS
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 38
Módulo 03: Análise de Eventos de Erro
“branco” $ &(26003)
“branco” $ 26003
Caractere $ Numérico
2. Instrução: !m->e2_tipo $ MVINSS
“DP” $ “INS”
Caractere $ Caractere
4º Passo: Interpretação da Análise e Solução
Cabeçalho do erro
Linhas Código
2344 If cOcorren == "03" // Origem
2345 SN4 -> N4_CCUSTO := &("SN3->"+aCpDigit[2][1])
2346 If Len(aCpDigit) >= 3
2347 SN4 -> N4_SUBCTA := &("SN3->"+aCpDigit[3][1])
2348 Endif
2349 If Len(aCpDigit) >= 4
2350 SN4 -> N4_CLVL := &("SN3->"+aCpDigit[4][1])
2351 Endif
2352 Else // Destino
2353 SN4 -> N4_CCUSTO := CUSTBEMCTB
2354 SN4 -> N4_SUBCTA := SUBCCONCTB
2355 SN4 -> N4_CLVL := CLVLCONCTB
Endif
Error.log Conteúdo
8 Called from AF060GRVFIL(ATFA060.PRX) 20/10/2004 line : 1663
9 Called from AF060TRANS(ATFA060.PRX) 20/10/2004 line : 558
10 Called from EXECBROW(MSLIB.PRW) 28/07/2004 line : 647
11 Called from {|| SETENCH("&TRANSFERIR"), ALTERA:=.T.,EXECBROW('AF060TRANS',,
3,'SN3',@AENCHO,,'XFILIAL("SN3")','XFILIAL("SN3")', .F.,.T.)} line : 4721
12 Called from line : 0
13 Called from MBRWINDOW(MSLIB.PRW) 28/07/2004 line : 4839
14 Called from MBROWSE(MSLIB.PRW) 28/07/2004 line : 435
15 Called from ATFA060(ATFA060.PRX) 20/10/2004 line : 55
16 Called from __EXECUTE(APLIB090.PRW) 28/07/2004 line : 719
17 Called from {||
__EXECUTE('ATFA060()','XXXXXXXXXX','TRANSFERêNCIAS','01','&ATUALIZAçõES-
>MOVIMENTOS',1)} line : 2343
18 Called from line : 0
19 Called from MSAPP:RUNAPP(APLIB000.PRW) 28/07/2004 line : 352
20 Called from SIGAADV(APLIB000.PRW) 28/07/2004 line : 734
ATFA060
AF060TRANS
AF060GRVFIL
AF060GRVMOV (cabeçalho do erro)
1º Ponto – AF060TRANS
Linhas Código
109 Local aVar := { { "", "", "", "", "" } } // Somente inicializo
110 Local aCpDigit := { { "N3_CCONTAB", "N3_CCORREC", "N3_CDEPREC", "N3_CCDEPR",
"N3_CDESP", "N3_CCUSTO", "SN1->N1_LOCAL" } }
111 Local oLocal, oCCusto
2º Ponto – AF060TRANS
Linhas Código
185 If lCc
186 Aadd(aTitFolder, CtbSayApro(“CTT”))
187 Aadd(aObjetos, { ,,,,, “CTT”, Bcc })
188 Aadd(aVar, Aclone(aVar[1]))
189 Aadd(aCpDigit, { “N3_CUSTBEM”, “N3_CCCORR”, “N3_CCDESP”, “N3_CCCDEP”,
“N3_CCCDES” })
190 Endif
3º Ponto – AF060TRANS
Linhas Código
192 If lItem
193 Aadd(aTitFolder, CtbSayApro("CTD"))
194 Aadd(aObjetos, { ,,,,, "CTD", bItem })
195 Aadd(aVar, AClone(aVar[1]))
196 Aadd(aCpDigit, { "N3_SUBCCON", "N3_SUBCCOR", "N3_SUBCDEP", "N3_SUBCCDE",
"N3_SUBCDES" })
197 Endif
4º Ponto – AF060TRANS
Linhas Código
199 If lClVl
200 Aadd(aTitFolder, CtbSayApro("CTH"))
201 Aadd(aObjetos, { ,,,,, "CTH", bClVl })
202 Aadd(aVar, AClone(aVar[1]))
203 Aadd(aCpDigit, { "N3_CLVLCON", "N3_CLVLCOR", "N3_CLVLDEP", "N3_CLVLCDE",
"N3_CLVLDES" })
204 Endif
Array aCpDigit
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
01 06 C N3_CCUSTO
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 41
Módulo 03: Análise de Eventos de Erro
Array aCpDigit
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
1. Pela avaliação dos 4 pontos do fonte ATFA060.PRX nos quais o conteúdo do array
aCpDigit é atribuído, os pontos nos quais podem ocorrer falhas são:
Motivo 02: Conforme trecho do fonte ATFA060.PRX entre as linhas 2344 e 2351
estas variáveis não são consideradas na utilização do array aCpDigit.
Error.log Conteúdo
519 AF060TRANS(ATFA060.PRX) 20/10/2004 Param 1: CALIAS(C) : SN3
520 Param 2: NREG(N) : 18806
521 Param 3: NOPC(N) : 3
...
571 Local 29: LCC(L) :.F.
Error.log Conteúdo
519 AF060TRANS(ATFA060.PRX) 20/10/2004 Param 1: CALIAS(C) : SN3
520 Param 2: NREG(N) : 18806
521 Param 3: NOPC(N) : 3
...
572 Local 30: LITEM(L) :.F.
Error.log Conteúdo
519 AF060TRANS(ATFA060.PRX) 20/10/2004 Param 1: CALIAS(C) : SN3
520 Param 2: NREG(N) : 18806
521 Param 3: NOPC(N) : 3
...
573 Local 31: LCLVL(L) :.F.
1. Pela análise do conteúdo das variáveis nos pontos determinados como possíveis
causas do problema estava coerente com a situação de erro, contatou-se a causa do
problema:
Causa do Problema: Foi utilizada uma posição do array aCpDigit que não existe,
pois não foi executada a atribuição de conteúdo do 2º passo, que criaria
aCpDigit[2][1], utilizado na linha 2345 – fonte ATFA060.PRX
Solução / Próximos passos: Deverá ser avaliada a versão mais recente do fonte
ATFA060.PRX, referente ao tratamento do array aCpDigit na função AF060GRVMOV.
Caso o fonte atual já possua o controle adequado, deverá ser aplicada uma patch do
mesmo no RPO no qual ocorre a situação de erro, caso contrário deverá ser aberta
uma solicitação de correção de erro para o fonte.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 43
Módulo 03: Análise de Eventos de Erro
Cabeçalho do erro
Error.log Conteúdo
8 Called from DETPROVA(MATXFUNA.PRX) 22/03/2004 line : 6208
9 Called from FA370PROCESSA(FINA370.PRX) 05/02/2004 line : 1160
10 Called from {|LEND| FA370PROCESSA()}(FINA370.PRX) line : 105
11 Called from line : 43
12 Called from { || EVAL( BACTION, @LEND ),LEND := .T. , ODLG:END() }(MSPROCES.PRW) line : 43
13 Called from line : 0
14 Called from PROCESSA(MSPROCES.PRW) 10/01/2004 line : 45
15 Called from FINA370(FINA370.PRX) 05/02/2004 line : 105
16 Called from __EXECUTE(APLIB090.PRW) 12/05/2004 line : 754
17 Called from MDIEXECUTE(APLIB260.PRW) 03/05/2004 line : 729
2. Avaliar pelo error.log (variável cPadrão) ou através da análise do fonte / rotina, qual
o lançamento padrão executado:
Error.log Conteúdo
380 FA370PROCESSA(FINA370.PRX) 05/02/2004 Param 1: LBAT(L) : .F.
381 Private 1: CCAMPO(C) :E5_DATA
382 Private 2: INCLUI(L) :.T.
...
392 Local 7: CPADRAO(C) :510
Error.log Conteúdo
1510 d:\protheus8\teste_data\dadosadv\ct5010.dbf - Alias:CT5; Filter : ; Recno:218; Total Recs:374;
Order:1
1511 Indice (0) :**CT50101 CT5_FILIAL+CT5_LANPAD+CT5_SEQUEN
1512 Campo 1: CT5_FILIAL(C) :PF
1513 Campo 2: CT5_LANPAD(C) :515
1514 Campo 3: CT5_SEQUEN(C) :101
1515 Campo 4: CT5_DESC(C) :CANCEL PROVISAO CONTAS A PAGAR
1516 Campo 5: CT5_DC(C) :3
1517 Campo 6: CT5_DEBITO(C) :SA2->A2_CONTA
Solução / Próximos passos: Deverá ser avaliada a versão mais recente do fonte
MATXFUNA.PRX, referente ao tratamento do campo CT5_FILIAL na função TRANSLCTA.
Caso o fonte atual já possua o tratamento adequado, deverá ser aplicada uma patch do
mesmo no RPO no qual ocorre a situação de erro, caso contrário deverá ser aberta uma
solicitação de correção de erro para o fonte.
Material de Apoio
Treinamento: Infra-Estrutura Protheus Página 45
Módulo 03: Análise de Eventos de Erro
8. Informações Complementares
Desta forma existem dois grupos de variáveis (Public e Private) utilizados pelo sistema
que podem ser consultados para obter este tipo de informação.
BINÁRIO (BIN):
TOPCONNECT:
BINÁRIO (BIN)
TOPCONNECT
BINÁRIO (BIN)
TOPCONNECT
9. Referências
9.2. Colaboradores
Equipe do ACR.N2
Equipe do ACR.N1
Equipe do Desenvolvimento