Accueil du site > Les articles > "SPOULE" ou le CPYSPLF automatisé
Version à imprimer Enregistrer au format PDF

"SPOULE" ou le CPYSPLF automatisé

jeudi 12 août 2004, par Christian Kraemer Visites  4717 Première mise en ligne le jeudi 6 novembre 2003.

L’utilitaire décrit ci-dessous, que j’ai appelé SPOULE, permet de saisir très rapidement les paramètres d’un spoule de manière à accélérer le processus du CPYSPLF (copy spool file). Chacun se rappelle la longue liste de paramètres à saisir sur un papier, puis de la corvée consistant à recopier ces paramètres dans la commande CPYSPLF. C’est aussi valable pour les commandes SNDNETSPLF, SNDTCPSPLF, LPR, ...


Dans Client Acces on peut copier graphiquement des portions d’écran, au moyen du presse-papiers de Windows. En utilisant cette particularité, j’ai imaginé une utilisation particulière pour décoder une ligne d’un WRKSPLF.

Dans un premier temps, on cherche le spoule à manipuler, puis on presse 2 fois la touche F11, ensuite on copie toute la ligne du spoule qui nous intéresse dans le presse-papiers.
On appelle le programme SPOULE par un CALL SPOULE (on peut aussi créer une CMD SPOULE rattachée au programme du même nom).
On colle le contenu du Presse-papiers, on presse la touche ENTREE, et le CPYSPLF se fait automatiquement.

Naturellement, cela peut être étendu à d’autres commandes.

Bien sûr, cela ne marche pas avec les écrans passifs.

 

Source de la commande SPOULE rattachée au CL SPOULECL :

CMD        PROMPT('Usage des informations spoule')

 

Source du programme CL SPOULECL :

            PGM

            DCLF       FILE(SPOULEFM) RCDFMT(E1)

            DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)
            DCL        VAR(&SPLNBR) TYPE(*CHAR) LEN(4)
            DCL        VAR(&TRAVAIL) TYPE(*CHAR) LEN(10)
            DCL        VAR(&USER) TYPE(*CHAR) LEN(10)
            DCL        VAR(&NUMERO) TYPE(*CHAR) LEN(6)
            DCL        VAR(&NBR) TYPE(*DEC) LEN(4 0)

            SNDRCVF    RCDFMT(E1)

            CHGVAR     VAR(&FILE) VALUE(%SST(&FLD001 1 10))
            CHGVAR     VAR(&SPLNBR) VALUE(%SST(&FLD001 13 4))
            CHGVAR     VAR(&TRAVAIL) VALUE(%SST(&FLD001 19 10))
            CHGVAR     VAR(&USER) VALUE(%SST(&FLD001 31 10))
            CHGVAR     VAR(&NUMERO) VALUE(%SST(&FLD001 43 6))
            CHGVAR     VAR(&NBR) VALUE(&SPLNBR)

            CPYSPLF    FILE(&FILE) TOFILE(LIB/BDD) +
                         JOB(&NUMERO/&USER/&TRAVAIL) SPLNBR(&NBR) +
                         TOMBR(*FIRST) MBROPT(*REPLACE) /* BDD et +
                         LIB sont ... renseigner */

/*                                                                           */
/*  A la place de CPYSPLF on peut utiliser SNDNETSPLF, SNDTCPSPLF, LPR, ...  */
/*                                                                           */

            SNDNETSPLF FILE(&FILE) TOUSRID((&ID &ADDR)) +
                         JOB(&NUMERO/&USER/&TRAVAIL) SPLNBR(&NBR) +
                         /* ID et ADDR sont à renseigner */

            SNDTCPSPLF RMTSYS(RMTSYS) PRTQ(PRTQ) FILE(&FILE) +
                         JOB(&NUMERO/&USER/&TRAVAIL) SPLNBR(&NBR) +
                         TRANSFORM(*YES) MFRTYPMDL(MFRTYPMDL) +
                         DLTSPLF(*NO) SEPPAGE(*NO) /* RMTSYS, PRTQ +
                         et MFRTYPMDL sont à renseigner */

            LPR        RMTSYS(RMTSYS) PRTQ(PRTQ) FILE(&FILE) +
                         JOB(&NUMERO/&USER/&TRAVAIL) SPLNBR(&NBR) +
                         TRANSFORM(*YES) MFRTYPMDL(MFRTYPMDL) +
                         WSCST(WSCST) DLTSPLF(*NO) SEPPAGE(*NO) /* +
                         RMTSYS, PRTQ, MFRTYPMDL et WSCST sont ... +
                         renseigner */

FIN:
            ENDPGM

Source du DSPF SPOULEFM :

    A                                      DSPSIZ(24 80 *DS3)
    A                                      PRINT
    A          R E1
    A                                  1  2SYSNAME
    A                                  1 23'Affichage des informations des spo-
    A                                      ules'
    A                                      DSPATR(HI)
    A                                  1 72DATE
    A                                      EDTCDE(Y)
    A                                  2  2USER
    A                                  2 72TIME
    A                                  7 30'Coller les informations :'
    A                                      COLOR(BLU)
    A            FLD001        70   B  9  5