× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks all for the info. The simplest fix for my issue is to front-end it with a CMD object. Eliminates all the hassles and covers me for the extra long parm that is an option.

In the combination of tests I did, the omitted parm was always hex zero's. I have to admit I was (pleasantly) surprised at the consistency. But.. not enough to trust running hundreds of times per day in production.

Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power

 
 





From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxx> on behalf of Jon Paris <jon.paris@xxxxxxxxxxxxxx>
Sent: Thursday, March 16, 2017 8:29 AM
To: Midrange-L Midrange-l
Subject: Re: Optional parameters in CLLE
 
The biggest danger with MONMSG is that parameters are passed differently between programs and procedures. Today the routine is written to only handle programs - but what if down the road somebody decides to use it as a bound procedure?

For those readers who don't appreciate the difference I wrote a pice for ITJ recently which you can find here:

https://www.itjungle.com/2017/02/20/guru-parameter-passing-fundamentals-programs-versus-procedures/

https://e5ce463uma323hyvrr4xumqs-wpengine.netdna-ssl.com/wp-content/uploads/2016/12/itj-logo.gif

Guru: Parameter Passing Fundamentals Of Programs Versus Procedures - IT Jungle
www.itjungle.com
In my earlier tip, Fundamentals: Parameter Passing, I discussed the basics of parameter passing and the importance of ensuring that parameter lengths and data types match those expected by the called routine. In this tip I want to go one step further and discuss differences between passing parameters to programs and to procedures. Let’s start


It uses RPG examples but the principals are the same.

Oh - and I'm not sure and don't have time to check - but not all languages pass the minimal parameter descriptors that I think the CEE routines depend upon. Others probably know and hopefully will comment.


Jon Paris

www.partner400.com


Partner400 - Your partner in iSeries education
www.partner400.com
If you are looking for the very best in IBM i* Education, Consulting and Mentoring services you have come to the right place! We are dedicated to helping our ...

www.SystemiDeveloper.com

On Mar 16, 2017, at 9:49 AM, dlclark@xxxxxxxxxxxxxxxx wrote:

"MIDRANGE-L" <midrange-l-bounces@xxxxxxxxxxxx> wrote on 03/15/2017
07:33:45 PM:
I have a couple of processes where I'd like to have one or two optional
parms.

In the past, I've just tried using them in a CHGVAR and monitor for
MCH3601.

But...  I'm wondering if %address() can be used instead.  I think it
would be cleaner.  In my testing, I've seen hex zeros for the %
address of a non-passed parm.  That seems to indicate a *NULL will
be returned.  Since it's consistent and not a garbage address, I
would think I could count on that logoc.

        As hinted at but may not have been made completely clear, %ADDR()
will work in *OMIT situations but will not work in *NOPASS situations. I'm
very content with depending upon MONMSG but since CLLE doesn't have a
built-in function for %PARMS() then others probably prefer to call the LE
routines.

Sincerely,

Dave Clark
--
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331




*********************************************************************************************
This email message and any attachments is for use only by the named
addressee(s) and may contain confidential, privileged and/or proprietary
information. If you have received this message in error, please
immediately notify the sender and delete and destroy the message and all
copies. All unauthorized direct or indirect use or disclosure of this
message is strictly prohibited. No right to confidentiality or privilege
is waived or lost by any error in transmission.
*********************************************************************************************
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.