|
This logic is sound but seems limited. You're making the assumption that
new program PrgZ6 can handle all the new functionality and then call
PrgZ, but this won't always be the case. The new functionality maybe so
entwined in PrgZ's logic that it can't be clinically separated like
that. In that case, I suppose it would be better just to make PrgZ6 a
clone of PrgZ with the new functionality added (and maybe move common
functionality to a service program).
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 11:12 AM
To: Midrange Systems Technical Discussion
Subject: RE: optional parm in CLLE
"Wrap" the old program with a new program (or procedure) that handles
the variable. You're going to have to change every program that passes
the new parameter, why not also change the name of the called program at
the same time?
PrgA, PrgB, PrgC all call PrgZ with four parameters. You want to add a
parameter when PrgB calls PrgZ. Have PrgB call PrgZ6 with the number of
parameters in the first parameter. PrgZ6 calls handles the extra
parameters and calls PrgZ with four after (or before) handling the extra
parameters. PrgA and PrgC don't have to change. Having made that change
to PrgZ6, you can continue to expand the number of parameters in the
future without extending the wrapping.
-----Original Message-----I
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of Briggs, Trevor (TBriggs2)
Sent: Monday, January 27, 2014 9:57 AM
To: Midrange Systems Technical Discussion
Subject: RE: optional parm in CLLE
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
ifwas unaware of the fact that false positives could occur. I suppose
seemsthere were a limited number of acceptable values for the parameterthat
you could check against then the chances of "accidentally" findingones
of these in a "phantom" parameter would be negligible. But in cases
where the parameter values could be a large number of values it
determiningfrom this thread that IBM gives us NO 100% reliable way of
givethe 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
ainformation
false positive at some point, indicating that a parameter was passedbizarre
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
has
and unpredictable errors that might show up long after your program
returned.
--
Barbara
--
--
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.
**********************************************************
**********************************************************
**********************************************************
******************************
This message originates from Lincare Holdings Inc. It contains
which may be confidential or privileged and is intended only for theindividual
or entity named above.the
It is prohibited for anyone else to disclose, copy, distribute or use
contents of this message.not to
All personal messages express views solely of the sender, which are
be attributed to Lincare Holdings Inc., and may not be copied ordistributed
without this disclaimer.list
If you received this message in error, please notify us immediately at
MailAdmin@xxxxxxxxxxx or (800) 284-2006.
**********************************************************
**********************************************************
**********************************************************
******************************
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
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.
--
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.
************************************************************************************************************************************************************************************************************
This message originates from Lincare Holdings Inc. It contains information
which may be confidential or privileged and is intended only for the
individual or entity named above.
It is prohibited for anyone else to disclose, copy, distribute or use the
contents of this message.
All personal messages express views solely of the sender, which are not to
be attributed to Lincare Holdings Inc., and may not be copied or
distributed without this disclaimer.
If you received this message in error, please notify us immediately at
MailAdmin@xxxxxxxxxxx or (800) 284-2006.
************************************************************************************************************************************************************************************************************
--
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.
As an Amazon Associate we earn from qualifying purchases.
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.