It should work for you. Here is a code snippet from one of our NEPs:
dcl var(&endd) type(*char) len(1)
dcl var(&msid) type(*char) len(7)
dcl var(&wait) type(*char) len(4) value('0020') /* Seconds */
rtvjoba endsts(&endd)
if cond(&endd = '1') then(return)
if cond(&msid = ' ') then(do)
dlyjob dly(&wait)
rtvjoba endsts(&endd)
if cond(&endd = '1') then(return)
goto cmdlbl(loop)
enddo
Not sure who put in the check for a message ID equal to blank. This
section of code is at the start of each loop:
Loop:
Check for controlled end
Processing
Goto Loop
Don't recall any special circumstances why it wouldn't work.
HTH,
Loyd
Loyd Goodbar
Senior programmer/analyst
BorgWarner
TS Water Valley
662-473-5713
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Michael Rosinger
Sent: Monday, December 10, 2007 11:58
To: midrange-l@xxxxxxxxxxxx
Subject: using RTVJOBA ENDSTS to detect END(*CNTRLD) in CLLE program...
List,
I am trying to set up a monitor program according to a sample from an
article in MC Press written by Ricardo Ang in 2002. Within the loop
there is
code that performs a RTVJOBA ENDSTS and checks the value for a "1".
According to the help, that is supposed to mean that the job or
sub-system
is in the process of a controlled end. I've played with this a bit
(executing a controlled end on the job) but cannot see that it works.
From
what I can tell the program does not know that it is being terminated
and
just ends.
Are there rules about when and where RTVJOBA ENDSTS can be queried in
the CL
program for it to be valid?
Are there any system values that have to be set for this to work?
In a program that is performing a loop and then waiting, does it matter
where the RTVJOBA is executed for this to work?
I have v5r3 and v5r4 systems where I want to deploy this.
Any suggestions will be greatly appreciated!
As an Amazon Associate we earn from qualifying purchases.