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



On 2011/6/21 8:43 PM, James Lampert wrote:

But when I convert it to ILE, I find that it uses the FREE statement to
deactivate a called MI program.

You could write an OPM RPG program that just does the FREE opcode, and call it from the MI program.

The FREE opcode does two things:
1. it deactivates the called program
2. it causes the RPG program to forget that it had called the program before, so it will re-resolve on the next call

It doesn't sound like you need the second feature, but if you do, you can use call-by-variable, and use the variable to call a dummy program to get the ILE RPG program to forget that it had called the MI program.

Something like this:

D mipgm pr extpgm(pgmname)
D parms
D dummypgm pr extpgm(pgmname)
D pgmname s 10a inz('MIPGM')
/free
mipgm(parms);

// forget that we have called MIPGM before
pgmname = 'DUMMYPGM';
dummypgm(); // this should be very fast running
pgmname = 'MIPGM';

...



As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.