I have a Nomain *MODULE object to which I added a new procedure.
The *MODULE object is used to create a service program using a binder language source file which already exports a couple of other symbols (procedure names).
So question is, if I add a new procedure name, will the dependant programs need to be re-compiled?
Below is the binder language:
...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8 ...+... 9
*************** Beginning of data ********************************************************
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('MAISV320111003')
/********************************************************************/
/* *MODULE IPLMAI_PR3 IPLPGMD 11/10/03 16:03:18 */
/********************************************************************/
EXPORT SYMBOL("GETMAXAMENDDATETIMEFORMBRSHIPAGR")
EXPORT SYMBOL("GETALLMBRSHPAGRBYUSGDATEANDTERRITORY")
EXPORT SYMBOL("GETMBRSHIPAGREEMENTBYIPCCLSOCRIGHTDATE") --> newly added
ENDPGMEXP
****************** End of data ***********************************************************
Would dependant objects (ones using GETMAXAMENDDATETIMEFORMBRSHIPAGR and GETALLMBRSHPAGRBYUSGDATEANDTERRITORY) need re-compilation ?
Edit: When I do a DSPSRVPGM SRVPGM(IPLPGMA/IPLMAI_SV3) DETAIL(*SIGNATURE) on the dev system, the value I see is the same as the value I see in production.. so I guess no re-compilation needed.
Current best practices...
In order to not need to force a recompile of all callers
It seems you've followed the above, so you should be good.
You could use *PRV and *CURRENT blocks (usually with a SIGNATURE(*GEN)), but it's extraneous noise that doesn't provide any additional value over the above.
If you're new to ILE I highly recommend taking a look at Scott Klement's ILE Concepts (For the Impatient RPG Programmer).