You don't even need to use the export keyword to have a procedure available within a service program. If a procedure is only used within a service program I wouldn't even put the export keyword on it.
Another reason for binder source is that if service program SP1 binds to service program SP2 service program SP1 will by default export not only any procedures it contains that are defined with the export keyword but also every procedure exported from SP2. If both of these service programs are in the same binding directory you will get duplicate definition errors when binding to one of the duplicated exports. Using binder source limits this kind of duplication and keeps procedures exported only from the service program you want them exported from.
Rick
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Schmidt, Mihael
Sent: Monday, September 28, 2009 7:08 AM
To: Midrange Systems Technical Discussion
Subject: RE: Binder Source
Limiting exported procedures:
By using the export keyword on the procedure but not putting it in the binder source you have set the scope of the procedure to the service program only. Means that you can call the procedure from any other procedure in the same or other modules IN the serviceprogram but not from OUTSIDE the service program.
This technique only matters if you are using multiple modules in one serviceprogram.
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of David FOXWELL
Sent: Monday, September 28, 2009 1:51 PM
To: Midrange Systems Technical Discussion
Subject: RE: Binder Source
-----Message d'origine-----
De : midrange-l-bounces@xxxxxxxxxxxx
No. Binder source defines the public interface for the service
program.
Thanks, I'm reading Who Knew You Could Do That with RPG IV and wondering why I would use binder source to limit the number of procedures available. Why would you have an exported procedure if it wasn't available? Also, it suggests to use binder source and not use EXPORT(*ALL). I'm confused.
Program code is demand paged so only a small proportion of the program
code will be in main storage at any one time.
Program code is shared between users. All static variables will
require separate storage in each job.
Looked closer at the 2 versions of the program and found in program statistics, static memory size has gone from 19872 to 4441296. Is that worse? That's 223 times more.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
Privileged and Confidential. This e-mail, and any attachments there to, is intended only for use by the addressee(s) named herein and may contain privileged or confidential information. If you have received this e-mail in error, please notify me immediately by a return e-mail and delete this e-mail. You are hereby notified that any dissemination, distribution or copying of this e-mail and/or any attachments thereto, is strictly prohibited.
As an Amazon Associate we earn from qualifying purchases.