Category: <span>FAQs and Tips</span>

It’s no secret that the Integrated Language Environment helps us all write more modular applications. Modules and service programs make it easy to construct programs from several small, easily maintained, reusable chunks of code. We can even create programs composed of several different languages.

Although development using modular chunks is easy, there is a bit of trouble in paradise. You sometimes need to know which application programs use particular modules and service programs. This is especially true when you modify modules and service programs, because you must rebind them to your application programs for the changes to take effect. In the past, there has been no convenient way to determine the modules and service programs your applications use. But now, you can have the Anzilepgm utility do the research and present the information to you.

Q: V5R3 includes a change to the CRTPGM command; for the activation group if the *Entry module is an ILE module, the activation defaults to QILE.

We just had a very significant situation occur with an OPNQRYF in a CLLE program. The RPG program that was called to process the file in the OPNQRYF used to be an ILE program, *CALLER. However, it was not recompiled that way, and essentially ignored the selections made in the OPNQRYF and processed the whole file! This program needs to remain ACTGRP(*CALLER).

Am I correct that if this program were recompiled in activation group QILE, it would still not see the OPNQRYF selections and would still process the whole file?

Q: We are chaining to a file that has two record formats. We use the record format in factor 2 instead of the file name. When we try to use the %FOUND function (or NOT %FOUND), we get an RPG compile error: RNF0394 The parameter is not valid for built-in function %FOUND. Are we doing something wrong? Surely you can use the record format name on the chain?