Re: RPG Service Program vs Include Source for Shared Subprocedures and SQL Calls
Richard Schoen <richard-DiTrGpQEJGItADg8e/3/[email protected]> Sat, 21 Mar 2026 14:54:09 +0000
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <[email protected]> |
This use case definitely makes sense to me. So are you saying when you make a sub procedure call to a service program you can’t see globals from the main program ? I think that was one of the curiosity questions I had outstanding. Regards, Richard Schoen Web: http://www.richardschoen.net Email: [email protected] ----------------------- message: 4 date: Sat, 21 Mar 2026 15:20:27 +0100 from: Marco Facchinetti <[email protected]> subject: Re: RPG Service Program vs Include Source for Shared Subprocedures and SQL Calls Most of the time the correct solution is *Srvpgm, but there are rare exceptions where it may be preferable to use the copy version. An example in (our) real life is the invoice printing program: since we serve multiple customers and each has a specific version that shares 90% of the code with the others, the use of copies solved the problem of maintaining a common structure and having specific functionality. Each shared routine or function contained in the copied members makes one or more calls to custom routines/functions at fixed points (start, body, and end). The return code of these calls determines whether or not to execute the corresponding code in the standard function. This allows custom code to replace or supplement the shared code. I haven't found a simple way to do this using service programs, especially since functions and routines in copied members make perfectly legitimate use of the main program's "global" variables. The problem with this kind of management where 90% of the code of a program is not in the main source is that RDi cannot handle it, this is the reason why I uploaded this idea: https://ideas.ibm.com/ideas/IBMI-I-4740 -- 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.