TechTip: Take Command of Processing Programs

System Administration
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times
How often have you gone hunting for the originating point of a program to find it is the processor for a command tucked away in a remote corner of an obscure application? Programs called from within other programs are relatively easy to root out by simply scanning source files. When it comes to command source, however, you'll find the name of the "called" program only if the developer was considerate enough to document the code accordingly. Commands with an august pedigree may be relied upon to have the associated processing program clearly indicated, but those of more mundane provenance...

Having been frustrated once too often by the above scenario, I decided to build a List Command Processing Program utility. A number of APIs were pressed into service to get the job done. The QUSLOBJ API finds the commands in a given library and places the results in a user space. The QCDRCMDI API retrieves command information. Finally, the data queue APIs are used to store the details of the commands in two alternate sequences for display via a subfile.

The use of keyed data queues makes re-sequencing a subfile a breeze. In this case, the details can be displayed in command processing program (CPP) order, or--at the touch of a function key--in command order. Fold logic has also been built in to allow other command attributes to be conveniently displayed on an extra line.

Armed with the LSTCPP utility (download), you'll find that the pain of tracking down those elusive processing programs may be a thing of the past, but that's no excuse for not documenting your command source!

For another data queue example, see "Using Data Queues in Subfile Processing" by Kevin Vandever.

--Phil Hope

RPG, Java, SQL, HTML, XML, APIs, Linux...

What's your expertise?
Send your tips to

This email address is being protected from spambots. You need JavaScript enabled to view it.!