When I modify a program or write a new program, I have gotten into the habit of moving the *ENTRY PLIST to a PI. Normally I don't have a care whether the program is compiled as a OPM or ILE unless I am adding procedure calls to it.
So I have here a little utility program which accepts some parms (from a CMD interface) and does some operations to a file. The parms are defined in a PI, and the program is entirely standalone (no external procedures required), so I originally created it as an OPM. Now many months later I need to alter a couple of lines of code (change some calculations), and the program will not compile:
001300 d USSTLLDPR3 pi *RNF0203 30 THE PROCEDURE CANNOT BE DEFINED WITH DFTACTGRP(*YES). 001400 d InstDate 7s 0
Now the EXTPGM function cannot be added to a PI, and we're at V7.1 so I do not need a PR, though I doubt adding a PR will help. (note - apparently adding the PR does allow it to compile - WTF?!)
So what's IBM's plan here - force me to go back in time and add the PR's for *ENTRY PLISTs defined as PI's, or when compiling main application programs change them to DFTACTGRP(*NO) and risk various overrides and openscopes not working as expected???