Is there an easy way to convert all CA 2E RPG sources to RP4?
CA 2E 8.7.x
RPG Generation Library
The below steps leverages CA 2E model object lists and Change Management products, like PTC Implementer or Aldon, to automate the target conversion.
Prerequisites
1. Build initial list: Create a model object list containing all objects.
YBLDMDLLST MDLLST(ALLOBJLST)
2. Filter for RPG functions: Select external functions with generation language RPG.
YFLTMDLLST MDLLST(ALLOBJLST) OUTLST(EXTRPGFUNL) OBJNAM((*ALL *ALL *FUN)) GENATR(*EXTFUN) OBJATR(RPG)
3. Verify list: Review the filtered list to ensure accuracy.
YEDTMDLLST MDLLST(EXTRPGFUNL)
4. Check out objects: Check out the objects to a change list (e.g. RPGIMPLST) using your Change Management tool (Option 28 in YEDTMDLLST).
5. Mass update target: Execute the following SQL commands against the model to update the generation attribute and message data attributes to RP4.
Warning: The following commands perform direct SQL updates on model files. Ensure you have a valid backup.
/* Update Model Object Reference for Date/User */YEXCMDLLST MDLLST(RPGIMPLST) ERRLVL(*NONE) RQSDTA('YRUNSQL STMT(''UPDATE YMDLOBJRFP SET (CHGDTE,COMPDTE,CHGUSR) = (DEC(VARCHAR_FORMAT(CURRENT TIMESTAMP,''''YYYYMMDD''''),8,0)-19000000, CHGDTE, ''''[USER_ID]'''') WHERE @@OBJ=&Y@ and OBJATR=''''RPG'''' '')')
/* Update Model Object Reference for Time/Attribute */YEXCMDLLST MDLLST(RPGIMPLST) ERRLVL(*NONE) RQSDTA('YRUNSQL STMT(''UPDATE YMDLOBJRFP SET (CHGTIM,COMPTIM,OBJATR) = (DEC(VARCHAR_FORMAT(CURRENT TIMESTAMP,''''HH24MISS''''),6,0), CHGTIM, ''''RP4'''') WHERE @@OBJ=&Y@ and OBJATR=''''RPG'''' '')')
/* Update Message Data Reference */YEXCMDLLST MDLLST(RPGIMPLST) ERRLVL(*NONE) RQSDTA('YRUNSQL STMT(''UPDATE YMSGDTARFP SET OBJATR=''''RP4'''' WHERE @@MSG=&Y@ AND OBJATR=''''RPG'''''')')
6. Convert to Job List: Move the updated change list to a job list for generation.
YCVTMDLLST FRMMDLLST(RPGIMPLST) JOBLST(RPGJOBLST) SBMMDLCRT(*NO)
7. Generate and Compile: Submit the job list for generation and compilation. Verify that objects now have the attribute RPGLE.