|
Yes, that would work. Until you need to add another parameter... :-)
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 Jeff Young
Sent: Monday, January 27, 2014 11:52 AM
To: Midrange Systems Technical Discussion
Subject: Re: optional parm in CLLE
Easier to rename the original program, add the new parm(s) and
functionality, and then create a new program with the name of the old
that
takes only the parms that the original did and just calls the new
program
with the new parm(s) defaulted to blank/zero/whatever vaule desired.
When a program calls the *old* program, it will not have a problem, and
the
programs that use the new parm will call the new program (you need to
change them anyway to pass the new parm(s).
Jeff Young
Sr. Programmer Analyst
On Mon, Jan 27, 2014 at 11:24 AM, Briggs, Trevor (TBriggs2) <
TBriggs2@xxxxxxxxxxx> wrote:
This logic is sound but seems limited. You're making the assumptionthat
new program PrgZ6 can handle all the new functionality and then callso
PrgZ, but this won't always be the case. The new functionality maybe
entwined in PrgZ's logic that it can't be clinically separated likeat
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
the same time?of
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
parameters in the first parameter. PrgZ6 calls handles the extraextra
parameters and calls PrgZ with four after (or before) handling the
parameters. PrgA and PrgC don't have to change. Having made thatchange
to PrgZ6, you can continue to expand the number of parameters in thenumber
future without extending the wrapping.
-----Original Message-----
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
newof parameters. I suspect in many cases the requirement is to add a
changingparameter to an existing CL program without the necessity of
theevery 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
andfirst 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),
Isuppose
was unaware of the fact that false positives could occur. I
ifcases
there 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
Morrisseemswhere the parameter values could be a large number of values it
determiningfrom this thread that IBM gives us NO 100% reliable way of
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
shouldSent: 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
passedgiveabsolutely never be used.
It often seems to work in testing, but it's almost guaranteed to
a
false positive at some point, indicating that a parameter was
programwhen it wasn't.bizarre
What's especially bad about this technique is that if your program
modifies a parameter that was not actually passed, you can cause
and unpredictable errors that might show up long after your
mailinghas
returned.
--
Barbara
--
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
uselistinformation
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.
It is prohibited for anyone else to disclose, copy, distribute or
theat
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.
If you received this message in error, please notify us immediately
mailingMailAdmin@xxxxxxxxxxx or (800) 284-2006.
**********************************************************
**********************************************************
**********************************************************
******************************
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
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 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 containsinformation
which may be confidential or privileged and is intended only for thethe
individual or entity named above.
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 or************************************************************************
distributed without this disclaimer.
If you received this message in error, please notify us immediately at
MailAdmin@xxxxxxxxxxx or (800) 284-2006.
************************************************************************
************************************************************
list
--
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.
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.