Affiche reférences croisées sous-systèmes/pools

BoTTom |
       IDENTIFICATION DIVISION.
 
       PROGRAM-ID. actsbsl.
 
       ENVIRONMENT DIVISION.
 
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-AS400.
       OBJECT-COMPUTER. IBM-AS400.
       SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
 
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT actsbs ASSIGN TO WORKSTATION-actsbs-SI
           ORGANIZATION TRANSACTION ACCESS DYNAMIC
           RELATIVE KEY IS rg FILE STATUS IS ETAT.
 
           SELECT dspsbsp1 ASSIGN TO DATABASE-dspsbsp1.
 
       DATA DIVISION.
 
       FILE SECTION.
       FD  actsbs.
       01  BUFFER .
           COPY DDS-ALL-FORMAT OF actsbs.
      * FICHIER DE TRAVAIL CONTENANT LE RESULTAT WRKSBS -> *PRINT ET CPYSPLF
       FD  dspsbsp1.
       01  enreg.
      * DONNE POUR UN SOUS SYSTÈME LA LISTE DES POOLS MÉMOIRE OCCUPÉS
           02 sbsname pic x(10).
      *  POSITION DANS LA TABLE = N° DU POOL DE SOUS SYSTÈME
      *  VALEUR DANS LA TABLE = N° DU POOL MÉMOIRE (POOL SYSTÈME)
           02 tablepool.
              03 syspool pic 99 OCCURS 10.
 
       WORKING-STORAGE SECTION.
 
       01  TINDIC.
           05 IND OCCURS 99 PIC 1 INDICATOR 01.
       01  woption pic x.
       01  wjqoption pic x.
 
      * INFOS RENVOYÉES PAR L'INSTRUCTION MI MATRMD OPTION 09
      * (CARACTÉRISTIQUES DES POOLS)


|
       01  rtvmiinfo.
      * ENTETE (INFORMATIONS GÉNÉRALES)
           02 filler pic x(16).
           02 taillemini pic 9(4) comp-4.
           02 mimaxpool  pic 9(4) comp-4.
           02 minbrdepool pic 9(4) comp-4.
           02 mimainstorage pic 9(8) comp-4.
           02 filler pic x(2).
           02 filler pic x(4).
      * INFORMATIONS PAR POOL (64 POOLS POSSIBLES)
           02 miunpool occurs 64.
              05 mitaille pic 9(8) comp-4.
              05 mipoolmaint  pic 9(8) comp-4.
              05 mipoolidb pic 9(8) comp-4.
              05 mipoolindb pic 9(8) comp-4.
              05 mipooltdb pic 9(8) comp-4.
              05 mipooltndb pic 9(8) comp-4.
              05 filler pic x(8).
           02 filler pic x(32767).
      * INFOS RENVOYÉES PAR L'INSTRUCTION MI MATRMD OPTION 10
      * (STATISTIQUES SUR LES POOLS)
       01  rtvmiinfompl.
      * ENTETE (INFORMATIONS GÉNÉRALES)
           02 filler pic x(16).
           02 nbrdeclasmax pic 9(4) comp-4.
           02 nbrdeclas  pic 9(4) comp-4.
           02 nbrdemplmax pic 9(4) comp-4.
           02 inelseuil     pic 9(4) comp-4.
           02 nbrdempl      pic 9(4) comp-4.
           02 nbrdeinel     pic 9(4) comp-4.
           02 filler        pic x(4).
      * INFORMATIONS PAR POOL (64 POOLS POSSIBLES)
           02 miunmpl  occurs 64.
              05 mplactlvl pic 9(4) comp-4.
              05 mplinelseuil pic 9(4) comp-4.
              05 mplactcur pic 9(4) comp-4.
              05 mimplinel  pic 9(4) comp-4.
              05 mimplactif pic 9(4) comp-4.
              05 mimplactinel pic 9(4) comp-4.
              05 mimplactwait pic 9(4) comp-4.
              05 mimplwaitinel pic 9(4) comp-4.
           02 filler pic x(32767).
       01 micoef pic 9(4)v9(4).
      * DÉLACRATIONS POUR APIS


