Discussion:
REXX question
Add Reply
Lopez, Sharon
2018-10-10 18:37:01 UTC
Reply
Permalink
We have a CHANGEMAN REXX exec that issues this:

+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH

but now it is appending the userid to the end:

+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH

Has anyone seen anything like this before? The REXX hasn't changed.

Thank you.


The information in this transmission may contain proprietary and non-public information of BB&T or its affiliates and may be subject to protection under the law. The message is intended for the sole use of the individual or entity to which it is addressed. If you are not the intended recipient, you are notified that any use, distribution or copying of the message is strictly prohibited. If you received this message in error, please delete the material from your system without reading the content and notify the sender immediately of the inadvertent transmission.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-10-10 18:48:02 UTC
Reply
Permalink
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?

Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).

Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lopez, Sharon
2018-10-10 19:06:37 UTC
Reply
Permalink
This is some of the code; I did not write it and I do not know how to code in REXX.

WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?

Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).

Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN


The information in this transmission may contain proprietary and non-public information of BB&T or its affiliates and may be subject to protection under the law. The message is intended for the sole use of the individual or entity to which it is addressed. If you are not the intended recipient, you are notified that any use, distribution or copying of the message is strictly prohibited. If you received this message in error, please delete the material from your system without reading the content and notify the sender immediately of the inadvertent transmission.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lizette Koehler
2018-10-10 21:44:47 UTC
Reply
Permalink
So the first think is to run a trace.

I like the command

Trace I


That will show what things look like before and after.

Then if that does not help, and you have Serena Contract, I might contact them for assistance.

With Chgman, you need to know REXX/CLIST/ISPF processing.

Also when viewing this member - make sure you turn on HILITE for REXX.

Enter HILTE on the command line

Select option for REXX, then on the right side - 3 and / in the next two fields

This may show what is a miss


Lizette
Post by Lopez, Sharon
-----Original Message-----
Lopez, Sharon
Sent: Wednesday, October 10, 2018 12:06 PM
Subject: Re: REXX question
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-----Original Message-----
Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?
Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).
Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
The information in this transmission may contain proprietary and non-public
information of BB&T or its affiliates and may be subject to protection under
the law. The message is intended for the sole use of the individual or entity
to which it is addressed. If you are not the intended recipient, you are
notified that any use, distribution or copying of the message is strictly
prohibited. If you received this message in error, please delete the material
from your system without reading the content and notify the sender
immediately of the inadvertent transmission.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-10-10 22:05:58 UTC
Reply
Permalink
Assuming that the environment is TSO, the OPERATOR(2) operand means do a WTO with routing code 2. My recollection is that the WTO always has the userid appended so the operator can tell where the message came from.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Lizette Koehler <***@MINDSPRING.COM>
Sent: Wednesday, October 10, 2018 5:44 PM
To: IBM-***@listserv.ua.edu
Subject: Re: REXX question

So the first think is to run a trace.

I like the command

Trace I


That will show what things look like before and after.

Then if that does not help, and you have Serena Contract, I might contact them for assistance.

With Chgman, you need to know REXX/CLIST/ISPF processing.

Also when viewing this member - make sure you turn on HILITE for REXX.

Enter HILTE on the command line

Select option for REXX, then on the right side - 3 and / in the next two fields

This may show what is a miss


Lizette
Post by Lopez, Sharon
-----Original Message-----
Lopez, Sharon
Sent: Wednesday, October 10, 2018 12:06 PM
Subject: Re: REXX question
This is some of the code; I did not write it and I do not know how to code in
REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-----Original Message-----
Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?
Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).
Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
The information in this transmission may contain proprietary and non-public
information of BB&T or its affiliates and may be subject to protection under
the law. The message is intended for the sole use of the individual or entity
to which it is addressed. If you are not the intended recipient, you are
notified that any use, distribution or copying of the message is strictly
prohibited. If you received this message in error, please delete the material
from your system without reading the content and notify the sender
immediately of the inadvertent transmission.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Doug Shupe
2018-10-11 00:27:11 UTC
Reply
Permalink
Just a guess, the REXX issues a SEND to the Operator(2) (the default from the send command), next you will need to check if some automation product pulls in the console message and then issues the REAL modify command to do the new copy.

