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



Jim Wiant wrote:

Thanks a lot for the clarification Barbara.

I want to be clear about FREE - are you referring to /Free (Free Format
RPG)? If so, are you saying that if the call command is within the free
format syntax, it will behave as I expect (i.e. resolving the library
list each call?)


Oops, sorry for the confusion.  No, I mean the FREE opcode in RPG/400:

C          CALL    'PGM001'
C          FREE    'PGM001'
C          CALL    'PGM001'

The ILE RPG behaviour is the same for free-form calls with EXTPGM too. 
You can get around it the same way, by using a variable for EXTPGM, and
using the variable name to call some other program when you want to
re-resolved to your program.

D pgm001        pr          extpgm(pgm001Var)
D   parms ...
D dummy         pr          extpgm(pgm001Var)
D pgm001Var     S      21a
 /free
       pgm001Var = 'DUMMY';
       callp (dummy);
       pgm001Var = 'PGM001';
       callp pgm001 (parms ...);
 /end-free

If you had a subprocedure that handled the first three lines, you could
code 
 /free
       resetPgm001Var ('PGM001');
       callp pgm001 (parms ...);
 /end-free

Or you could have a subprocedure that actually handled the call to
pgm001; it would have the prototypes with the EXTPGMs, and do all the
business with the call to DUMMY.  (This would work fine unless you had
optional parameters.)
 /free
        callp callPgm001 ('PGM001' : parms ...);


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.