|
       01  usrspc.
           05 SPCNAM PIC X(10).
           05 SPCLIB PIC X(10).
       01  jusrspc.
           05 JSPCNAM PIC X(10) value "LISTJOBQ".
           05 JSPCLIB PIC X(10) value "QTEMP".
       01  infos.
           05 fin PIC 999999 COMP-4.
           05 taille PIC 999999 COMP-4.
           05 nbsbs PIC 999999 COMP-4.
           05 lgpost PIC 999999 COMP-4.
       01 sbsqual.
          05 sbsqualname pic x(10).
          05 sbsquallib  pic x(10).
       01 jobqqual.
          05 jobqname pic x(10).
          05 jobqbib  pic x(10).
      * TABLES À DEUX DIMENSIONS POUR STOCKER LES REF. CROISÉES
      * PERMETTERA (APRES COLLECTE DES INFOS) DE CHARGER LES SOUS FICHIERS
       01 refcroisees.
      * INFORMATIONS PAR SOUS SYSTÈME
           02 parsbs.
              03 unsbs occurs 50.
                 05 unsbsname pic x(10).
                 05 unsbslib  pic x(10).
                 05 unsbsnombre pic 99.
      * LISTE DES POOLS DE CE SOUS SYSTÈME
                 05 unsbspool occurs 10.
                    07 unsbspoolnum pic 99.
                    07 unsbspoolid  pic 99.
                    07 unsbspoolname pic x(10).
      * INFORMATIONS PAR POOL SYSTÈME
           02 parpool.
              03 unpool occurs 64.
                 05 unpoolname pic x(10).
                 05 unpooltaille pic 9(9).
                 05 unpoolactlvl pic 9(9).
                 05 unpoolactcur pic 9(9).
                 05 unpoolnombre pic 99.
      * LISTE DES POOLS DE SOUS SYSTÈME OCCUPANT CE POOL MÉMOIRE
                 05 unpoolsbs occurs 50.
                    07 unpoolsbsname pic x(10).
                    07 unpoolsbsnum pic 99.
      * INFORMATIONS EN RETOUR DE L'API SBSI0100 (RENVOI ENTRE AUTRE LE NOM


|
      * DES POOLS DANS UNE TABLE DEUX DIMENSIONS)
       01 rtvapiinfo.
          02 apiretour pic 9(6) comp-4.
          02 apivalide pic 9(6) comp-4.
          02 apisbsname pic x(10).
          02 apisbslib pic x(10).
          02 apisbsstatus pic x(10).
          02 apisignon pic x(10).
          02 apisignlib pic x(10).
          02 apilang    pic x(10).
          02 apimaxact pic 9(6) comp-4.
          02 apiactifs pic 9(6) comp-4.
          02 apinbrdepool pic 9(6) comp-4.
      * INFORMATIONS PAR POOL
          02 apiinfoparpool occurs 10.
             05 apipoolid pic 9(6) comp-4.
             05 apipoolname pic x(10).
             05 apifiller pic x(6).
             05 apipoolsiz pic 9(6) comp-4.
             05 apipoolactlvl pic 9(6) comp-4.
       01 apiformat pic x(10) value "SBSI0100".
       01 apiformat2 pic x(10) value "SBSL0100".
       01 apiformat3 pic x(10) value "SJQL0100".
       01 apiqual.
          02 apisbs pic x(10).
          02 apilib pic x(10).
       01 codretour.
          02 codrtlg pic 9(6) comp-4 value 15.
          02 codrtrecu pic 9(6) comp-4.
          02 codrtmsg pic x(7).
       01 divers.
           02  C-PID PIC S9(6) COMP-4.
           02  C-PSIZ PIC S9(6) COMP-4.
           02  C-PACT PIC S9(6) COMP-4.
           02  debut PIC 999999 COMP-4.
           02  long  PIC 999999 COMP-4.
           02  lg PIC 999999 COMP-4.
           02  x    pic 99.
           02  y    pic 99.
           02  z    pic 99.
           02  s    pic 99.
           02  s2   pic 99.
           02  sn   pic 99.
           02  ps   pic 99.


