MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » January 2014

RE: optional parm in CLLE



fixed

Again, you're assuming that you've got a parameter to hold this special
value. When this CL program was written in 1984 (say) no-one anticipated
it would ever need a variable number of parameters.

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Tim Bronski
Sent: Monday, January 27, 2014 11:09 AM
To: Midrange Systems Technical Discussion
Subject: Re: optional parm in CLLE

In that case you'd usually use a special value in the first (or other)
parameter to identify this call as belonging to the "extended" type.

On 1/27/2014 4:56 PM, Briggs, Trevor (TBriggs2) wrote:
This assumes that you know up front that you may have a varying number
of parameters. I suspect in many cases the requirement is to add a new
parameter to an existing CL program without the necessity of changing
every program that calls it.

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Dan Kimmel
Sent: Monday, January 27, 2014 10:51 AM
To: Midrange Systems Technical Discussion
Subject: RE: optional parm in CLLE

The time-honored technique is to pass the number of parameters in the
first parameter.

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of Briggs, Trevor (TBriggs2)
Sent: Monday, January 27, 2014 7:29 AM
To: midrange-l@xxxxxxxxxxxx
Subject: RE: optional parm in CLLE

Barbara,

I have used a similar function in the past (using the "optional"
parameter name in the CHGVAR FROM rather than the TO variable), and I
was unaware of the fact that false positives could occur. I suppose
if
there were a limited number of acceptable values for the parameter
that
you could check against then the chances of "accidentally" finding
ones
of these in a "phantom" parameter would be negligible. But in cases
where the parameter values could be a large number of values it seems
from this thread that IBM gives us NO 100% reliable way of
determining
the number of parameters passed to a CL program. Is that so?

Thanks,

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Barbara Morris
Sent: Friday, January 24, 2014 7:31 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: optional parm in CLLE

On 1/24/2014 8:29 AM, Alan Cassidy wrote:
I just did this:
CHGVAR&VALUE3&PARAMETER3
MONMSG MCH3601 EXEC(DO)
SNDPGMMSG MSG( 'Did not receive 3 parameters') TOPGMQ(*EXT)
ENDDO
ENDPGM

Worked at least.
I just want to make sure that it's clear that this technique should
absolutely never be used.

It often seems to work in testing, but it's almost guaranteed to give
a
false positive at some point, indicating that a parameter was passed
when it wasn't.

What's especially bad about this technique is that if your program
modifies a parameter that was not actually passed, you can cause
bizarre
and unpredictable errors that might show up long after your program
has
returned.

--
Barbara
--






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot 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 here. If you have questions about this, please contact