Sounds to me like something changed in the parsing of the message that was sent to the console .
Possibly, you might get lucky and find a automaton rule named CMNNEWCO..

Doug

On Oct 10, 2018, at 18:05, Seymour J Metz <***@GMU.EDU> wrote:

Assuming that the environment is TSO, the OPERATOR(2) operand means do a WTO with routing code 2. My recollection is that the WTO always has the userid appended so the operator can tell where the message came from.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Lizette Koehler <***@MINDSPRING.COM>
Sent: Wednesday, October 10, 2018 5:44 PM
To: IBM-***@listserv.ua.edu
Subject: Re: REXX question

So the first think is to run a trace.

I like the command

Trace I


That will show what things look like before and after.

Then if that does not help, and you have Serena Contract, I might contact them for assistance.

With Chgman, you need to know REXX/CLIST/ISPF processing.

Also when viewing this member - make sure you turn on HILITE for REXX.

Enter HILTE on the command line

Select option for REXX, then on the right side - 3 and / in the next two fields

This may show what is a miss


Lizette
Post by Lopez, Sharon
-----Original Message-----
Lopez, Sharon
Sent: Wednesday, October 10, 2018 12:06 PM
Subject: Re: REXX question
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-----Original Message-----
Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?
Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).
Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
The information in this transmission may contain proprietary and non-public
information of BB&T or its affiliates and may be subject to protection under
the law. The message is intended for the sole use of the individual or entity
to which it is addressed. If you are not the intended recipient, you are
notified that any use, distribution or copying of the message is strictly
prohibited. If you received this message in error, please delete the material
from your system without reading the content and notify the sender
immediately of the inadvertent transmission.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Doug Shupe
2018-10-11 00:46:55 UTC
Reply
Permalink
Another thought, is the batch jobname that runs the REXX CMNBATCH?
Just looking for hints..
Doug

On Oct 10, 2018, at 20:26, Doug Shupe <***@BELLSOUTH.NET> wrote:

Just a guess, the REXX issues a SEND to the Operator(2) (the default from the send command), next you will need to check if some automation product pulls in the console message and then issues the REAL modify command to do the new copy.

Sounds to me like something changed in the parsing of the message that was sent to the console .
Possibly, you might get lucky and find a automaton rule named CMNNEWCO..

Doug

On Oct 10, 2018, at 18:05, Seymour J Metz <***@GMU.EDU> wrote:

Assuming that the environment is TSO, the OPERATOR(2) operand means do a WTO with routing code 2. My recollection is that the WTO always has the userid appended so the operator can tell where the message came from.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Lizette Koehler <***@MINDSPRING.COM>
Sent: Wednesday, October 10, 2018 5:44 PM
To: IBM-***@listserv.ua.edu
Subject: Re: REXX question

So the first think is to run a trace.

I like the command

Trace I


That will show what things look like before and after.

Then if that does not help, and you have Serena Contract, I might contact them for assistance.

With Chgman, you need to know REXX/CLIST/ISPF processing.

Also when viewing this member - make sure you turn on HILITE for REXX.

Enter HILTE on the command line

Select option for REXX, then on the right side - 3 and / in the next two fields

This may show what is a miss


Lizette
Post by Lopez, Sharon
-----Original Message-----
Lopez, Sharon
Sent: Wednesday, October 10, 2018 12:06 PM
Subject: Re: REXX question
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-----Original Message-----
Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?
Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).
Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
The information in this transmission may contain proprietary and non-public
information of BB&T or its affiliates and may be subject to protection under
the law. The message is intended for the sole use of the individual or entity
to which it is addressed. If you are not the intended recipient, you are
notified that any use, distribution or copying of the message is strictly
prohibited. If you received this message in error, please delete the material
from your system without reading the content and notify the sender
immediately of the inadvertent transmission.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Doug Shupe
2018-10-11 01:02:21 UTC
Reply
Permalink
One last question, Changeman related, what release are you 5.3.3 or 8.2 or ?


On Oct 10, 2018, at 20:46, Doug Shupe <***@BELLSOUTH.NET> wrote:

