Leaving Out Parameters

The other way to omit a parameter is to simply leave it out on the call. This must be expected by the called procedure, which means that it must be indicated on the prototype. To indicate that a prototyped parameter does not have to be passed on a call, specify the keyword OPTIONS(*NOPASS) on the corresponding parameter definition. Note that all parameters following the first *NOPASS one must also be specified with OPTIONS(*NOPASS).

You can specify both *NOPASS and *OMIT for the same parameter, in either order, that is, OPTIONS(*NOPASS:*OMIT) or OPTIONS(*OMIT:*NOPASS).

As an example of OPTIONS(*NOPASS), consider the system API QCMDEXC (Execute Command) which has an optional third parameter. To allow for this parameter, the prototype for QCMDEXC could be written as shown in Figure 69.

Figure 69. Prototype for System API QCMDEXC with Optional Parameter
      *-------------------------------------------------------------
      *  This prototype for QCMDEXC defines three parameters:
      *   1- a character field that may be shorter in length
      *      than expected
      *   2- any numeric field
      *   3- an optional character field
      *-------------------------------------------------------------
     D qcmdexc         PR                  EXTPGM('QCMDEXC')
     D   cmd                       3000A   OPTIONS(*VARSIZE)  CONST
     D   cmdlen                      15P 5 CONST
     D                                3A   CONST OPTIONS(*NOPASS)


[ Top of Page | Previous Page | Next Page | Contents | Index ]