When copying a function within a model or using YCPYMDLOBJ, error message PLI0600 FIXEDOVERFLOW at statement 137 in YCPYMSGR3I.
This error message can occur in 2 different situations:
- Copying a function in a model that has model value YPMTGEN set to *MSGID
- Using YCPYMDLOBJ to copy between 2 models both of which have YPMTGEN set to *MSGID
For situation 1:
As well as model value YPMTGEN set to *MSGID, the problem will only occur when copying a function within a model if the library list contains user exit program YPRCMSGR1R. This program may well be present because of YCPYMDLOBJ processing.
To solve this situation, it is only necessary to rename the program YPRCMSGR1R. Once the copying activity is complete, simply rename the program back to its original name so that it can be used for YCPYMDLOBJ processing.
For situation 2:
This problem is specific to copying between models using YCPYMDLOBJ ACTION(*COPY) when both models are using YPMTGEN set to *MSGID.
In the job log for the failed copy, there may be a large number of MCH3401 messages 'Cannot resolve to object YPRCMSGR1R' indicating that program YPRCMSGR1R is missing from the library list. These make the job log extremely large and have misled some clients into believing that the missing program is the cause of the error.
Source for the program YPRCMSGR1R and the files it needs (Y2NLSPP, Y2NLSPL0, Y2MSMPP and Y2MSMPL0) are shipped in the 2E Shipped Source library Y2SYSRC. Once the program is created, the job log for YCPYMDLOBJ will be dramatically reduced but the error 'PLI0600 FIXEDOVERFLOW at statement 137 in YCPYMSGR3I' will remain. Notice also that the presence of the program YPRCMSGR1R can cause the error in situation 1 (see above).
For some clients this workaround has worked:
Note these workarounds are only needed for the *COPY phase not the *PREPASS. It is recommended that YCPYMDLOBJ is run in batch. Using these workarounds, just for the YCPYMDLOBJ *COPY batch job, will not impact your interactive activities.