× 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.




I have an RPGLE program that calls a procedure contained in a module.
The procedure chains to a file and makes a determination based on the
contents of the record being chained to.  The calling program (the one
that calls the RPGLE program just mentioned) uses a job running in batch
to handle its calls.  Therefore, multiple calls are made to the RPGLE
program (and consequently the module) during the life of the job.

I assume you mean that the procedure is in a service program, right? (All ILE programs are made from modules, therefore all code you run is in a module, always.)


What do you mean by "uses a job running in batch to handle it's calls"? Does that mean that it submits a new job with every call? If not, what makes this different from any other call to a program?


The issue is this.  If a chain to the file in the module is successful,
all of the fields from the data file are filled with the appropriate
data.  The module 'returns' to the RPGLE program which ends by setting
LR on.  Now, on any subsequent call to the module (within the same job)
the fields from the data file retain there previous values.  Of course,
once the job is restarted, the variables are re-initialized, and there
is no problem.

Setting on *INLR in one module has no effect on another module. Just as setting on *INLR in one program in RPG III does not cause other programs to end.


So, fields from files declared and chained to in modules retain their
data for the life of the job?  Is this normal behavior or am I just
missing something?

That's why activation groups were created. I like to think of an activation group as being like a box. You can put lots of things in it, and when you're done, you can throw the box away to get rid of them all. :)


Seriously, though... that's what it sounds like you want to do. You want to run a program, have that program run other things, and when the first one you called ends, you want everything to be reset.

So, load them all into an activation group. When you're done, end that activation group and everything will be unloaded.

That's what activation groups are for.


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.