|
           02  ps2  pic 99.
           02  pn   pic 99.
           02  sysp pic 99.
           02  rg   PIC 999.
           02  flageof pic x.
               88 eof value "O".
           02  flageofjq pic x.
               88 eofjq value "O".
           02  flagjq    pic x.
               88 unejq value "O".
       01 APPEL.
           02  CMDI.
               03 CMDINT PIC XX.
               03 CMDIREST PIC X(72).
           02  CMDW  PIC X(74).
           02  CMDINT2  PIC X(10).
           02  CMDLG PIC X(512).
           02  F4 PIC 1.
               88 F4ON VALUE B"1".
           02  F9 PIC 1.
               88 F9ON VALUE B"1".
           02  VLDCMDFLAG PIC 1.
               88 VLDCMDKEY VALUE B"1".
               88 ENTREE VALUE B"0".
           02  CHG PIC 1.
       77  SX PIC S9(5) COMP-3.
       77  ETAT PIC XX.
       77  LEN PIC 9(5) COMP-3 VALUE 2.
       77  TAB PIC X(10) VALUE "QSYSTRNTBL".
       77  BIB PIC X(10) VALUE "*LIBL     ".
       77  EXC PIC X(10) VALUE "WRKJOBQ   ".
       77  EXC2 PIC X(10) VALUE "WRKSYSSTS ".
       77  EXCLEN PIC 9(10)V9(5) COMP-3 VALUE 10.
     A*===========================================
       PROCEDURE DIVISION.
     A*===========================================
 
      * *************** PROGRAMME PRINCIPAL ******************** 
           OPEN I-O actsbs.
           write buffer format "TITRE" indic tindic.
           MOVE B"0" TO F4 F9 CHG.
           MOVE SPACES TO CMDW CMDLG.
           MOVE -3 TO SX.
      * *************** CHARGEMENT (retour via F5) ************* 


|
       INIT.
           MOVE ZERO TO TINDIC.
           initialize refcroisees divers APPEL.
           move 360 to lg.
           perform chgtpool.
           perform chgtref.
           perform qualif.
           write buffer format "TITRE2" indic tindic.
           move zero to s2 ps2.
           perform complement.
           perform sfpool
           call "DSPSBSC2"
 
      * ********** BOUCLE D'AFFICHAGE DE L'IMAGE ********************* 
                perform until ind(03) = b"1"
                 write buffer format "INTER" indic tindic
                 write buffer format "POOLFC" indic tindic
                 MOVE CMDW TO CMDLINE OF SBSFC-O
                 write buffer format "SBSFC" indic tindic
                 read  actsbs format "SBSFC" indic tindic
                 if ind(03) = b"0"
                     MOVE CMDLINE OF SBSFC-I TO CMDW
                     MOVE IND(04) TO F4
                     MOVE IND(09) TO F9
                     MOVE IND(90) TO CHG
                     MOVE IND(25) TO VLDCMDFLAG
 
      *    REINITIALISAIOTN 
                 if ind(05) = b"1" go init end-if
 
      *    MISE A BLANC DES MESSAGES 
                 write buffer format "BLANC"
                 CALL "ACTSBSCLR"
 
      *    WRKSBS 
                 if ind(14) = b"1" PERFORM WRKSBSP END-IF
 
      *    ENTREE DE COMMANDE 
                 if ind(10) = b"1" call "QCMD" end-if
 
      *    TRAITEMENT DES OPTIONS SOUS FICHIERS 
                   perform readc
 
      *    TRAITEMENT DES COMMANDES SUR LA LIGNE 


