Re: RPG Service Program vs Include Source for Shared Subprocedures and SQL Calls

Brian Parkins <[email protected]> Sat, 21 Mar 2026 12:33:57 +0000
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
May I humbly suggest the use of "slot numbers" <may> provide added 
flexibility when issuing urgent "fixes" for a particular procedure - to 
support specific *PGM/*SRVPGMs - without the need to rebuild ALL of the 
*PGM/*SRVPGMs that use that procedure, (especially if the parameter list 
has changed.) In other words, an updated *SRVPGM may be applied 
containing both new and old versions of the same procedure to support 
affected and unaffected *PGM/SRVPGMs.

This "buys time" until the next Release/Version, whereupon all of the 
code base using this procedure can be updated to use the fixed procedure.

Regards,
Brian.

On 21/03/2026 11:38, Daniel Gross wrote:
> Yeah - the "late binding" that ILE implements with service programs is strange.
>
> Dynamically resolved service programs, but "statically" resolved procedures with "slot-numbers" instead of procedure signatures grew me some grey hair.
>
> I will never understand, why this decision was made - maybe someone with deeper insight in the development of ILE can clarify this.
>
> Regards,
> Daniel
>
>
>> Am 21.03.2026 um 12:29 schrieb Niels Liisberg <[email protected]>:
>>
>> .. but service program signatures quickly becomes a nightmare for version
>> control.. yes you can … but.. first you had one problem with control the
>> version .. now for each signature you have yet an issue..
>>
>> Been there - done that.. never again…
>>
>>> lør. 21. mar. 2026 kl. 18.21 skrev Brian Parkins <[email protected]>:
>>>
>>> Even under these circumstances a *SRVPGM <may> provide a solution.
>>>
>>> Multiple versions of the same procedure can co-exist in a single
>>> *SRVPGM, (provided the names are unique). The flexibility of Signatures
>>> and the Export Symbol Table.
>>>
>>> 100% agree that *SRVPGMs are the better option; /COPY and /INCLUDE
>>> should - in the main - be used only for Prototype inclusion, (with /IF,
>>> /DEFINE, etc. as required).
>>>
>>> Brian.
>>>
>>>> On 21/03/2026 05:22, Niels Liisberg wrote:
>>>> The is some exceptions: versioning - where different clients need
>>> different
>>>> versions at a certain point in time.
>>> --
>>> This is the RPG programming on IBM i (RPG400-L) mailing list
>>> To post a message email: [email protected]
>>> To subscribe, unsubscribe, or change list options,
>>> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
>>> or email: [email protected]
>>> Before posting, please take a moment to review the archives
>>> at https://archive.midrange.com/rpg400-l.
>>>
>>> Please contact [email protected] for any subscription related
>>> questions.
>>>
>>>
>> --
>> This is the RPG programming on IBM i (RPG400-L) mailing list
>> To post a message email: [email protected]
>> To subscribe, unsubscribe, or change list options,
>> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
>> or email: [email protected]
>> Before posting, please take a moment to review the archives
>> at https://archive.midrange.com/rpg400-l.
>>
>> Please contact [email protected] for any subscription related questions.
>>

-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact [email protected] for any subscription related questions.