× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



The attachments to this posting are the same at the text included.  If you
can't get the attachments, you should be able to use the text in this message to
generate the source code.

README.TXT ****************************************************************

This program monitors QSYSOPR and will send a message
to a pager if an unanswered message is in the queue for
longer that 30 minutes.  We run this program every 10
minutes, a message about unanswered messages will be
sent to specified users each time the program is run.

We use ROBOT Alert for paging from the AS/400.

The main program is called $MSG.  Programs $MSG2 and
$MSG3 also need to be compiled.

**Note** - These programs require the use of a program
from Help Systems called RBT835.  If you do not have
the program on your system, you will need to contact
Help Systems @ 1-800-328-1000 or write your own program
to provide the same function.

The source code is provided "as is" with no implied
warranties.  Use at your own risk.  Hope the code works
for you as good as it works for us.


Pattonville School District
Kirk R. Yates
11097 St Charles Rock Road
St Ann, MO  63074-1509
(314) 213-8045 voice
(314) 213-8650 fax
yatesk@pattonville.k12.mo.us

$MSG ********************************************************************

/*----------------------------------------------------------------------------*/
/*  This program will scan the QSYSOPR MSGQ for any unanswered INQUIRY        */
/*  messages, and notify the appropriate individuals.                         */
/*                                                                            */
/*                                                                            */
/*                                                                            */
/*----------------------------------------------------------------------------*/
             PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&CHECK) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
             DCL        VAR(&MSGOUT) TYPE(*CHAR) LEN(256)
             DCL        VAR(&DATE) TYPE(*CHAR) LEN(6)
             DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)
             DCL        VAR(&DATE1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&DATE2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIMDIF) TYPE(*DEC) LEN(7 0)
             ADDLIBLE   LIB(ROBOTLIB)
             MONMSG     MSGID(CPF0000)
             ADDLIBLE   LIB(RBTSYSLIB)
             MONMSG     MSGID(CPF0000)
 
             CALL       PGM(QGPL/$MSG2)
 
/*  Read message queue QSYSOPR for inquiry type messages only                 */
 MSG:        RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INQ) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(ENDPGM))
/*  If no more messages to be read, goto end of program                       */
             IF         COND(&MSGID = '       ') THEN(GOTO CMDLBL(ENDPGM))
 
/*  Check to see if reply has been sent for this message                      */
             RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*RPY) MSGKEY(&KEYVAR) +
                          RMV(*NO) MSGID(&CHECK)
             IF         COND(&CHECK ª= '       ') THEN(GOTO CMDLBL(MSG))
 
/*  If message requires response, process this message                        */
             IF         COND(&RTNTYPE = '05') THEN(DO)
             RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&TIME)
             RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATE)
             CHGVAR     VAR(&DATE2) VALUE(&DATE)
             CHGVAR     VAR(&TIME2) VALUE(&TIME)
             CHGVAR     VAR(&DATE) VALUE(%SST(&SENDER 46 2) || +
                          %SST(&SENDER 48 2) || %SST(&SENDER 44 2))
             CHGVAR     VAR(&TIME) VALUE(%SST(&SENDER 50 6))
             CHGVAR     VAR(&DATE1) VALUE(&DATE)
             CHGVAR     VAR(&TIME1) VALUE(&TIME)
             CALL       PGM(RBT835) PARM(&DATE1 &TIME1 &DATE2 &TIME2 +
                          &TIMDIF)
 
/*  If message has been in queue less than 10 minutes, check for another msg  */
             IF         COND(&TIMDIF < 10) THEN(GOTO CMDLBL(MSG))
 
/*  Build message to be transmitted to appropriate receiver                   */
             CHGVAR     VAR(&MSGOUT) VALUE('Msgq QSYSOPR is waiting +
                          for a reply to message: "' || &MSGIN +
                          *TCAT '", sent from Job:' || %SST(&SENDER +
                          1 10) |> 'User:' || %SST(&SENDER 11 10) +
                          |> 'on' |> %SST(&SENDER 46 2) || '/' || +
                          %SST(&SENDER 48 2) || '/' || %SST(&SENDER +
                          44 2) |> 'at' |> %SST(&SENDER 50 2) || +
                          ':' || %SST(&SENDER 52 2) || ':' || +
                          %SST(&SENDER 54 2))
/*                                                                            */
/* If message has been in queue longer than 10 minutes, send messages  out    */
             IF         COND(&TIMDIF > 10) THEN(DO)
             SNDMSG     MSG(&MSGOUT) TOUSR(YATESK)
             SNDMSG     MSG(&MSGOUT) TOUSR(KEPPLERJ)
             SNDMSG     MSG(&MSGOUT) TOUSR(HOWARDK)
             IF         COND(&TIME < '070000') +
                            THEN(SNDMSG MSG(&MSGOUT) TOUSR(GILBERTN))
             ENDDO
 
