Do I have to make any changes to my 24-bit external programs that are CALLed from VISION:Report 16.1?

Document ID : KB000031082
Last Modified Date : 14/02/2018
Show Technical Document Details

You might need to make changes to 24-bit external programs invoked by VISION:Report 16.1.
VISION:Report 16.1 has been upgraded to run in AMODE=31. All user storage is now also AMODE=31.

To interface with AMODE=24 programs, VISION:Report copies all of the calling parameters to a new AMODE=24 temporary work area for the duration of the CALL to the AMODE=24 program. VISION:Report uses the lengths specified in the calling parameters to allocate the temporary storage. VISION:Report then copies the data from the original parameters to the temporary work area. When control is returned to VISION:Report, the data in the temporary storage is copied back to the original parameters . We call this the 24-bit assist feature.

For this process to work, it is necessary for the length of each parameter passed to the AMODE=24 program to be correctly defined. If the lengths are not correctly specified then the length of parameters in the 31-bit storage area may be INCOMPLETELY copied to the temporary 24-bit storage area. This would probably cause an error in the CALLed program.

To avoid this problem:

Make sure the lengths of all calling parameters to your AMODE=24 program are correctly defined.
This includes adding an ending offset to any parameter fields that don't have one specified. 

OR

Recompile and relink all CALLed external programs to be AMODE=31 

OR

The final alternative is to apply PCP 45 (z/OS) which causes only AMODE=24 storage to user areas.
It should be noted, this will LIMIT the maximum size of user areas.