PGM PARM(&USRIDXQ &INSERTYP &ENTRY2000)
DCL &USRIDXQ *CHAR 20
DCL &INSERTYP *CHAR 4
DCL &ENTRY2000 *CHAR 2000
DCL &BIN *CHAR 4
DCL &RTNVAR *CHAR 48
DCL &RTNLIB *CHAR 10
DCL &RTNADD *CHAR 4
DCL &VAR2000 *CHAR 2000
DCL &LG *DEC (5 0)
DCL &LGENT *DEC (5 0)
DCL &OFFSET *CHAR 8 X'0000000000000001'
/* VARIABLES UTILISEES PAR LA GESTION DE MESSGAES */
DCL &ERRORSW *LGL /* SWITCH */
DCL &MSGID *CHAR LEN(7) /* ID MSG */
DCL &MSGDTA *CHAR LEN(100) /* DATA */
DCL &MSGF *CHAR LEN(10) /* FICHIER */
DCL &MSGFLIB *CHAR LEN(10) /* BIBLI */
 
MONMSG MSGID(CPF0000) EXEC(GOTO ERREUR)
 
CHGVAR &LGENT %BIN(&ENTRY2000 1 2)
CHGVAR &VAR2000 %SST(&ENTRY2000 3 &LGENT)
 
CHGVAR %BIN(&BIN) 48
CALL QUSRUIAT PARM(&RTNVAR &BIN 'IDXA0100' +
&USRIDXQ X'00000000')
 
IF (%SST(&RTNVAR 29 1) = 'F') THEN(DO)
CHGVAR &LG %BIN(&RTNVAR 37 4) /* LG FIXE */
IF (&LGENT > &LG) THEN(CHGVAR %BIN(&BIN) &LG)
ELSE CHGVAR %BIN(&BIN) &LGENT
ENDDO
ELSE DO
CHGVAR &LG %BIN(&RTNVAR 41 4) /* LG MAXI */
IF (&LGENT > &LG) THEN(CHGVAR %BIN(&BIN) &LG)
ELSE CHGVAR %BIN(&BIN) &LGENT
CHGVAR %SST(&OFFSET 1 4) &BIN
CHGVAR %BIN(&BIN) 2000
ENDDO
CALL QUSADDUI PARM(&RTNLIB &RTNADD &USRIDXQ +
&INSERTYP &VAR2000 &BIN +
&OFFSET X'00000001' X'00000000')
/* RENVOI DES MESSAGES DE TYPE *COMP SI FIN NORMALE */
|