/* If message has been in queue more than 30 minutes, notify pager system     */
             IF         COND(&TIMDIF > 30) THEN(DO)
             RBTALRLIB/RBASNDMSG MSG(&MSGOUT) TOPG(@DP)
             ENDDO
/*                                                                            */
 
             GOTO       CMDLBL(MSG)
             ENDDO                                        /* &RTNTYPE = "05"  */
 
/* Reset msgq to allow furture reads of unanswered INQ messages               */
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
 
             CALL       PGM(QGPL/$MSG3)
 
             ENDPGM

$MSG2 *******************************************************************

            PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
 
/* READ ALL QSYSOPR INQUIRY TYPE MESSAGES, AND RESET */
 LOOP:       RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INQ) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(RESET))
             IF         COND(&MSGID = '       ') THEN(GOTO +
                          CMDLBL(ENDPGM))
             GOTO       CMDLBL(LOOP)
 RESET:      CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
             ENDPGM

$MSG3 *******************************************************************

            PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
             DCL        VAR(&SEV) TYPE(*DEC) LEN(2 0)
             DCL        VAR(&DATE) TYPE(*CHAR) LEN(6)
             DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)
             DCL        VAR(&DATE1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&DATE2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIMDIF) TYPE(*DEC) LEN(7 0)
             DCL        VAR(&MSGOUT) TYPE(*CHAR) LEN(256)
 
             ADDLIBLE   LIB(ROBOTLIB)
             MONMSG     MSGID(CPF0000)
             ADDLIBLE   LIB(RBTSYSLIB)
             MONMSG     MSGID(CPF0000)
 
/* READ ALL QSYSOPR INQUIRY TYPE MESSAGES, AND RESET */
 LOOP:       RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INFO) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SEV(&SEV) SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(RESET))
             IF         COND(&MSGID = '       ') THEN(GOTO +
                          CMDLBL(ENDPGM))
             IF         COND(&SEV *EQ 99) THEN(DO)
 
             RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&TIME)
             RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATE)
             CHGVAR     VAR(&DATE2) VALUE(&DATE)
             CHGVAR     VAR(&TIME2) VALUE(&TIME)
             CHGVAR     VAR(&DATE) VALUE(%SST(&SENDER 46 2) || +
                          %SST(&SENDER 48 2) || %SST(&SENDER 44 2))
             CHGVAR     VAR(&TIME) VALUE(%SST(&SENDER 50 6))
             CHGVAR     VAR(&DATE1) VALUE(&DATE)
             CHGVAR     VAR(&TIME1) VALUE(&TIME)
             CALL       PGM(RBT835) PARM(&DATE1 &TIME1 &DATE2 &TIME2 +
                          &TIMDIF)
 
             CHGVAR     VAR(&MSGOUT) VALUE('Msgq QSYSOPR has a +
                          severity level 99 message: "' || &MSGIN +
                          *TCAT '", sent from Job:' || %SST(&SENDER +
                          1 10) |> 'User:' || %SST(&SENDER 11 10) +
                          |> 'on' |> %SST(&SENDER 46 2) || '/' || +
                          %SST(&SENDER 48 2) || '/' || %SST(&SENDER +
                          44 2) |> 'at' |> %SST(&SENDER 50 2) || +
                          ':' || %SST(&SENDER 52 2) || ':' || +
                          %SST(&SENDER 54 2))
 
             SNDMSG     MSG(&MSGOUT) TOUSR(YATESK)
             SNDMSG     MSG(&MSGOUT) TOUSR(KEPPLERJ)
             SNDMSG     MSG(&MSGOUT) TOUSR(HOWARDK)
             IF         COND(&TIME < '070000') +
                            THEN(SNDMSG MSG(&MSGOUT) TOUSR(GILBERTN))
 
/* If message has been in queue more than 30 minutes, notify pager system     */
             IF         COND(&TIMDIF > 30) THEN(DO)
             RBASNDMSG  MSG(&MSGOUT) TOPG(@DP)
             ENDDO
             ENDDO
             GOTO       CMDLBL(LOOP)
 RESET:      CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
             ENDPGM


This program monitors QSYSOPR and will send a message
to a pager if an unanswered message is in the queue for
longer that 30 minutes.  We run this program every 10
minutes, a message about unanswered messages will be
sent to specified users each time the program is run.

We use ROBOT Alert for paging from the AS/400.

The main program is called $MSG.  Programs $MSG2 and
$MSG3 also need to be compiled.