Another thought, is the batch jobname that runs the REXX CMNBATCH?
Just looking for hints..
Doug

On Oct 10, 2018, at 20:26, Doug Shupe <***@BELLSOUTH.NET> wrote:

Just a guess, the REXX issues a SEND to the Operator(2) (the default from the send command), next you will need to check if some automation product pulls in the console message and then issues the REAL modify command to do the new copy.

Sounds to me like something changed in the parsing of the message that was sent to the console .
Possibly, you might get lucky and find a automaton rule named CMNNEWCO..

Doug

On Oct 10, 2018, at 18:05, Seymour J Metz <***@GMU.EDU> wrote:

Assuming that the environment is TSO, the OPERATOR(2) operand means do a WTO with routing code 2. My recollection is that the WTO always has the userid appended so the operator can tell where the message came from.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Lizette Koehler <***@MINDSPRING.COM>
Sent: Wednesday, October 10, 2018 5:44 PM
To: IBM-***@listserv.ua.edu
Subject: Re: REXX question

So the first think is to run a trace.

I like the command

Trace I


That will show what things look like before and after.

Then if that does not help, and you have Serena Contract, I might contact them for assistance.

With Chgman, you need to know REXX/CLIST/ISPF processing.

Also when viewing this member - make sure you turn on HILITE for REXX.

Enter HILTE on the command line

Select option for REXX, then on the right side - 3 and / in the next two fields

This may show what is a miss


Lizette
Post by Lopez, Sharon
-----Original Message-----
Lopez, Sharon
Sent: Wednesday, October 10, 2018 12:06 PM
Subject: Re: REXX question
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-----Original Message-----
Behalf Of Paul Gilmartin
Sent: Wednesday, October 10, 2018 2:48 PM
Subject: Re: REXX question
Post by Lopez, Sharon
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH
+CMNNEWCO F PRODAORB,CEMT SET PROG(DPLDB2IR) PH CMNBATCH
Has anyone seen anything like this before? The REXX hasn't changed.
Is this terminal log? Or TRACE output? Can you post (some of) the Rexx code?
Are you quoting all your strings? Is SIGNAL ON NOVALUE in effect (recommended).
Do I see extreme abbreviations? It's easier for an outsider to read unabbreviated.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
The information in this transmission may contain proprietary and non-public
information of BB&T or its affiliates and may be subject to protection under
the law. The message is intended for the sole use of the individual or entity
to which it is addressed. If you are not the intended recipient, you are
notified that any use, distribution or copying of the message is strictly
prohibited. If you received this message in error, please delete the material
from your system without reading the content and notify the sender
immediately of the inadvertent transmission.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
David Crayford
2018-10-11 03:54:21 UTC
Reply
Permalink
That code looks dodgy!  Unless I'm losing my marbles the test ((APPID <>
'VI01') | (APPID <> 'VI02')) will always be true.
Post by Lopez, Sharon
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
w***@gmail.com
2018-10-10 21:32:52 UTC
Reply
Permalink
I believe this is normal behavior (I just tested it). Are you sure that this did not happen earlier? What happened with the system in between?
Elardus Engelbrecht
2018-10-11 06:25:55 UTC
Reply
Permalink
Post by David Crayford
That code looks dodgy! 
Indeed! If I can, I would test each or some of these comparision statements and set up a true/false flag (my own [new] variable) to be used on the final IF or WHEN statement. Just for easy reading and debugging.
Post by David Crayford
Unless I'm losing my marbles the test ((APPID <> 'VI01') | (APPID <> 'VI02')) will always be true.
It is always true. I have tested it. Only way to skip that DO part is to have SUBSYS <> 'A'.

So, you still have all your marbles. ;-)

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lopez, Sharon
2018-10-11 11:14:59 UTC
Reply
Permalink
The TSO SEND command definitely appends the userid at the end Is there an option to turn that off?

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Elardus Engelbrecht
Sent: Thursday, October 11, 2018 2:26 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: REXX question
Post by David Crayford
That code looks dodgy!
Indeed! If I can, I would test each or some of these comparision statements and set up a true/false flag (my own [new] variable) to be used on the final IF or WHEN statement. Just for easy reading and debugging.
Post by David Crayford
Unless I'm losing my marbles the test ((APPID <> 'VI01') | (APPID <> 'VI02')) will always be true.
It is always true. I have tested it. Only way to skip that DO part is to have SUBSYS <> 'A'.

