Control Language (CL) has seen many significant enhancements in recent releases. With V5R3, CL was enhanced with structured programming constructs such as DOFOR, DOUNTIL, and DOWHILE and the associated commands ITERATE and LEAVE; SELECT and the associated commands WHEN, OTHERWISE, and ENDSELECT; etc. V5R4 followed with additional enhancements, such as subroutines with the command CALLSUBR and the associated SUBR and ENDSUBR controls; data structures with the support of STG(*DEFINED) variables on the DCL; the ability to define compiler options in the CL source using DCLPRCOPT, etc. V6R1 continues this trend with several significant enhancements that impact the development and problem determination associated with CL applications.
A System i developer recently informed me that after several years of programming, he is finally learning to create commands. I am amazed that many developers have worked many years with the System i and its predecessors, yet have never created a command, but it seems to be very common.
This developer mentioned two areas that have given him trouble, and I was able to help him. First, he wanted to understand how to qualify an object. Second, he wanted to add help text to his command. I have seen this guy's code, and I know that he is very capable. I have no doubt that the commands he produces will be indistinguishable from those IBM ships with i5/OS. Here's the information I gave him. I hope it will be of benefit to many others.