|
Hi Paul, <snip>Would a %Parms check work with *OMIT? You could use *OMIT on a variable in the middle of the parameter list. Does *OMIT force a null pointer for that parameter?
</snip>
*OMIT passes a null pointer, and will count towards %parms.
I've just written this test code:
HOPTION(*NODEBUGIO:*SRCSTMT:*SHOWCPY)
H DFTACTGRP(*NO) ACTGRP('QILE')
*********************************************************************
d testProc pr
d parm1 1a options(*nopass:*omit)
d parm2 1a options(*nopass:*omit)
d parm3 1a options(*nopass:*omit)
d parm4 1a options(*nopass:*omit)
d parm5 1a options(*nopass:*omit)
d var1 s 1a inz('A')
d var2 s 1a inz('B')
d var3 s 1a inz('C')
d var4 s 1a inz('D')
d var5 s 1a inz('E')
**********************************************************************
/free
testProc(var1 :var2 :var3 :var4 :var5);
testProc(var1 :var2 :var3 :var4 :*omit);
testProc(var1 :*omit :var3 :*omit :*omit);
testProc(var1 :*omit :var3 :var4 :*omit);
testProc(var1 :var2 :var3 :*omit :var5);
testProc(var1 :var2 :*omit :var4 :*omit);
*inLR = *on;
return;
/end-free
**********************************************************************
p testProc b
d testProc pi
d parm1 1a options(*nopass:*omit)
d parm2 1a options(*nopass:*omit)
d parm3 1a options(*nopass:*omit)
d parm4 1a options(*nopass:*omit)
d parm5 1a options(*nopass:*omit)
d parms s 10i 0
**********************************************************************
/free
parms = %parms;
dsply %char(parms);
return;
/end-free
**********************************************************************
p testProc e
**********************************************************************
In all calls to testProc the value of %parms is 5.
I am coming to the conclusion that using *OMIT and *NOPASS on a parm needs
careful consideration. Certainly, using %parms just isn't enough.
Cheers Larry Ducie
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.