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

Daniel Gross <[email protected]> Fri, 20 Mar 2026 22:31:14 +0100
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
I also lean heavily toward *SRVPGMs - simply because you can update them without recompiling all programs. 

Example: You find a small error or want to add some functionality in one of your procedures. 

With /COPY or /INCLUDE you will have to recompile everything. With a *SRVPGM you simply recompile and bind this, and the programs will use the new version (after the activation group is "reloaded"). 

HTH
Daniel


> Am 20.03.2026 um 22:21 schrieb Charles Wilt <[email protected]>:
> 
> 99.99% of the time, *SRVPGM is the right way to do it..
> 
> I've heard of, but not run into, circumstances where /INCLUDE executable
> code was needed.
> Some specific security check IIRC.
> 
> Too many places /INCLUDE executable code because they are afraid of and/or
> don't understand *SRVPGMs.
> 
> Charles
> 
>> On Fri, Mar 20, 2026 at 3:13 PM Richard Schoen <[email protected]>
>> wrote:
>> 
>> Hi All,
>> 
>> In the Python, Java and .Net world I usually create Python classes, jar
>> files or DLLs to contain shared functionality.
>> 
>> Because most IBMi shops have an interesting mix of RPG code bases I'm
>> trying to determine whether I should create a service program or use
>> includes for shared functionality at a customer site.
>> 
>> With service programs, write once, bind and use everywhere.
>> 
>> With copy books, just include on-the-fly.
>> 
>> In the past I've leaned towards copybooks, but I'm curious what others
>> think.  I'm a little cautious of burying SQL functionality into one or more
>> service programs.
>> 
>> Real-world thoughts appreciated.
>> 
>> Thanks
>> 
>> Regards,
>> Richard Schoen
>> Web: http://www.richardschoen.net
>> Email: [email protected]<mailto:[email protected]>
>> 
>> --
>> 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.