|
                   IF ENTREE OR F4ON OR F9ON
                    IF CMDW NOT = SPACES OR F4ON OR F9ON
                     MOVE CMDW TO CMDI
                     MOVE SPACES TO CMDINT2
                     CALL "QDCXLATE" USING LEN CMDINT TAB BIB
                     EVALUATE CMDINT
                     WHEN "R " GO INIT
                     WHEN "SP" MOVE "WRKSPLF  " TO CMDINT2
                     WHEN "WA" MOVE "WRKACTJOB" TO CMDINT2
                     WHEN "WS" MOVE "WRKSYSSTS" TO CMDINT2
                     WHEN "WD" MOVE "WRKDSKSTS" TO CMDINT2
                     WHEN "PM" MOVE "STRPFRMON" TO CMDINT2
                     WHEN "PT" MOVE "STRPFRT  " TO CMDINT2
                     END-EVALUATE
                     IF CMDINT2 NOT = SPACES MOVE CMDINT2 TO CMDW
                        MOVE CMDIREST(3:65) TO CMDW(10:65)
                     END-IF
                     CALL "ACTSBSCMDL" USING CMDW CMDLG SX F4 F9 CHG
                    END-IF
                   END-IF
 
      *    SOUS FICHIER MESSAGE 
                   MOVE "ACTSBSL" TO PGMQ OF MSGC-O
                   MOVE B"1" TO IND(99)
                   write buffer FROM MSGC-O format "MSGC" INDIC TINDIC
                 end-if
                end-perform
      *    FIN BOUCLE IMAGE ==> FIN PGM
 
                close actsbs.
           GOBACK.
      * *************** SOUS PROGRAMMES ***************************** 
      *
      * ************ SOUS PGM DE CHARGEMENT ************************* 
       chgtpool.
      * INFORMATIONS SUR LES POOLS SYSTEME (SUBDIVISION DE LA MEMOIRE) 
           call "RTVPOOL" using  rtvmiinfo.
           divide taillemini by 1024 giving micoef.
      * INFORMATIONS SUR LES POOLS SYSTEME (NIVEAU D'ACTIVITE ET STATS) 
           call "RTVPOOLMPL" using  rtvmiinfompl.
       chgtref.
      * INFORMATIONS SUR LES POOLS SYSTEME (WRKSBS DANS FICHIER 
      *                                     ET CHARGEMENT SOUS FICHIER) 
           move zero to s


|
           call "DSPSBSC"
           open input dspsbsp1.
           move b"0" to ind(80) ind(81)
           move b"1" to ind(82)
           write buffer format "WRKSBSFC" indic tindic.
           move b"1" to ind(80) ind(81)
           move b"0" to ind(82)
           read dspsbsp1 at end set eof to true.
           perform until eof
                add 1 to s
                move s to rg
                move enreg to buffer
                write subfile buffer format "WRKSBSFE" indic tindic
                move sbsname to unsbsname(s)
                move zero to ps
                perform 10 times
                   add 1 to ps
                   if syspool(ps) not = zero
                    move syspool(ps) to sysp
      * par sous systeme 
                   add 1 to unsbsnombre(s)
                   move unsbsnombre(s) to sn
                   move ps to unsbspoolnum(s, sn)
                   move sysp to unsbspoolid(s, sn)
      * par pool systeme 
                    add 1 to unpoolnombre(sysp)
                    move unpoolnombre(sysp) to pn
                    move sbsname to unpoolsbsname(sysp, pn)
                    move ps      to unpoolsbsnum(sysp, pn)
                   end-if
                end-perform
           read dspsbsp1 at end set eof to true end-read
           end-perform.
           close dspsbsp1.
 
      * RECHERCHE DES BIBLI DE SOUS SYSTEME VIA API  
       qualif.
                 MOVE "ACTSBS" to spcnam.
                 MOVE "QTEMP " to spclib.
             call "QWCLASBS" using usrspc apiformat2 codretour
                 MOVE 125 TO debut.
                 MOVE 16  TO long.
             CALL "QUSRTVUS" USING usrspc DEBUT LONG infos.
                  MOVE FIN TO DEBUT


|
                  ADD 1 TO DEBUT
                  MOVE 20 TO Long
                  PERFORM NBSBS TIMES
                     CALL "QUSRTVUS" USING usrspc DEBUT LONG sbsqual
                      move 1 to ps2
                      perform until sbsqualname = unsbsname(ps2)
                         add 1 to ps2
                      end-perform
                      move sbsquallib to unsbslib(ps2)
                      ADD LGPOST TO DEBUT
                  END-PERFORM.
      * COMPLEMENTS D'INFORMATION SUR UN SOUS SYSTEME VIA API
       complement.
           move b"0" to ind(40) ind(41)
           move b"1" to ind(42)
           write buffer format "SBSFC" indic tindic.
           move b"1" to ind(40) ind(41)
           move b"0" to ind(42)
           multiply mitaille(1) by micoef giving unpooltaille(1)
           move zero to rg
           perform s times
           add 1 to s2
           move unsbsname(s2) to apisbs
           if unsbslib(s2) = spaces move "*LIBL" to unsbslib(s2) end-if
           move unsbslib(s2) to apilib
           call "QWDRSBSD" using rtvapiinfo lg apiformat
                                 apiqual codretour
                move zero to ps
                perform apinbrdepool times
                   add 1 to ps
                   move 1 to ps2
                   perform until apipoolid(ps) = unsbspoolnum(s2, ps2)
                    add 1 to ps2
                   end-perform
                   move unsbspoolid(s2, ps2) to sysp
                   if apipoolname(ps) = "*USERPOOL"
                     move apisbsname      to unpoolname(sysp)
                     move "Pool Privé"    to unsbspoolname(s2, ps2)
                     move apipoolsiz(ps) to unpooltaille(sysp)
                   else
                     move apipoolname(ps) to unpoolname(sysp)
                     move apipoolname(ps) to unsbspoolname(s2, ps2)
                     multiply mitaille(sysp) by micoef giving
                                                unpooltaille(sysp)


|
                   end-if
                   IF APIPOOLACTLVL(ps) NOT = ZERO
                   move apipoolactlvl(ps) to unpoolactlvl(sysp)
                   ELSE
                   move MPLACTLVL(SYSP) to unpoolactlvl(sysp)
                   END-IF
                   end-perform
      *     ECRITURE SOUS FICHIER DES SOUS SYSTEMES  
                   add 1 to rg
                   move spaces to option OF SBSFE-O
                   move apisbsname to sbsd OF SBSFE-O
                   move apisbslib  to sbsdlib OF SBSFE-O
                   move apisignon     to sbssignon  OF SBSFE-O
                   move apisignlib    to sbssignlib OF SBSFE-O
                   if apimaxact > 0
                    move apimaxact     to sbsmaxact OF SBSFE-O
                   else move 999999   to sbsmaxact OF SBSFE-O end-if
                   move apiactifs     to sbsnbract OF SBSFE-O
                   move apinbrdepool  to nbrdepool OF SBSFE-O
                   write subfile buffer format "SBSFE" indic tindic
                end-perform.
      *     ECRITURE SOUS FICHIER DES POOLS SYSTEME            
       sfpool.
           move b"0" to ind(30) ind(31)
           move b"1" to ind(32)
           write buffer format "POOLFC" indic tindic.
           move b"1" to ind(30) ind(31)
           move b"0" to ind(32)
           move 1 to rg
           move "*MACHINE" to unpoolname(rg)
           perform until unpoolname(rg) = spaces
                move spaces to poolopt of poolfe-i
                move rg             to poolnmu of poolfe-o
                move unpoolname(rg) to poolnom of poolfe-o
                move unpooltaille(rg) to poolsize of poolfe-o
                 move unpoolactlvl(rg) to poolactl of poolfe-o
                 move mplactcur(rg) to poolactcur of poolfe-o
                 move mimplactif(rg) to poolactif of poolfe-o
                 multiply mipoolmaint(rg) by micoef giving
                                                 poolmaint of poolfe-o
                 multiply mipoolidb(rg) by micoef giving
                                                 poolidb of poolfe-o
                 multiply mipoolindb(rg) by micoef giving
                                                 poolindb of poolfe-o


|
                 multiply mipooltdb(rg) by micoef giving
                                                 pooltdb of poolfe-o
                 multiply mipooltndb(rg) by micoef giving
                                                 pooltndb of poolfe-o
                 move mimplactinel(rg) to poolai of poolfe-o
                 move mimplactwait(rg) to poolaw of poolfe-o
                 move mimplwaitinel(rg) to poolwi of poolfe-o
                 IF RG = 1 MOVE B"1" TO IND(96)
                 ELSE MOVE B"0" TO IND(96) END-IF
                 IF RG = 2 MOVE B"1" TO IND(95)
                 ELSE MOVE B"0" TO IND(95) END-IF
                write subfile buffer format "POOLFE" indic tindic
           add 1 to rg
           end-perform.
      * ************ SOUS PGM DE TRAITEMENT ************************ 
       readc.
           move space to flageof.
      * TRAITEMENT DES OPTIONS SUR SOUS FICHIER DES POOLS 
           read subfile actsbs next modified format "POOLFE"
                indic tindic at end set eof to true.
           perform until eof
      * SI TAILLE OU NIVEAU D'ACTIVITE MODIFIE 
            if ind(97) = b"1" or ind(98) = b"1"
               move poolnmu of poolfe-i to c-pid
               move poolsize of poolfe-i to c-psiz
               move poolactl of poolfe-i to c-pact
               if c-pid = 1 move zero to c-pact
                            subtract 1 from c-pact end-if
               if c-pid = 2 move zero to c-psiz
                            subtract 1 from c-psiz end-if
      * APPEL D'UN CL POUR MODIF (EXECUTE API ET GERE LES MESSAGES) 
               call "ACTSBSCPA" using c-pid c-psiz c-pact
               on overflow continue
            end-if
            move poolopt of poolfe-i to woption
            move space to poolopt of poolfe-i
            rewrite subfile buffer format "POOLFE" indic tindic
            move 1 to x
      * OPTION RENSEIGNEE ==> LISTE DES SOUS SYSTEMES ASSOCIES 
            if woption not = spaces
              perform refpoolsbs
            end-if
            read subfile actsbs next modified format "POOLFE"
                indic tindic at end set eof to true end-read


|
           end-perform.
      * TRAITEMENT DES OPTIONS SUR SOUS FICHIER DES SOUS SYSTEMES 
           move space to flageof.
           read subfile actsbs next modified format "SBSFE" INDIC
                TINDIC at end set eof to true.
           perform until eof
      * SI SIGNON OU SIGNONLIB OU MAXACT MODIFIE 
            IF IND(91) = B"1" OR IND(92) = B"1" OR IND(93) = B"1"
      * APPEL D'UN CL POUR MODIF (EXECUTE CDE ET GERE LES MESSAGES) 
              CALL "ACTSBSCHG" USING SBSD OF SBSFE-I SBSDLIB OF SBSFE-I
                               SBSSIGNON OF SBSFE-I SBSSIGNLIB
                               OF SBSFE-I SBSMAXACT OF SBSFE-I
            END-IF
      * TRAITEMENT D'UNE OPTION SUR SOUS FICHIER DES SOUS SYSTEMES 
            move option OF SBSFE-I to woption
            move space to option OF SBSFE-O
            rewrite subfile buffer format "SBSFE" indic tindic
            if woption not = spaces
            move 1 to x
            evaluate woption
                     when "1" perform refsbspool
                     when "8" perform refsbsjobq
                     WHEN OTHER perform listjob
            end-evaluate
            end-if
            read subfile actsbs next modified format "SBSFE" INDIC
                TINDIC at end set eof to true end-read
           end-perform.
      * ************ SOUS PGM :SBS PAR POOL ************************ 
       refpoolsbs.
           move b"0" to ind(70) ind(71)
           move b"1" to ind(72)
           write buffer format "POOLSFC" indic tindic
           move b"1" to ind(71)
           move b"0" to ind(72)
           move 0 to rg
           move poolnmu of poolfe-i to z.
           move unpoolnombre(z) to x.
           perform x times
            add 1 to rg
            move space to poption
            move unpoolsbsname(z, rg) to psbsd
            move unpoolsbsnum(z, rg) to psbsnum
            move b"1" to ind(70)


|
            write subfile buffer format "POOLSFE" indic tindic
           end-perform.
           PERFORM WITH TEST AFTER UNTIL IND(12) = B"1"
           write buffer format "POOLSFC" indic tindic
           read actsbs format "POOLSFC" indic tindic
           IF IND(12) NOT = B"1"
           IF IND(14) = B"1" PERFORM WRKSBSP END-IF
      *  TRAITEMENT DES OPTIONS SUR SOUS FICHIER LISTE DES SBS PAR POOL
           move space to flageof
           read subfile actsbs next modified format "POOLSFE"
                at end set eof to true END-READ
           perform until eof
            move poption to woption
            move space to poption
            rewrite subfile buffer format "POOLSFE" indic tindic
            move 1 to x
            if woption not = spaces
              move psbsd to sbsd OF SBSFE-I perform listjob
            end-if
            read subfile actsbs next modified format "POOLSFE"
                at end set eof to true end-read
           end-perform
           END-IF
           move space to flageof
           END-PERFORM.
      * ************ SOUS PGM :POOL PAR SBS ************************ 
       refsbspool.
           move b"0" to ind(50) ind(51)
           move b"1" to ind(52)
           write buffer format "SBSPFC" indic tindic
           move b"1" to ind(51)
           move b"0" to ind(52)
           move 0 to rg
           move 1 to y
           perform until sbsd OF SBSFE-I = unsbsname(y)
            add 1 to y
           end-perform
           move unsbsnombre(y) to x.
           perform x times
            add 1 to rg
            move unsbspoolnum(y, rg) to sbspoolnum
            move unsbspoolname(y, rg) to sbspoolnam
            move unsbspoolid(y, rg) to z
            move unpooltaille(z) to sbspoolsiz


|
            move unpoolactlvl(z) to sbspoolact
            move b"1" to ind(50)
            write subfile buffer format "SBSPFE" indic tindic
           end-perform.
           PERFORM WITH TEST AFTER UNTIL IND(12) = B"1"
           write buffer format "SBSPFC" indic tindic
           read actsbs format "SBSPFC" indic tindic
           IF IND(14) = B"1" PERFORM WRKSBSP END-IF
           END-PERFORM.
      * ************ SOUS PGM :JOBQ PAR SBS ************************ 
       refsbsjobq.
           move spaces to flagjq
           move b"0" to ind(60) ind(61)
           move b"1" to ind(62)
           write buffer format "JOBQFC" indic tindic
           move b"1" to ind(61)
           move b"0" to ind(62)
           move zero to rg
      *  LISTE DES JOBQ VIA API  
             move sbsd OF SBSFE-I to sbsqualname
             move sbsdlib OF SBSFE-I TO SBSQUALLIB.
             call "QWDLSJBQ" using jusrspc apiformat3 sbsqual codretour
                 MOVE 125 TO debut.
                 MOVE 16  TO long.
             CALL "QUSRTVUS" USING jusrspc DEBUT LONG infos.
                  MOVE FIN TO DEBUT
                  ADD 1 TO DEBUT
                  MOVE 20 TO long
                  PERFORM NBSBS TIMES
                     CALL "QUSRTVUS" USING jusrspc DEBUT LONG jobqqual
                      add 1 to rg
                      set unejq to true
                      move b"1" to ind(60)
                      move space to jqoption
                      move jobqname to jobq
                      move jobqbib  to jobqlib
                      write subfile buffer format "JOBQFE" indic tindic
                      ADD LGPOST TO DEBUT
                  END-PERFORM.
           PERFORM WITH TEST AFTER UNTIL IND(12) = B"1"
           write buffer format "JOBQFC" indic tindic
           read actsbs format "JOBQFC" indic tindic
           IF IND(12) NOT = B"1"
           IF IND(14) = B"1"


|
              CALL "QCMDEXC" USING EXC EXCLEN  END-IF
           if unejq
      *  TRAITEMENT DES OPTIONS SUR SOUS FICHIER LISTE DES JOBQ
             move spaces to flageofjq
             read subfile actsbs next modified format "JOBQFE"
                  at end set eofjq to true end-read
             perform until eofjq
             MOVE JQOPTION TO WJQOPTION
             MOVE SPACES TO JQOPTION
             rewrite subfile buffer format "JOBQFE" indic tindic
              if WJQOPTION not = spaces  perform listjob2  end-if
              read subfile actsbs next modified format "JOBQFE"
                  at end set eofjq to true end-read
             end-perform
           end-if
           END-IF
           END-PERFORM.
      * ************ SOUS PGM :LISTE DES JOBS DANS UN SBS ********** 
       listjob.
           call "ACTSBSCLOP" using woption sbsd OF SBSFE-I.
      * ************ SOUS PGM :LISTE DES JOBS DANS UNE JOBQ********* 
       listjob2.
           call "ACTSBSCLOP" using WJQOPTION jobq.
      * ************ SOUS PGM :AFFICHAGE WRKSBS ******************** 
       WRKSBSP.
                  PERFORM WITH TEST AFTER UNTIL IND(12) = B"1"
                  write buffer format "WRKSBSFC" indic tindic
                  read  actsbs format "WRKSBSFC" indic tindic
                  IF IND(14) = B"1" CALL "QCMDEXC" USING EXC2 EXCLEN
                  END-IF
                  END-PERFORM.
                  MOVE B"0" TO IND(12).
      * ************ FIN DES SOUS PROGRAMMES ******************** 




©AF400