Home The Company Publications Products Links Tips

Tips, Tricks, and Techniques

Last update: 30 April 2004

CATALL Error Messages With NAT228 Compiler And Their Solutions


NAT0002 No file is available with specified name or number.

NAT0006 ESCAPE statement used when no processing loop active.

NAT0008 Invalid search syntax

NAT0018 Error in construction of arithmetic operand

NAT0027 Error in value specification

NAT0082 Invalid command or object does not exist

NAT0148 Terminate > 0 - 255

NAT0166 Invalid variable definition in DEFINE DATA

NAT0218 Error in DECIDE ON / DECIDE FOR

NAT0226 An empty statement block is not allowed

NAT0273 Error in line of LDA

NAT0274 *ERROR-NR only allowed in ON ERROR statement

NAT0280 Index entry incorrectly specified for field.

NAT0281 Index entry missing or invalid for an array.

NAT0289 Referenced field is not a descriptor

NAT0304 Invalid printer reference number

NAT0340 Invalid tab settings; occupied column overlaid

NAT0344 WRITE TITLE/TRAILER not allowed within condition

NAT0355 Invalid attribute definition for 'AD='

NAT0364 Inconsistent multiple write to same workfile

NAT0384 Explicit format specification required.

NAT0392 Invalid operation with date or time variable

NAT0394 Invalid format specification

NAT0431 Qualifiers must be structure level names

NAT0434 Qualification not unique

NAT0472 NATURAL reserved word

NAT0611 Loop/condition not properly closed

NAT0623 Variable/fld/view must be defined in DEFINE DATA

NAT0630 Error in RESET INITIAL value

NAT0631 Invalid index in arithmetic/ASSIGN

NAT0902 Storage overflow in format buffers

Error Number 011: A syntax/runtime error has occured





NAT0002 No file is available with specified name or number.

  1. The file name was misspelt; or
  2. the file is not defined in the Data Dictionary; or
  3. you are not authorized for access to the file or
  4. the view/LDA is not available in NAT228 environment

Version 2.1.7 Code:

Local        SAM10L10       Library   ICSYR2K       DBID 201 FNR 234
Command
	      	>	+
I T L Name                             F Leng Index/.......
Top - -------------------------------- - ---- --------------------------
  V 1 CENTER-VU                               CENTER 
    2 CTR-NBR                          N 4.0
    .....
    .....	                                	

Version 2.2.8 Solution

Copy the LDA into the YR2K environment

Top Page


NAT0006 ESCAPE statement used when no processing loop active.

The ESCAPE statement may only be used within an active processing loop.

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0008 Invalid search syntax

  1. A field used in a WITH clause must be a descriptor. A group notation is not permitted.
  2. When the ENDING AT clause of a READ statement uses a superdescriptor as the search key, the superdescriptor must be defined with the VIEW in the data area (if present).
  3. When the READ statement is related to DB2, the search variable must be part of the VIEW.

Recommended Action

  1. The LIST FILE command may be used to ascertain whether a field is defined as a descriptor in the Data Dictionary.
  2. Add superdescriptor to the VIEW.

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0018 Error in construction of arithmetic operand

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0027 Errror in value specification

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0082 Invalid command, or object does not exist

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0148 Terminate > 0-255

Version 2.1.7 Code:

3860	* ================================================================
3870	DEFINE SUBROUTINE READ-DATES                                            
3880	READ WORK FILE 1 ONCE #RECVBLS-DATES                                    
3890	AT END OF FILE                                                          
3900	WRITE                                                                   
3910	  'SEVERE ERROR - RECEIVABLES DATES FILE EMPTY. RUN ABORTED.'           
3920	TERMINATE 5016                                                        
3940	END-ENDFILE                                                             
3950	MOVE #RD-BEG-DATE TO #IN-FROM-DATE                                      
3960	MOVE #RD-END-DATE TO #IN-THRU-DATE                                      
3970	END-SUBROUTINE /* READ-DATES (3870)                                     
3980	* ================================================================

Version 2.2.8 Solution

3860	* ================================================================
3870	DEFINE SUBROUTINE READ-DATES                                            
3880	READ WORK FILE 1 ONCE #RECVBLS-DATES                                    
3890	AT END OF FILE                                                          
3900	WRITE                                                                   
3910	  'SEVERE ERROR - RECEIVABLES DATES FILE EMPTY. RUN ABORTED.'           
3920	* TERMINATE 5016                                                        
3930	TERMINATE 99              /*  2.2.8  CHANGE  ERR 148                    
3940	END-ENDFILE                                                             
3950	MOVE #RD-BEG-DATE TO #IN-FROM-DATE                                      
3960	MOVE #RD-END-DATE TO #IN-THRU-DATE                                      
3970	END-SUBROUTINE /* READ-DATES (3870)                                     
3980	* ================================================================


Top Page


NAT0166 Invalid variable definition in DEFINE DATA

The ADABAS Field Definition Table (FDT) was changed, but the LDA.
OR
The DDB (View) was changed, but the LDA.

Version 2.1.7 Code:

LDA definition
2	DMDC-CPON-ISSU-CCYYWK  	 N 4.0	/* THE ISSUE YEAR AND WEEK

Version 2.2.8 Solution - it's a Y2K change!!

LDA definition
2	DMDC-CPON-ISSU-CCYYWK  	 N 6.0	/* THE ISSUE YEAR AND WEEK

Top Page


NAT0218 Error in DECIDE ON/DECIDE FOR

Version 2.1.7 Code:

0890	INPUT WITH TEXT #MSG USING MAP 'IDR22M01'                            
0900	DECIDE FOR FIRST CONDITION                                           
0910	  WHEN *PF-KEY = 'ENTR'                                              
0920	*    
0930	*                                                                    
0940	  WHEN *PF-KEY = 'CLR'                                               
0950	    INCLUDE INV92C00                                                 

Version 2.2.8 Solution

0880  *  no empty DECIDE FOR ...... WHEN ......
0885  *
0890	INPUT WITH TEXT #MSG USING MAP 'IDR22M01'                            
0900	DECIDE FOR FIRST CONDITION                                           
0910	  WHEN *PF-KEY = 'ENTR'                                              
0920	    IGNORE                   /* INSERTED, NO EMPTY WHEN (DS YR2K)    
0930	*                                                                    
0940	  WHEN *PF-KEY = 'CLR'                                               
0950	    INCLUDE INV92C00                                                 

Top Page


NAT0226 An empty statement block is not allowed

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0273 Error in line of LDA

- Error Message Nr. NAT0273 -

Error 0166 in line 0280 of data area SPC30L30 processing OUTL-CLS

As indicated in the error message, an error has occurred in a specific line of a data area while processing a variable.

Version 2.1.7 Code:

NAT0273 Error 0166 in line 0280 of data area SPC30L30 processing OUTL-CLS-CDE. 
>>	+		Subprogram 	SPC30N06	Lib	ICSYR2K 	
      ....+....1....+....2....+....3....+....4....+....5....+.Mode Struct..
  0120*  PERFORMS: NONE                                                       
  0130*   FETCHES: NONE                                                       
  0140*      MAPS: SPD30W02                                                   
  0150*     FILES: OUTLET                                                     
  0160*****************  M A I N T E N A N C E   L O G   *********** 
  0170*  DATE         NAME         CSR          SUMMARY OF CHANGES            
  0180*  09/24/97     D.GERBER     IB96-010     CHANGE TO READ NEW LATE ADJ   
  0190*                                         FILE; ELIMINATE WARNING IF    
  0200	*                                         LATE ADJUSTMENTS EXIST        
  0210	*                                                                       
E 0220	DEFINE DATA                                                             
  0230	  PARAMETER                                                             
  0240	    1 #CTR-NBR              (N4)                                        
  0250	    1 #OUTL-NBR             (N7)                                        
  0260	    1 #INV-NBR              (N5)                                        
  0270	    1 #PARM-RET-CDE         (N4)                                        
  0280	    1 #RESET-INV-FLG        (L)                                         
  0290	  LOCAL  USING SPC30L30                                                 

It is not a version 2.2.8 problem

NAT0166 Invalid variable definition in DEFINE DATA statement.              	   
Local       SPC30L30  	Library	ICSYR2K DBID  201  FNR  234
Command	                                                            
>	+
I T L Name                             F Leng Index/Init/EM/Name/Comment       
Top - -------------------------------- - ---- ---------------------------
  V 1	LATE-VU                                 LATE-ADJUSTMENTS
    2 CTR-NBR                          N 4.0	                                
    2 OUTL-NBR                         N 7.0
E   2 OUTL-CLS-CDE                     A 1           <<= not in DDM/View
    2 PROD-CDE                         A 9

The field is not defined in the DDM/view.

Top Page


NAT0274 *ERROR-NR only allowed in ON ERROR statement

The NATURAL system variable *ERROR-NR, which contains the error number of an error condition, can only be referenced in an ON ERROR condition. It is only available when an error situation has occurred.

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0280 Index entry incorrectly specified for field.

An index was specified for a variable for which indexing is not permitted. Index specifications may only be used when defining/referencing an array. A database array can only be defined for a multiple-value field and for fields within a periodic group. When referencing an array, an index range specification was detected which exceeds the index range defined for one of its dimensions.

Version 2.1.7 Code:

Local          SGD40L00                 Library              ICSYR2K         
Command	                                                
I T L Name                             F Leng Index/Init 
Top - -------------------------------- - ---- ----------
  V 1 GDU-HIST-VU                             GDU-HISTOR
    2 CTR-NBR                          N 4.0	          
    2 TME-EDTN-CDE                     A   1	          
    2 DAY-CDE                          N 1.0	          
E M 2 EDIT-EDTN-CDE                    A 1 (1:191)      <=== ???
    2 EFFT-DTE                         N 8.0	          

Version 2.2.8 Solution

Change the DDM/View (w/MU) or change the LDA (w/o MU)

Top Page


NAT0281 Index entry missing or invalid for an array.

When a multiple-value field or a field within a periodic group is referenced, an index must be specified to indicate the occurrence of the value to be selected. Default indices are created in WRITE or DISPLAY statements based on the setting of the session parameters MC and PC. A variable to be used as a variable index must have been previously defined before it can be used as an index notation. If a non-database field has been defined as an array, an index for each dimension must be specified when referencing the field.

Version 2.1.7 Code:

  1000	1 LATE-VW   VIEW OF LATE-ADJUSTMENTS         /* D.G. 9/97 
  1010	 2 OUTL-NBR                                               
E 1020	 2 DAY-CDE                                                
  1030	 2 TME-EDTN-CDE                                           
  1040	 2 FINANCIAL-RPTING-YRWK                                  
  1050	 2 C*OUTL-ADJUSTMENTS                                     
  1060	 2 ADJ-TYPE (1:99)                                        
  1070	 2 ADJ-QTY  (1:99)                                        

It is not a version 2.2.8 problem

DAY-CDE is no longer PE. The DDM/View was changed, see LATE-ADJUSTMENTS-OLD.

Top Page


NAT0289 Referenced field is not a descriptor.

Be sure that the field is defined as a descriptor in both:

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0340 Invalid tab settings: occupied column overlaid

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0304 Invalid printer reference number

Version 2.1.7 Code:

4410	WRITE (1) TITLE LEFT *PROGRAM 53T 'I C I S'          
4420	  //                                                 
4430	  'REPORT DATE:' *DATU 40T                           
4440	  'AGENT DRAW UPDATE JOURNAL - ACCEPTED TRANSACTIONS'
4450	  115T 'PAGE:' 2X *PAGE-NUMBER(1)                    
4460  SKIP (1) 1                             

Version 2.2.8 Solution

Top Page


NAT0344 WRITE TITLE/TRAILER not allowed within condition

WRITE TITLE/TRAILER and SKIP
SKIP after WRITE TITLE or WRITE TRAILER was always interpreted as the SKIP clause of the WRITE TITLE/TRAILER statement, and notas an independent SKIP statement. However, for this SKIP clause,the syntax of the SKIP statement - including a possiblereport specification - was erroneously allowed.
To avoid possible confusions between independent SKIPstatements and SKIP clauses of WRITE TITLE/TRAILER statements -and to be compatible with NATURAL on other platforms - this errorhas been corrected. Now, SKIP with report specification after WRITE TITLE/TRAILER leads to an error (because a report specification is not allowed within the SKIP clause of a WRITETITLE/TRAILER statement).
If you wish an independent SKIP statement after a WRITETITLE/TRAILER statement, use a semicolon (;) to separate the two statements from one another.
4405  *  
4410	WRITE (1) TITLE LEFT *PROGRAM 53T 'I C I S'          
4420	  //                                                 
4430	  'REPORT DATE:' *DATU 40T                           
4440	  'AGENT DRAW UPDATE JOURNAL - ACCEPTED TRANSACTIONS'
4450	  115T 'PAGE:' 2X *PAGE-NUMBER(1)                    
4460	  ; SKIP (1) 1                   /*   2.2.8          

Example
WRITE (3) TITLE 'title text' SKIP (3) 12 LINES
Previously, NATURAL accepted the above syntax and treated theSKIP as part of the WRITE TITLE statement. Now, NATURAL issues anerror, because a report number must not be specified within theSKIP clause of a WRITE TITLE statement.
To avoid this error, either remove the report specification from the SKIP clause:
WRITE (3) TITLE 'title text' SKIP 12 LINES
or use a semicolon to turn the line into two separate statements:
WRITE (3) TITLE 'title text' ; SKIP (3) 12 LINES

Top Page


NAT0355 Invalid attribut definition for 'AD='

Version 2.1.7 Code:

MOVE (AD=YP) TO #ATTR
MOVE (AD=IY) TO #ATTR

Version 2.2.8 Solution

MOVE (AD=P) TO #ATTR
MOVE (AD=I) TO #ATTR

Top Page


NAT0364 Inconsistent multiple write to same workfile

Version 2.1.7 Code:

1140  WRITE WORK FILE 2 #OUT-REC

Version 2.2.8 Solution

1140	WRITE WORK FILE 2  VARIABLE #OUT-REC     

Top Page


NAT0384 Explicit format specification required.

The FS parameter has been set with a SET GLOBALS statement or GLOBALS command to indicate that no default format/length is to be used. Therefore the format/length of all user-defined variables must be explicitly specified.

Version 2.1.7 Code:

  0100 DEFINE DATA                                                         
  0110 GLOBAL USING SGL00G00                                            
  0120      WITH MAIN-BLK.CUST-RES-BLK                                
  0130 END-DEFINE                                                          
  0140 *                                                                   
E 0150 RESET ##CR-STAT-BLK  ##CR-ACCT-BLK1  ##CR-OUTL-BLK1 ##CR-OUTL-BLK2  
  0160       ##CR-IN-BLK    ##CR-ACCT-BLK2  ##CR-OUTL-BLK3 ##CR-OUTL-BLK4  
  0170 *                                                                   
  0180 MOVE  *PROGRAM  TO  #PROGRAM                                        

Version 2.2.8 Solution

     

Top Page


NAT0392 Invalid operation with date or time variable

Version 2.1.7 Code:


0350 1 #NBR-OF-WKS     (N3)
0360 1 #END-DATE-D     (D)
0370 1 #START-DATE-D   (D)

1000 COMPUTE #NBR-OF-WKS = (#END-DATE-D - #START-DATE-D) / 7


Version 2.2.8 Solution


Create two COMPUTE commands if D-formated fields are used
0340 1 #DAYS             (N7)
0350 1 #NBR-OF-WKS       (N3)
0360 1 #END-DATE-D       (D)
0370 1 #START-DATE-D     (D)

1000 COMPUTE #DAYS =(#END-DATE-D - #START-DATE-D)
1010 COMPUTE #NBR-OF-WKS =( #DAYS / 7)

The first approach seems cleaner and easier, but, we have to have something to complain about and the two step compute is a simple solution.

Top Page


NAT0394 Invalid format specification

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0431 Qualifiers must be structure level names

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0434 Qualification not unique

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0472 NATURAL reserved word

Version 2.1.7 Code:

* allowed
DRAW
BLOCK

Version 2.2.8 Solution

* no longer allowed 
* see NATURAL Reference Manual - keywords and reserved words
* page 283 - Appendix A

Top Page


NAT0611 Loop/condition not properly closed

Version 2.1.7 Code:

      >	+	Program    :	IES99B01	Lib:	LBYR2K  
  	....+....1....+....2....+....3....+....4....+....5....+...MODE:Struct.
0170	*******************************************************************
0180	READ CACC                                                               
0190	  ADD 1 TO #CNT-REC                                                     
0200	  IF CA-ACCT-STAT-CDE = 'I'                                             
0210	    ADD 1 TO #CNT-I               <===== END-IF is missing                                      
0220	*                                                                       
0230	  IF #I = 0     /* CANCELLED                                            
0240	    WRITE (01)                                                          
0250	      11T CA-ACCT-NBR                                                   
0260	      28T 'NO ACCOUNT STOP DATE FOR INACTIVE UNCANCELLED ACCOUNT'       
0270	    ESCAPE TOP                                                          
0280	  END-IF                                                                
0290	*                                                                       
0300	  IF CASSD-ACCT-STP-DTE(#I) = 0      /* BAD DATA - NO ACCT STOP DATE    
0310	    ESCAPE TOP                                                          
0320	  END-IF                                                                
0330	*                                                                       
0340	  IF CASSD-ACCT-STP-DTE(#I) GT 19900630     /* TOO RECENT               
0350	    ESCAPE TOP   
0360	  END-IF                                                                
0370	*                                                                       
0380	  ASSIGN #W-ACCT    = CA-ACCT-NBR                                       
0390	  ASSIGN #W-STOP-DT = CASSD-ACCT-STP-DTE(#I)                            
0400	  ASSIGN #W-CA-ISN  = *ISN(0180)                                        
0410	  WRITE WORK FILE 1 #WORK-REC                                           
0420	  ADD 1 TO #REC-TOT                                                     
0430	*                                                                       
0440	END-READ                                                                
                                                       

Version 2.2.8 Solution

      >	+	Program    :	IES99B01	Lib:	LBYR2K  
  	....+....1....+....2....+....3....+....4....+....5....+...MODE:Struct.
0170	*******************************************************************
0180	READ CACC                                                               
0190	  ADD 1 TO #CNT-REC                                                     
0200	  IF CA-ACCT-STAT-CDE = 'I'                                             
0210	    ADD 1 TO #CNT-I 
0215    END-IF                        <===== END-IF inserted                                      
0220	*                                                                       
0230	  IF #I = 0     /* CANCELLED                                            
0240	    WRITE (01)                                                          
0250	      11T CA-ACCT-NBR                                                   
0260	      28T 'NO ACCOUNT STOP DATE FOR INACTIVE UNCANCELLED ACCOUNT'       
0270	    ESCAPE TOP                                                          
0280	  END-IF                                                                
0290	*                                                                       
0300	  IF CASSD-ACCT-STP-DTE(#I) = 0      /* BAD DATA - NO ACCT STOP DATE    
0310	    ESCAPE TOP                                                          
0320	  END-IF                                                                
0330	*                                                                       
0340	  IF CASSD-ACCT-STP-DTE(#I) GT 19900630     /* TOO RECENT               
0350	    ESCAPE TOP   
0360	  END-IF                                                                
0370	*                                                                       
0380	  ASSIGN #W-ACCT    = CA-ACCT-NBR                                       
0390	  ASSIGN #W-STOP-DT = CASSD-ACCT-STP-DTE(#I)                            
0400	  ASSIGN #W-CA-ISN  = *ISN(0180)                                        
0410	  WRITE WORK FILE 1 #WORK-REC                                           
0420	  ADD 1 TO #REC-TOT                                                     
0430	*                                                                       
0440	END-READ                                                                

Top Page


NAT0623 Variable/fld/view must be defined in DEFINE DATA

If a DEFINE DATA statement is present, all variables/fields to be used must be defined in the DEFINE DATA statement in an LDA, GDA or PDA, which are referenced with the keyword USING in the DEFINE DATA statement.

If this error occurs for a DDM and a DEFINE DATA statement is present, a view of the DDM (and of any database field referenced in the program) must be defined in the DEFINE DATA statement.

Version 2.1.7 Code:


Version 2.2.8 Solution


Top Page


NAT0630 Error in RESET INITIAL value

Version 2.1.7 Code:

* #FIELD2 is redefined
*
RESET INITIAL
      #FIELD1 #FIELD2

Version 2.2.8 Solution

RESET                        /* INITIAL: not with redefined fields
      #FIELD1 #FIELD2

Top Page


NAT0631 Invalid index in arithmetic / ASSIGN

Version 2.1.7 Code:

...
0450	1 #ADDR-REC           /* (A93)
0460	  2 SUBS-ORD-ISN        (N8)  
0470	  2 DDC-EFFT-DTE        (N8)  
0480	  2 DDC-ACTV-STAT-CDE   (A1)  
0490	  2 STR-SEG-GEO         (N7)  
0500	  2 HA-STR-NBR          (N7)  
0510	  2 HA-RM-NBR           (A6)  
0520	  2 HA-STR-FRACTN       (A3)  
0530	  2 C-LST-NME           (A20) 
0540	  2 C-FST-NME           (A20) 
0550	  2 C-INIT-NME          (A1)  
0560	  2 C-CUST-TYP-CDE      (A1)  
0570	  2 C-VIP-FLG           (A1)  
0580	  2 CHA-PH-NBR          (N10) 
...
0620	1 CUST-ADDR VIEW OF CUSTOMER-ADDRESS 
0630	  2 STR-SEG-GEO                      
0640	  2 HA-STR-NBR                       
0650	  2 HA-RM-NBR                        
0660	  2 HA-STR-FRACTN                    
0670	  2 C-LST-NME                        
0680	  2 C-FST-NME                        
0690	  2 C-INIT-NME                       
0700	  2 C-CUST-TYP-CDE                   
0710	  2 C-VIP-FLG                        
0720	  2 CHA-PH-NBR                       
0730	  2 CHA-ADDR-TYP-CDE                 
0740	  2 C*SUBS-DELV-DATA                 
0750	  2 SUBS-DELV-DATA (1:31)         
0760      3 DDC-EFFT-DTE                   
0770	    3 DDC-ACTV-STAT-CDE              
0780	    3 SUBS-ORD-ISN                 
...
1240	      MOVE BY NAME CUST-ADDR TO #ADDR-REC  

Version 2.2.8 Solution

...
0450	1 #ADDR-REC           /* (A93)
0460	  2 W-SUBS-ORD-ISN      (N8)             /* change field name (W-) 0470	  2 W-DDC-EFFT-DTE      (N8)             /* change field name (W-) 
0480	  2 W-DDC-ACTV-STAT-CDE (A1)             /* change field name (W-) 
0490	  2 STR-SEG-GEO         (N7)  
0500	  2 HA-STR-NBR          (N7)  
0510	  2 HA-RM-NBR           (A6)  
0520	  2 HA-STR-FRACTN       (A3)  
0530	  2 C-LST-NME           (A20) 
0540	  2 C-FST-NME           (A20) 
0550	  2 C-INIT-NME          (A1)  
0560	  2 C-CUST-TYP-CDE      (A1)  
0570	  2 C-VIP-FLG           (A1)  
0580	  2 CHA-PH-NBR          (N10) 
...
0620	1 CUST-ADDR VIEW OF CUSTOMER-ADDRESS 
0630	  2 STR-SEG-GEO                      
0640	  2 HA-STR-NBR                       
0650	  2 HA-RM-NBR                        
0660	  2 HA-STR-FRACTN                    
0670	  2 C-LST-NME                        
0680	  2 C-FST-NME                        
0690	  2 C-INIT-NME                       
0700	  2 C-CUST-TYP-CDE                   
0710	  2 C-VIP-FLG                        
0720	  2 CHA-PH-NBR                       
0730	  2 CHA-ADDR-TYP-CDE                 
0740	  2 C*SUBS-DELV-DATA                 
0750	  2 SUBS-DELV-DATA (1:31)          
0760      3 DDC-EFFT-DTE                   
0770	    3 DDC-ACTV-STAT-CDE              
0780	    3 SUBS-ORD-ISN                    
...
1240	      MOVE BY NAME CUST-ADDR TO #ADDR-REC                /* move 
1250	      MOVE SUBS-ORD-ISN      (1) TO W-SUBS-ORD-ISN       /* first
1260	      MOVE DDC-EFFT-DTE      (1) TO W-DDC-EFFT-DTE       /* occurency
1270	      MOVE DDC-ACTV-STAT-CDE (1) TO W-DDC-ACTV-STAT-CDE  /* to 

Top Page


NAT0902 Storage overflow in format buffers

Normaly, an overflow condition occured in the buffer (USIZE) used to store format buffers which define the fields to be read from the database. The default size is 32K. Since NATURAL 2.2 it is possible to customize USIZE from 8K - 64K. The format buffer length for ADABAS created by NATURAL cannot be longer than 2K (2,048 bytes).

Primarily, there are two ways to minimize this format buffer length:

Version 2.1.7 Code:

0920	     2  AGF-DRW-HIST-GRP        (1:48)        /* ADABAS field AA  
0930	        3 ADH-NET-CHG-QTY                     /* ADABAS field AB         
0940	        3 ADH-NET-CHG-RUN-DTE                 /* ADABAS field AC

NATURAL creates from this definition for ADABAS the following format buffer with the values field name, length, data format: FB='AB1,010,A,AB2,010,A,AB3,010,A,.........AB48,010,A,AC1,020,U,AC2,020...' This way to define occurences of PE groups, multiple fields, or both causes a huge format buffer length.

Version 2.2.8 Solution

0920	     2  AGF-DRW-HIST-GRP                     /* ADABAS field AA  
0930	        3 ADH-NET-CHG-QTY       (1:48)       /* ADABAS field AB   
0940	        3 ADH-NET-CHG-RUN-DTE   (1:48)       /* ADABAS field AC  
NATURAL creates from this definition for ADABAS the following format buffer with the values field name, length, data format: FB='AB1-48,010,A,AC1-48,020,U.'
You see, there are less bytes in the format buffer.
This is not a change in NAT228, this was and is just an awkward application. So don't define the number of occurences at the first level of a field definition.

Top Page


Error Number 011: A syntax/runtime error has occured

Invalid format combination in a relational expression.

Version 2.1.7 Code:

A processing rule in a map - "&" means the value of an input field
0060      IF *PF-KEY = 'ENTR'
0070         IF & NE 0
0080            HIST1. HISTOGRAM ZIP-VIEW ZIP & &
0090            END-HISTOGRAM
0100            IF *COUNTER(HIST1.) = 0
0110               REINPUT *63 MARK *&
0120            END-IF
0130         END-IF
0140      END-IF

Version 2.2.8 Solution

0060      IF *PF-KEY = 'ENTR'
0070         IF & NE 0
0080            HIST1. HISTOGRAM ZIP-VIEW ZIP &    /* <=== just one &
0090            END-HISTOGRAM
0100            IF *COUNTER(HIST1.) = 0
0110               REINPUT *63 MARK *&
0120            END-IF
0130         END-IF
0140      END-IF

Top Page



Back to NATURAL Tips, Tricks, Techniques -- Overview