Encontrei esse artigo de erros Natural na internet outro dia desses, e achei interessante postar. Está em inglês, mas eu comentei em português abaixo de cada item. Abraço!
| NAT0002 |
DEFINE DATA |
No file is available with specified name or number. Probably because the file has not been loaded into the test environment.Arquivo não disponível com o nome ou número especificado. provavelmente porque não foi carregado no teste de ambiente. |
| NAT0009 |
NEWPAGE
EJECT |
Invalid relational operator in relation expression.
If NEWPAGE 14 LINES LEFT the keyword LESS is now required; should read:Operador relacional inválido na expressão de relação.
A palavra LESS é requerida agora em NEWPAGE 14 LINES LEFT; deveria ler:
NEWPAGE IF LESS THAN 14 LINES LEFT
or
NEWPAGE WHEN LESS THAN 14 LINES LEFT
or
NEWPAGE LESS THAN 14 LINES LEFT
|
| NAT0082 |
INCLUDE
COPYCODE |
This error message is issued when a value is entered in the command line, which is neither a Natural command nor the name of a Natural program, contained in the active library or in the library defined as STEPLIB.Esta mensagem de erro acontece quando o valor de entrada na linha de comando, que não é nem comando Natural nem nome de um programa Natural, contém em uma biblioteca ativa ou em uma biblioteca definida como STEPLIB. |
| NAT0111 |
DEFINE DATA |
Error … in line … of data area … processing ….
Commonly caused by a missing free rule not found in PREDICT.Erro… na linha… da área de dados… processando…
Normalmente causada pela falta de uma regra livre não encontrada no PREDICT. |
| NAT0166 |
DEFINE DATA
MOVE |
An invalid definition of the DEFINE DATA statement has been detected.
Probably indexing for MU or element with a PE. Possibly an attempt to load alphanumeric data into a numeric field.
Under Natural 2 a RESET in Reporting Mode was allowed for a user-defined array. You’ll have to add either an (*) or range of occurrences, (1:36), under Natural 3Uma definição inválida da indicação DEFINE DATA foi detectada.
Provavelmente indexando por MU ou elemento com um PE. Possivelmente uma tentativa de carregar um dado alfanumérico em um campo numérico.
No Natural 2 um RESET no Modo Reporting era permitido para vetores definidos por usuários (você). Você terá que adicionar ou um (*) ou uma faixa de ocorrências, (1:36), no Natural 3
RESET +USDIP /* defined as A 31 (1:36)
Was permitted in Natural 2.2+; should look like this under Natural 3:
Era permitido no Natural 2.2+; deveria parecer assim no Natural 3:
RESET +USDIP(*)
|
| NAT0199 |
NAT0199 |
Duplicate label definition.Definição de label duplicada
FIND-IIDM.
FIND FIND-IIDM WITH POLICY-NUMBER = #POL-NUM
IF NO RECORDS FOUND
ESCAPE BOTTOM(FIND-IIDM.)
END-NOREC
Natural is misinterpreting the label and the view name used in the above context. Change the paragraph/label name.
O Natural interpreta mal a label e o nome da view usada no contexto acima.
Mude o nome do parágrafo/label.
FIND-IIDM-POLICY.
FIND FIND-IIDM WITH POLICY-NUMBER = #POL-NUM
IF NO RECORDS FOUND
ESCAPE BOTTOM(FIND-IIDM-POLICY.)
END-NOREC
|
| NAT0229 |
UPDATE
STORE |
Invalid use of WITH clause in UPDATE or STORE statement. This was caused by a STORE statement that included a USING (nnnn) clause. Chris Brown simply removed it.Uso inválido da cláusula WITH na indicação UPDATE ou STORE. Isto é causado por uma indicação STORE que inclui uma cláusula USING (nnnn). Chris Brown simplesmente remove |
| NAT0273 |
DEFINE DATA |
Error É in line É of data area É processing É lda
An error has occurred in a specific line of a data area while processing a variable. Probably a security problem (not authorized to use file) for a file defined in an external LDA.
A missing free rule could also cause this error.Um erro ocorreu numa linha específica da área de dados enquanto processava a variável. Provavelmente um problema de segurança (não autorizado a usar o arquivo) para o arquivo definido numa LDA externa.
A falta de uma regra livre pode também ter causado esse erro. |
| NAT0274 |
INCLUDE
COPYCODE |
Error É in line É of copycode É processing É
An error has occurred in a specific line of a copycode while processing a variable or the copycode member is not in the current library.
Most of the time this is the result of a missing free rule from PREDICT.Um erro ocorreu numa linha específica de um copycode enquanto processava uma variável ou o membro do copycode não está na bilbioteca atual.
Na maioria das vezes é resultado de uma falta de regra livre do PREDICT. |
| NAT0280 |
RESET |
Index entry incorrectly specified for field. An index was specified for a variable for which indexing is not permitted.Índice de entrada especificada incorretamente para o campo. Um índice foi especificado para uma variável que o índice não é permitido.
IF #LAST-POS LT 19 THEN
RESET #INPUT.#CHAR-ARRAY(#LAST-POS+1:19)
DECIDE FOR EVERY CONDITION
The problem encountered was #CHAR-ARRAY which was defined with only 10 occurrences. Applied the following changes:
O problema encontrado foi #CHAR-ARRAY que foi definida com apenas 10 ocorrências. Foi aplicada as seguintes mudanças:
IF #LAST-POS LT 10 THEN /* 19
RESET #INPUT.#CHAR-ARRAY(#LAST-POS+1:10) /* 19)
|
| NAT0281 |
MOVE |
Index entry missing or invalid for an array.Falta de índice de entrada ou para um vetor inválido.
MOVE +USDIP TO #SDIP
This was an attempt in Reporting Mode to load the first four occurrences of an array into a large field (actually 4 times the size of a single element); made sense in Natural 2 Reporting Mode. Natural 3 does not permit this type of statement. Either redefine the target field to be able to move on an “element” by element level or use a simple loop to process the data:
Esta foi uma tentativa no modo Reporting para carregar as primeiras quatro ocorrências de um vetor dentro de uma campo grande (atualmente 4 vezes o tamanho de um elemento simples); faz sentido no modo Reporting do Natural 2. O Natural 3 não permite este tipo de indicação. Ou redefine o campo indicado para poder mover um elemento por nível de elemento ou simplesmente faça um laço para processar o dado:
DEFINE DATA LOCAL
1 #ARRAY(A10/8)
INIT <'one','two','three','four'>
1 #FIELD(A40)
1 #I(I1)
1 #J(I1) INIT <1>
END-DEFINE
FOR #I 1 4
MOVE #ARRAY(#I) TO SUBSTRING(#FIELD,#J,10)
COMPUTE #J = (#I * 10) + 1
END-FOR
DISPLAY #ARRAY(*) #FIELD
END
|
| NAT0285 |
Line References |
It seems that Natural 3 no longer permits programmers to code line reference numbers with Natural System Variables once permitted in Natural.Parece que o Natural 3 não permite mais que programadores codifiquem números de linha de referência com Natural System Variables uma vez já permitido no Natural.
WRITE 3x *TIME(0470)
/ 3x *TIMN(0470)
/ 3x *TIMD(0430)
In this example, the line references to line 470 are no longer permitted. They never really did anything except provide a form of documentation. However, *TIMD has always required a reference to the SETTIME statement and that hasn’t changed with Natural 3.
Neste exemplo, as linhas que referenciam a linha 470 não é mais permitida. Elas não faziam nada a não ser prover uma forma de documentação. Entretanto, *TIMD sempre necessitou uma referência à indicação SETTIME e isso não mudou com o Natural 3. |
| NAT0291 |
DEFINE DATA |
The format used of a database field is not compatible with the format of the field as defined in the data dictionary. This is probably due to Y2K fixes where an N6 definition is used for an (originally) A6 definition.O formato usado do campo do banco não é compatível com o formato do campo definido no dicionário de dados . Este é provavelmente devido aos reparos do Y2K onde uma definição N6 é usada para uma (originalmente) definição A6.
NAT0291 Format for database field incompatible.
> > + Pro
....+....1....+....2....+....3....+....4
0090 **
0100 **
0110 DEFINE DATA
0120 LOCAL
0130 01 ACTS-CASE-VIEW VIEW OF ACTS-CASE
0140 02 CASE-KEY (A9)
0150 02 PROD-TEST-INDIC (A1)
0160 02 CASE-STATUS-CODE (A1)
0170 02 INSURED-CLAIMANT-INDEX (N2)
0180 02 CLAIM-GROUP-CODE (N1)
E 0190 02 DATE-OF-LOSS (N6)
0200 02 LOSS-LOCATION-CODE (A1)
0210 02 POLICY-ISSUED-COMPANY-CODE (A1)
In the example above it might be more prudent to just leave off the format/length “assignments” letting the program take the definition from the DDM.
No exemplo acima pode ser mais prudente simplesmente ignorar as atribuições de formato/tamanho deixando o programa pegar as definições da DDM. |
| NAT0300 |
MOVE |
Operands are not data transfer compatible.Operandos não são compatíveis para transferência de dados.
2 OCP-FIFTH-DIGITÉP 1.0 (1:2) /* FIELD IN PE
2 OCP-SIX-DIGIT ÉP 1.0 (1:2) /* FIELD IN PE
2 #OCP-SIXTH-DIGIT (P1/1:4)
MOVE OCP-SIX-DIGIT (#VHCL-INDEX) TO
#OCP-SIXTH-DIGIT (#VHCL-INDEX)
Arrays should be equally dimensioned.
Vetores poderiam ser igualmente dimensionados. |
| NAT0384 |
RESET
REDEFINE |
You’ll get this if a field has not been defined somewhere. More often as not you’re got a field missing from an external view (GDA or LOCAL USING) or a redefine is trying to reference a field in an old version of the program (probably a candidate for “retirement”).Você vai obter isso se um campo não for definido em lugar algum. Mais freqüente que não faltar um campo de uma view externa (GDA ou LOCAL USING) ou uma redefinição está tentando referenciar um campo em uma versão antiga de um programa (provavelmente um candidato a aposentadoria). |
| NAT0472 |
DEFINE DATA |
Misuse of a reserved word, for example: 1 COUNT (P5) is incorrect under Version 3.Mal uso de uma palavra reservada, por exemplo: 1 COUNT (P5) é incorreto na versão 3. |
| NAT0918 |
ON ERROR |
ESCAPE (TOP) not allowed in ON ERROR or AT block.This error may be caused by one of the following:
1. An ESCAPE statement was used to exit from a currently active ON ERROR block. However, an ON ERROR block must be exited with a FETCH, STOP, TERMINATE or RETURN statement.
2. An ESCAPE TOP statement was used within one of the following conditions:
3. &endash; AT BREAK
4. &endash; AT START/END OF DATA
ESCAPE (TOP) não é permitido nos blocos ON ERROR ou AT.
Este erro pode ser causado por um dos abaixo:
1. Uma indicação ESCAPE foi usada para sair de um bloco ON ERROR atualmente ativo. Entretanto, um bloco ON ERROR precisa ser deixado com uma indicação FETCH, STOP, TERMINATE ou RETURN.
2. Uma indicação ESCAPE TOP foi usada com uma das seguintes condições: AT BREAK ou AT START/END OF DATA.
2120 ON ERROR DO
2130 IF *ERROR = 3166 OR = 3199 DO
2140 ** WRITE 'BAD RECORD, ISN =' +ISN1
2150 * FETCH 'P16AB72P'
2160 ESCAPE
2170 DOEND /*(2130)
2180 DOEND /*2120)
The ESCAPE in the above example has no loop to exit. Removing the ESCAPE statement may not be the answer unless we can evaluate how the program was originally invoked.
o ESCAPE no exemplo acima não tem laço para sair. remover a linha do ESCAPE pode não ser a resposta a menos que possamos avaliar como o programa foi chamado originalmente. |
| NAT1167 |
Windows |
Invalid window page size (:1:),(4<=ps<=screen)Minimum window depth is 4.
Minimum window width is 9.
This applies to DEFINE WINDOW statements as well as %W window definitions.
Tamanho da página da janela inválido (:1:),(4<=ps<=screen)
Profundidade mínima da janela é 4.
Largura mínima da janela é 9.
Isto aplica para a indicação DEFINE WINDOW bem como definições de janela %W. |
| NAT3144 |
|
The specified ISN was not in ‘hold’ status.
Prior to Natural 2.3, you could use program logic like this:Um ISN espedificado não ficou com status em ‘hold’.
Antes com o Natural 2.3, você poderia usar um lógica de programação assim:
GET RECORD
UPDATE RECORD
END TRANSACTION
UPDATE RECORD
END TRANSACTION
In Natural 3.1.2, the second UPDATE abends with a NAT3144. In order to fix the problem, you must either remove the first ET or GET the record with hold a second time. (Note: I use get in my example, but this applies to any database access statement)
No Narutal 3.1.2, o segundo UPDATE finaliza com um erro NAT3144. Para reparar o problema, você precisa ou remover o primeiro ET ou dar um GET no registro uma segunda vez. (Veja: Eu uso GET no meu exemplo [???], mas isto aplica para todas as instruções de acesso ao banco de dados) |