Appel ACTSBSL apres remplissage *USRSPC (CPP)

BoTTom |
             PGM
             DCL &REP *LGL
             DCL &PRB *LGL
 
             MONMSG CPF1907 EXEC(GOTO APPSYS2)
             MONMSG CPF0000 EXEC(GOTO PROBLEME)
 
     /* DATA AREA POUR STOCKER LES CLE DE MSG   */
             CHKOBJ     OBJ(QTEMP/CMDKEY) OBJTYPE(*DTAARA)
              MONMSG CPF9801 EXEC(DO)
              CRTDTAARA  DTAARA(QTEMP/CMDKEY) TYPE(*CHAR) LEN(400)
              GOTO MESSAGE
              ENDDO
              MONMSG CPF0000
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('REFSBS +
                          déja actif.Appel recursif non admis.') +
                          MSGTYPE(*ESCAPE)
              RETURN
 
 APPSYS2:   RCLRSC
            CHGVAR &REP '1'
 PROBLEME:  CHGVAR &PRB '1'
            GOTO REPRISE
 
 MESSAGE:    RMVMSG     CLEAR(*ALL)
             SNDPGMMSG  MSG('/* Références croisées */') +
                          TOPGMQ(*EXT) MSGTYPE(*RQS)
             RCVMSG     PGMQ(*EXT) MSGTYPE(*RQS) RMV(*NO)
 DEBUT:
     /* TOUTES LES LISTES SERONT FAITES VIA     */
     /*    UN USER SPACE DANS QTEMP             */
     /* SI LE *USRSPC N'EXISTE PAS ==> CREATION */
             CHKOBJ     OBJ(QTEMP/LISTJOBQ) OBJTYPE(*USRSPC)
              MONMSG CPF9801 EXEC(DO)
               RCVMSG     MSGTYPE(*EXCP)
               CALL QUSCRTUS PARM('LISTJOBQ  QTEMP     '             +
                                  'JOBQLIST  '                       +
                                 X'00000FFF'                         +
                                  ' '                                +
                                  '*CHANGE   '                       +
                                  'USER SPACE POUR LISTE DES JOBQ'   )
              ENDDO
             CHKOBJ     OBJ(QTEMP/ACTSBS) OBJTYPE(*USRSPC)
              MONMSG CPF9801 EXEC(DO)


|
               RCVMSG     MSGTYPE(*EXCP)
               CALL QUSCRTUS PARM('ACTSBS    QTEMP     '             +
                                  'SBSLIST   '                       +
                                 X'00000FFF'                         +
                                  ' '                                +
                                  '*CHANGE   '                       +
                                  'USER SPACE POUR LISTE DES SBSD'   )
              ENDDO
        /* APPEL DU PGM LISTE DES SBS                */
 
             OVRDBF DSPSBSP1 QTEMP/DSPSBSP1
             CALL ACTSBSL
REPRISE:     DLTOVR DSPSBSP1
              MONMSG CPF0000
 
            DLTUSRSPC QTEMP/ACTSBS
             MONMSG CPF0000
            DLTUSRSPC QTEMP/LISTJOBQ
             MONMSG CPF0000
            IF &REP DO
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Reprise +
                          apres annulation') TOPGMQ(*EXT) +
                          MSGTYPE(*STATUS)
               CHGVAR &REP '0'
               CHGVAR &PRB '0'
               GOTO DEBUT
               ENDDO
            DLTDTAARA QTEMP/CMDKEY
             MONMSG CPF0000
             IF         COND(&PRB) THEN(SNDPGMMSG MSGID(CPF9898) +
                          MSGF(QCPFMSG) MSGDTA('Erreur interne à +
                          REFSBS.Voir historique.') MSGTYPE(*ESCAPE))
 
            /* FIN NORMALE */
            ENDPGM




©AF400