Are you testing in your procedure to find out if the parameter was omited
BEFORE you try to use it?
For example:
If %Addr(EcisSsn) <> *Null ;
Do stuff with EcisSsn
EndIf ;
Or perhaps using CEETSTA?
If not, that is what is causing your error.
Brian May
Project Lead
Management Information Systems
Garan, Incorporated
Starkville, Mississippi
Young i Professionals
http://www.youngiprofessionals.com
"Smith, Mike" <Mike_Smith@xxxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
05/12/2009 01:56 PM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
"RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
How to use *OMIT and or *NOPASS
I am trying to create a procedure that receives up to 7 parmeters. The
first 2 will always be passed. For the last 5 parms I want to be able
to pass only 1 in any position
So if I have a PR like
P S#CHKUSR B Export
D S#CHKUSR PI N
D UserProfile 10A
D AppSys 5A
D EcisSsn 1A OPTIONS(*OMIT)
D ThrdSsn 1A OPTIONS(*OMIT)
D PrSsn 1A OPTIONS(*OMIT)
D BnkID 1A OPTIONS(*OMIT)
D FedId 1A OPTIONS(*OMIT)
C eval retfield = S#chkusr(USR:DEPT:F1
C :*OMIT:*OMIT:*OMIT:*OMIT)
I might only want to pass BnkID or in my example I only want to pass
ECISSSN.
I have tried combinations of *OMIT, and *NOPASS but I keep getting
pointer not set.
Maybe I can't use *OMIT this way. At any rate, I want to understand it
better.
Thanks
Mike
As an Amazon Associate we earn from qualifying purchases.