**Note** - These programs require the use of a program
from Help Systems called RBT835.  If you do not have
the program on your system, you will need to contact
Help Systems @ 1-800-328-1000 or write your own program
to provide the same function.

The source code is provided "as is" with no implied
warranties.  Use at your own risk.  Hope the code works
for you as good as it works for us.


Pattonville School District
Kirk R. Yates
11097 St Charles Rock Road
St Ann, MO  63074-1509
(314) 213-8045 voice
(314) 213-8650 fax
yatesk@pattonville.k12.mo.us
/*----------------------------------------------------------------------------*/
/*  This program will scan the QSYSOPR MSGQ for any unanswered INQUIRY        */
/*  messages, and notify the appropriate individuals.                         */
/*                                                                            */
/*                                                                            */
/*                                                                            */
/*----------------------------------------------------------------------------*/
             PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&CHECK) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
             DCL        VAR(&MSGOUT) TYPE(*CHAR) LEN(256)
             DCL        VAR(&DATE) TYPE(*CHAR) LEN(6)
             DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)
             DCL        VAR(&DATE1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&DATE2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIMDIF) TYPE(*DEC) LEN(7 0)
             ADDLIBLE   LIB(ROBOTLIB)
             MONMSG     MSGID(CPF0000)
             ADDLIBLE   LIB(RBTSYSLIB)
             MONMSG     MSGID(CPF0000)
 
             CALL       PGM(QGPL/$MSG2)
 
/*  Read message queue QSYSOPR for inquiry type messages only                 */
 MSG:        RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INQ) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(ENDPGM))
/*  If no more messages to be read, goto end of program                       */
             IF         COND(&MSGID = '       ') THEN(GOTO CMDLBL(ENDPGM))
 
/*  Check to see if reply has been sent for this message                      */
             RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*RPY) MSGKEY(&KEYVAR) +
                          RMV(*NO) MSGID(&CHECK)
             IF         COND(&CHECK ª= '       ') THEN(GOTO CMDLBL(MSG))
 
/*  If message requires response, process this message                        */
             IF         COND(&RTNTYPE = '05') THEN(DO)
             RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&TIME)
             RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATE)
             CHGVAR     VAR(&DATE2) VALUE(&DATE)
             CHGVAR     VAR(&TIME2) VALUE(&TIME)
             CHGVAR     VAR(&DATE) VALUE(%SST(&SENDER 46 2) || +
                          %SST(&SENDER 48 2) || %SST(&SENDER 44 2))
             CHGVAR     VAR(&TIME) VALUE(%SST(&SENDER 50 6))
             CHGVAR     VAR(&DATE1) VALUE(&DATE)
             CHGVAR     VAR(&TIME1) VALUE(&TIME)
             CALL       PGM(RBT835) PARM(&DATE1 &TIME1 &DATE2 &TIME2 +
                          &TIMDIF)
 
/*  If message has been in queue less than 10 minutes, check for another msg  */
             IF         COND(&TIMDIF < 10) THEN(GOTO CMDLBL(MSG))
 
/*  Build message to be transmitted to appropriate receiver                   */
             CHGVAR     VAR(&MSGOUT) VALUE('Msgq QSYSOPR is waiting +
                          for a reply to message: "' || &MSGIN +
                          *TCAT '", sent from Job:' || %SST(&SENDER +
                          1 10) |> 'User:' || %SST(&SENDER 11 10) +
                          |> 'on' |> %SST(&SENDER 46 2) || '/' || +
                          %SST(&SENDER 48 2) || '/' || %SST(&SENDER +
                          44 2) |> 'at' |> %SST(&SENDER 50 2) || +
                          ':' || %SST(&SENDER 52 2) || ':' || +
                          %SST(&SENDER 54 2))
/*                                                                            */
/* If message has been in queue longer than 10 minutes, send messages  out    */
             IF         COND(&TIMDIF > 10) THEN(DO)
             SNDMSG     MSG(&MSGOUT) TOUSR(YATESK)
             SNDMSG     MSG(&MSGOUT) TOUSR(KEPPLERJ)
             SNDMSG     MSG(&MSGOUT) TOUSR(HOWARDK)
             IF         COND(&TIME < '070000') +
                            THEN(SNDMSG MSG(&MSGOUT) TOUSR(GILBERTN))
             ENDDO
 
/* If message has been in queue more than 30 minutes, notify pager system     */
             IF         COND(&TIMDIF > 30) THEN(DO)
             RBTALRLIB/RBASNDMSG MSG(&MSGOUT) TOPG(@DP)
             ENDDO
/*                                                                            */
 
             GOTO       CMDLBL(MSG)
             ENDDO                                        /* &RTNTYPE = "05"  */
 
