|
Cet exemple permet de lancer un robot qui traitera des commandes CL envoyés.
Cela permet de créer un gestionnaire de commande asynchrone.
Voici les 2 programmes :
le programme d'écriture
PGM (&PARM &DTAQ &LIB) DCL &PARM *CHAR 100 DCL &LIB *CHAR 10 DCL &DTAQ *CHAR 10 DCL &LEN *DEC (5 0) (100) CALL QSNDDTAQ (&DTAQ &LIB &LEN &PARM) ENDPGM
le programme de lecture
PGM PARM(&DTAQ &LIB) DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&DTAQ) TYPE(*CHAR) LEN(10) DCL &PARM *CHAR 100 DCL &LEN *DEC (5 0) (100) DCL &WAIT *DEC (5 0) (-1) /* ATTENTE PERMANENTE */ DCL &LEN1 *DEC (15 5) (100) RTVDTAARA DTAQ01 &PARM IF COND(&PARM *NE ' ') THEN(GOTO EXEC) LECT: CALL QRCVDTAQ (&DTAQ &LIB &LEN &PARM &WAIT) IF COND(&LEN *GT 0) THEN(DO) IF COND(%SST(&PARM 1 4) = '*FIN') THEN(GOTO FIN) CHGDTAARA DTAARA(DTAQ01) VALUE(&PARM) EXEC: CALL QCMDEXC (&PARM &LEN1) MONMSG CPF0000 CHGDTAARA DTAARA(DTAQ01) VALUE(' ') ENDDO   GOTO LECT FIN: ENDPGM
Vous pouvez lancer votre programme de lecture en batch ==>SBMJOB CMD(call PGMLECT parm('nomdtaq' 'nomlib') job(nomdtaq).
Si votre programme plante ou est arrêté, vous pouvez retrouver la commande dans une dtaara qui a le même nom.
PE |
|
| ... |
|