So, you still have all your marbles. ;-)

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN


The information in this transmission may contain proprietary and non-public information of BB&T or its affiliates and may be subject to protection under the law. The message is intended for the sole use of the individual or entity to which it is addressed. If you are not the intended recipient, you are notified that any use, distribution or copying of the message is strictly prohibited. If you received this message in error, please delete the material from your system without reading the content and notify the sender immediately of the inadvertent transmission.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-10-11 14:44:41 UTC
Reply
Permalink
Post by David Crayford
That code looks dodgy!  Unless I'm losing my marbles the test ((APPID <>
'VI01') | (APPID <> 'VI02')) will always be true.
Vernacular. Some casually say, "if APPID is not V101 or V102", then code
incorrectly ((APPID <> 'VI01') | (APPID <> 'VI02')) when it should be
((APPID <> 'VI01') & (APPID <> 'VI02')). I've even seen such as
APPID <> V101 | V102. Some compilers accept that, with unintended
result.

Hmmm... Is Sharon in Winston-Salem?
Post by David Crayford
Post by Lopez, Sharon
This is some of the code; I did not write it and I do not know how to code in REXX.
WHEN (SUBSYS = 'A') & ((APPID <> 'VI01') | (APPID <> 'VI02'))
THEN DO
"SEND 'CMNNEWCO F "CicsName",CEMT SET PROG("member")",
"PH' OPERATOR(2)"
END
-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
David Crayford
2018-10-12 02:34:09 UTC
Reply
Permalink
Post by Paul Gilmartin
Post by David Crayford
That code looks dodgy!  Unless I'm losing my marbles the test ((APPID <>
'VI01') | (APPID <> 'VI02')) will always be true.
Vernacular. Some casually say, "if APPID is not V101 or V102", then code
incorrectly ((APPID <> 'VI01') | (APPID <> 'VI02')) when it should be
((APPID <> 'VI01') & (APPID <> 'VI02')). I've even seen such as
APPID <> V101 | V102. Some compilers accept that, with unintended
result.
I've found in REXX it's better to use something like:

if wordpos(appid, "VI01 VI02") = 0 then ...

instead of complicated boolean expressions.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
scott Ford
2018-10-12 12:26:20 UTC
Reply
Permalink
David,

That’s a much better approach, I think easier and more readable, imho.

Scott
Post by David Crayford
Post by Paul Gilmartin
That code looks dodgy! Unless I'm losing my marbles the test ((APPID <>
'VI01') | (APPID <> 'VI02')) will always be true.
Vernacular. Some casually say, "if APPID is not V101 or V102", then code
incorrectly ((APPID <> 'VI01') | (APPID <> 'VI02')) when it should be
((APPID <> 'VI01') & (APPID <> 'VI02')). I've even seen such as
APPID <> V101 | V102. Some compilers accept that, with unintended
result.
if wordpos(appid, "VI01 VI02") = 0 then ...
instead of complicated boolean expressions.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Scott Ford
IDMWORKS
z/OS Development

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-10-12 14:15:53 UTC
Reply
Permalink
Post by David Crayford
Post by David Crayford
That code looks dodgy!  Unless I'm losing my marbles the test
((APPID <> 'VI01') | (APPID <> 'VI02')) will always be true.
if wordpos(appid, "VI01 VI02") = 0 then ...
instead of complicated boolean expressions.
o That closely reflects the casual English convention.

o But some will want to consider the probably poorer performance of a
function call/return compared to inline tests.

o Note that the original does numeric comparisions if some of the operands
are numeric (not in this case); WORDPOS does string comparisons. It may
not matter; the original coder was probably unaware. But there's a cliché
of astonishment among these lists when Rexx takes an intended hex
constant as a floating point number.

o The WORDPOS technique presumes that no operand consists of
multiple words. Know your data.

o Some might prefer \((APPID == 'VI01') | (APPID == 'VI02')),
even as the common English factors out the "not" rather than
distributing it.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Loading...