/* Reset msgq to allow furture reads of unanswered INQ messages               */
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
 
             CALL       PGM(QGPL/$MSG3)
 
             ENDPGM

             PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
 
/* READ ALL QSYSOPR INQUIRY TYPE MESSAGES, AND RESET */
 LOOP:       RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INQ) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(RESET))
             IF         COND(&MSGID = '       ') THEN(GOTO +
                          CMDLBL(ENDPGM))
             GOTO       CMDLBL(LOOP)
 RESET:      CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
             ENDPGM

             PGM
 
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&RTNTYPE) TYPE(*CHAR) LEN(2)
             DCL        VAR(&KEYVAR) TYPE(*CHAR) LEN(4)
             DCL        VAR(&SENDER) TYPE(*CHAR) LEN(80)
             DCL        VAR(&MSGIN) TYPE(*CHAR) LEN(132)
             DCL        VAR(&SEV) TYPE(*DEC) LEN(2 0)
             DCL        VAR(&DATE) TYPE(*CHAR) LEN(6)
             DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)
             DCL        VAR(&DATE1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME1) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&DATE2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIME2) TYPE(*DEC) LEN(6 0)
             DCL        VAR(&TIMDIF) TYPE(*DEC) LEN(7 0)
             DCL        VAR(&MSGOUT) TYPE(*CHAR) LEN(256)
 
             ADDLIBLE   LIB(ROBOTLIB)
             MONMSG     MSGID(CPF0000)
             ADDLIBLE   LIB(RBTSYSLIB)
             MONMSG     MSGID(CPF0000)
 
/* READ ALL QSYSOPR INQUIRY TYPE MESSAGES, AND RESET */
 LOOP:       RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*INFO) RMV(*NO) +
                          KEYVAR(&KEYVAR) MSG(&MSGIN) MSGID(&MSGID) +
                          SEV(&SEV) SENDER(&SENDER) RTNTYPE(&RTNTYPE)
             MONMSG     MSGID(CPF2451) EXEC(GOTO CMDLBL(RESET))
             IF         COND(&MSGID = '       ') THEN(GOTO +
                          CMDLBL(ENDPGM))
             IF         COND(&SEV *EQ 99) THEN(DO)
 
             RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&TIME)
             RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATE)
             CHGVAR     VAR(&DATE2) VALUE(&DATE)
             CHGVAR     VAR(&TIME2) VALUE(&TIME)
             CHGVAR     VAR(&DATE) VALUE(%SST(&SENDER 46 2) || +
                          %SST(&SENDER 48 2) || %SST(&SENDER 44 2))
             CHGVAR     VAR(&TIME) VALUE(%SST(&SENDER 50 6))
             CHGVAR     VAR(&DATE1) VALUE(&DATE)
             CHGVAR     VAR(&TIME1) VALUE(&TIME)
             CALL       PGM(RBT835) PARM(&DATE1 &TIME1 &DATE2 &TIME2 +
                          &TIMDIF)
 
             CHGVAR     VAR(&MSGOUT) VALUE('Msgq QSYSOPR has a +
                          severity level 99 message: "' || &MSGIN +
                          *TCAT '", sent from Job:' || %SST(&SENDER +
                          1 10) |> 'User:' || %SST(&SENDER 11 10) +
                          |> 'on' |> %SST(&SENDER 46 2) || '/' || +
                          %SST(&SENDER 48 2) || '/' || %SST(&SENDER +
                          44 2) |> 'at' |> %SST(&SENDER 50 2) || +
                          ':' || %SST(&SENDER 52 2) || ':' || +
                          %SST(&SENDER 54 2))
 
             SNDMSG     MSG(&MSGOUT) TOUSR(YATESK)
             SNDMSG     MSG(&MSGOUT) TOUSR(KEPPLERJ)
             SNDMSG     MSG(&MSGOUT) TOUSR(HOWARDK)
             IF         COND(&TIME < '070000') +
                            THEN(SNDMSG MSG(&MSGOUT) TOUSR(GILBERTN))
 
/* If message has been in queue more than 30 minutes, notify pager system     */
             IF         COND(&TIMDIF > 30) THEN(DO)
             RBASNDMSG  MSG(&MSGOUT) TOPG(@DP)
             ENDDO
             ENDDO
             GOTO       CMDLBL(LOOP)
 RESET:      CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
 ENDPGM:     CHGMSGQ    MSGQ(QSYSOPR) RESET(*YES)
             MONMSG     MSGID(CPF0000)
             RETURN
             ENDPGM


|--------------------------------------------------------------------|
|Kirk R. Yates                            Pattonville School District|
|(314) 213-8045                           Director of Data Processing|
|yatesk@pattonville.k12.mo.us                   St Ann, MO           |
|--------------------------------------------------------------------|

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.