× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



First, let me say that this guy who is telling you how to build service
programs is nuts. Absolutely no sense at all. I have built service programs
for 26 years and have used signatures for that whole time. Cannot think of
any reason not to use them. What I do recommend is a build tool like my
iBuild if you don't have a commercial product like Aldon or Turnover to
build your objects and consume them.

I have used multiple modules for 26 years in both service programs (Not a
lot) and programs (Almost always).

My reason for using them revolves around two information engineering
principles, Encapsulation and Information Hiding.

My goto example is always my standard error handler. It has three modules.

Module One is the Throw module. It has services to throw and rethrow
errors. It uses services exported from modules Two to handle messages.

Module Two is a message handling and storage module. It uses a linked list
to store the messages so it needs global variables to hold the count,
Header Pointer and Tail Pointer.

Module Three is ILE error handling functions.

Now I could just bundle all this into one module but that means I would
have to expose the global variables to the throw code and ILE error
handling code.

So what I want to do is hide those variables from anything except the
message handling functions. So I am Encapsulating Logic and Information
Hiding (Only the Message functions see the global variables). I apply this
principle all the time. When I build a screen, I use multiple modules. Each
screen has one module. I could build one big program but harder to maintain
and have global variables that I would have to name for the screen. The
variables for that screen are hidden in that module.

You can download my standard error handler in any one of my tools like
iBuild(www.sourceforce.org/projects/ibuild) or all of my projects on
www.Think400.Dk/downloads.My trigger Mediator on think400 has screens built
with multiple modules or I could send it to someone.



On Mon, Oct 31, 2022 at 11:54 PM Birgitta Hauser <Hauser@xxxxxxxxxxxxxxx>
wrote:

Hi everybody,

I need some comments/strategies about ILE Concepts.
A company worked since years as follows:
- One Source one Object (Service-Program or Program)
- a Service-Program could include 1 to n (exported and a few internal)
procedures
- Binder Language was used in the way, it was maintained before creating or
updating the service program. (They even had a tool which generated the
binder language automatically by scanning the source)
- The signature was kept static, i.e. Signature Name = Service-Program name
- Even though the signature was static, the previous export blocks are
stored in the binder source just to see what procedures were added.

With this method they could easily add new procedures to service programs
and transfer single service programs from the development system to the
productive system.
In the case of the company they had to implement the application and fixes
on different customer machines. Because the tool was a development tool,
the
customers had to call the exported procedures.
... and until now it worked without problems.

Now a new (java) guy/leader (who knows everything better) came and told
them
everything they did were bullshit.
He wants the following:
- Service-Programs are compiled/bound without binder language (i.e. EXPORT
*ALL)
- After the binder language is retrieved (and the signature get modified,
i.e. ALL SERVICE PROGRAMS will get the SAME NAME, i.e. Company name =
SIGNATURE).
- Then an UPDSRVPGM is performed to include the new Signature in the
Service-Program

- if new procedures are added, again the Service-Program is again created
with EXPORT *ALL, and the binder source retrieved.
- the binder language is retrieved again, and only the signature has to be
changed.

IMHO this cannot work ... at least not without recompiling everything.

Someone can tell me what happens if ALL Service-Programs get the same
signature?
Are the right service-Programs still found or are just ALL service-programs
activated at the same time?
Are the right procedures still called if all Service-Programs have the
right
signature?

What do you think about this new strategy ...and was the old one so silly?

Mit freundlichen Grüßen / Best regards

Birgitta Hauser
Modernization – Education – Consulting on IBM i


"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
„Train people well enough so they can leave, treat them well enough so they
don't want to.“ (Richard Branson)


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

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.