NAT0012 and error line not in program (use of NOC)

Hello,

After migration to natural 8.2, we have , sometimes, one error NAT0012 in some programs
This error is intercepted by “on error” but the line number is not in th pgm
(By example, error line 17, 35, … and line pgm is 10,20,30,…)
I think this is related to the use of NOC but I can not make the link with the option recompiling +PGEN,TSTMT = ON
How find the line with PGEN ?
Anyone know how it NAT0012 error occurs? [on example if possible because i don’t understand the natural documention about this]

Brgds

Hi,

Have you tried to switch off optimizer to be certain if it has any to do with optimizer?

Best regards,
Mogens

Hi,

Thank’s for your response
I found for natural line
This line does not match the program, but the map
Remains the problem of NAT0012
Code is
FORMAT PS=021 LS=080 ZP=OFF SG=OFF KD=ON IP=OFF
INPUT ( IP=OFF HE=‘HPTRXMPR’ /*
)
It’s the Input line who, sometimes, causing error
This map have not changed for a long time
Since migration to NAT 8.2 we have, from time to time, this error
Why ?

Brgds

Could we see the rest of the INPUT statement, as well as the statement immediately after the INPUT statement.

Hi,

Ok for the code of entire map


* MAP2: PROTOTYPE                                                       
* INPUT USING MAP 'XXXXXXXX'                                            
*     +DATGREG +USER-ID £M-CHOIX £M-ENVIRON £M-MAP-TITRE £M-NEW-TRAN    
DEFINE DATA PARAMETER                                                   
1 +DATGREG (A007)                                                       
1 +USER-ID (A008)                                                       
1 £M-CHOIX (A002)                                                       
1 £M-ENVIRON (A015)                                                     
1 £M-MAP-TITRE (A060)                                                   
1 £M-NEW-TRAN (A008)                                                    
END-DEFINE                                                              
FORMAT PS=021 LS=080 ZP=OFF SG=OFF KD=ON  IP=OFF                        
* MAP2: MAP PROFILES *****************************        410***********
* .TTAAAMMOO   D I D I N D I D I        ?_)^&:+(   'HPTRXMPR'          *
* 023080        N1YNUCN             X        01 SYSPROF YL           ? *
************************************************************************
INPUT          (     IP=OFF      HE='HPTRXMPR'                        /*
                                                                       )
 001T +USER-ID  (AD=ODL ) /*.01U008 A008 .                              
  032T £M-ENVIRON  (AD=OD ) /*.01U015 A015 .                             
  073T +DATGREG  (AD=OD ) /*.01U007 A007 .                               
 /                                                                       
  009T £M-MAP-TITRE  (AD=OI ) /*.01U060 A060 .                           
  073T *TIME  (AD=OD AL=005  ) /*.01S005 A010 .                          
 /                                                                       
 /                                                                       
 /                                                                       
 /                                                                       
 /                                                                       
  005T '1'                                                               
  008T '==>'                                                             
  013T 'GPS'                                                             
  019T ': GENERAL PURPOSE SYSTEM'                                        
 /                                                                       
  005T '2'                                                               
  008T '==>'                                                             
  013T 'CCS'                                                             
  019T ': CENTRAL CONTROL SYSTEM'                                        
/                                                                       
 005T '3'                                                               
 008T '==>'                                                             
 013T 'MACH'                                                            
 019T ': MAINTENANCE ACTIVITY CONTROL AND HISTORY'                      
/                                                                       
 005T '4'                                                               
 008T '==>'                                                             
 013T 'MICS'                                                            
 019T ': MODIFICATION AND INSPECTION CONTROL SYSTEM'                    
/                                                                       
 005T '5'                                                               
 008T '==>'                                                             
 013T 'PCS'                                                             
 019T ': PRODUCTION CONTROL SYSTEM'                                     
/                                                                       
 005T '6'                                                               
 008T '==>'                                                             
 013T 'WCS'                                                             
 019T ': WORK CARD SYSTEM'                                               
/                                                                        
 005T '7'                                                                
 008T '==>'                                                              
 013T 'WIS'                                                              
 019T ': WORK INSTRUCTION STOREHOUSE'                                    
/                                                                        
/                                                                        
/                                                                        
/                                                                        
/                                                                        
/                                                                        
 002T £M-CHOIX  (AD=MDT'_' ) /*.99U002 A002 .                            
 005T 'SELECT LINE NBR'                                                  
/                                                                        
/                                                                        
 001T 'COMMAND :'                                                        
 011T £M-NEW-TRAN  (AD=MDL'_' ) /*.99U008 A008 .                         
* MAP2: VALIDATION ***************************************************** 
RULEVAR F00*PF-KEY                                                       
INCDIC MLS-CLEAR-KEY                   ;                                 
RULEVAR F00£M-NEW-TRAN                                                   
INCDIC MLS-NEWTRAN                     ;                                 
RULEVAR F01*PF-KEY                                                       
INCDIC MLS-PRIORITY-KEY                ;                                 
* MAP2: END OF MAP ***************************************************** 
END                                                                      

Brgds

Hi Thierry,

The Map should be useful, but what we would need to see is the INPUT USING MAP statement in its entirety, and the statement after the INPUT USING MAP statement

steve

When the error line does not exist in the program where the error i “found”, where the ON ERROR is activated, it is important to notice, that the program where the ON ERROR block is activated, might not be the program where the error occured.
So *ERROR-NR and *PROGRAM, does not tell where the error occured, you need the data on the stack to find the program that is really failing. Have a look in the manual:
“…/nat822mf/pg/pg_furth_appl_err_proc.htm#pg_furth_appl_err_proc_et_prog”

Perhaps a long shot, but I noticed that £M-CHOIX is defined as A2. It looks like this should be a number from 01-07. Do any of the processing rules enforce this? Or is there program code to enforce this?

Are there any statements in the program that might be trying to use £M-CHOIX before it has been validated?

Hi,

Sorry for the delay but August 15 is a holiday in France

To Jesper O.led
Thank’s for your link
Indeed the n0 line corresponded to a command (input) into a map

To Steve Robinson
The £M-CHOIX is enforced by program
Ok tomorrow i post the statment in program

The difficulty of this bug is that
A) It is random
B) It has only been migration NAT.8.22
C) The wording of the error is very vague
“Length adjustment of search variable not possible.”
Where is a "search variable 'in an Input?

Brgds

Hi,

here are the lines requested

MOVE ‘MNGEN-M’ TO £M-NOMMAP
INCLUDE H-RECTIT
INPUT USING MAP ‘MNGEN-M’
*
IF *PF-KEY EQ ‘PF1’ OR *PF-KEY EQ ‘PF13’
REINPUT USING HELP
END-IF

Here, the laste H-RECTIT’s lines
MOVE H-TABLE.TE-DATA(1) TO £TH-6003-DATA
MOVE £TH-6003-TITRE TO £M-MAP-TITRE

Bye
Edit of 08/19/2013
When we have NAT0012 , we have also abend 0C7/AKEA in CICS Region
Unfortunately our cics is configured not to take dump on this code

Brgds

Hello,

This error is associated with a random 0C7 in REVIEW
To fix this one, you must either stop REVIEW or apply zap RNM93001

Pb fixed

Brgds

Thanks for the heads-up, Thierry !