Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400CHGCMDDFT
Vous devez vous identifier pour créer des messages et des sujets.

CHGCMDDFT

Bonjour,

 

J'avais voulu faire en sorte que lorsque j'exécute la commande WRKACTJOB celle-ci se limite à l'affichage des sous-systèmes QINTER et QBATCH. Comme si j'avais exécuté WRKACTJOB SBS(QINTER QBATCH).

J'ai fait un CHGCMDDFT CMD(QSYS/WRKACTJOB) NEWDFT('SBS(QINTER QBATCH)')

Mais le système m'affiche l'erreur suivante :

CPD6267
Message . . . . : Impossible d'indiquer la valeur par défaut du mot clé plus
d'une fois. 
Cause . . . . . : Le mot clé SBS a été défini comme liste de valeurs. Or, SBS 
a plus d'une valeur pour le même élément de liste ou qualifiant. 
Que faire . . . : Conservez une seule valeur ou liste de valeurs, comme valeur
par défaut pour le nom qualifié ou la nouvelle liste. 

N'est-il pas possible de faire passer une liste de valeurs dans la commande ?!


Il semble que ce ne soit pas possible (cf. https://archive.midrange.com/midrange-l/200305/msg00105.html)

Peut-être créer un CL appelé par une commande comme indiqué dans ce lien.

Citation de remit le 19 mars 2019, 11 h 30 min

Il semble que ce ne soit pas possible (cf. https://archive.midrange.com/midrange-l/200305/msg00105.html)

Peut-être créer un CL appelé par une commande comme indiqué dans ce lien.

Merci remit je vais alors devoir créer le CL appelé par une commande comme indiqué dans ce lien.

Bonjour

il faut utiliser le point d'exit QIBM_QCA_CHG_COMMAND .

Cdlt

 

 

Citation de Skogkatt le 23 mars 2019, 11 h 26 min

Bonjour

il faut utiliser le point d'exit QIBM_QCA_CHG_COMMAND .

Cdlt

Ah, ça je ne sais pas faire.

Je vous prie de bien vouloir m'apprendre.

voir le post suivant

Cdlt

 

 

Pour ton exemple

//*************************************************************************
//  Exit Point QIBM_QCA_CHG_COMMAND
//
//    L'exit point envoi 3 Paramètres
//
//      - Paramètre 1
//
//       *************************************************************************************
//       * Descriptif                                           * Input/Output *  Valeur
//       *************************************************************************************
//       * Nom de l'exit point                                  *  Input       * QIBM_QCA_CHG_
//       * Format de l'exit point                               *  Input       * CHGC0100
//       * Nom de la commande                                   *  Input       *
//       * Bibliothèque de la commande                          *  Input       *
//       * Commande modifiable                                  *  Input       * 0=Non Modifia
//       *                                                      *              * 1=Modifiabl
//       * Prompt(F4) sur la commande                           *  Input       * 0=Non prompté
//       *                                                      *              * 1=prompté
//       * Reservé                                              *  Input       *
//       * Offset de début de la chaîne de commande             *  Input       *
//       * Longueur de la chaîne de commande                    *  Input       *
//       * Chaîne de commande                                   *  Input       *
//       *                                                      *              *
//       *************************************************************************************
//
//      - Paramètre 2
//
//       *************************************************************************************
//       * Descriptif                                           * Input/Output *  Valeur
//       *************************************************************************************
//       * Chaîne de remplacement de commande                   *  Output      *
//       *                                                      *              *
//       *************************************************************************************
//
//      - Paramètre 3
//
//       *************************************************************************************
//       * Descriptif                                           * Input/Output *  Valeur
//       *************************************************************************************

//       * Longueur de  la  chaîne de remplacement de commande  *  Output      *
//       ************************************************************************************
//
//  Incription du programme sur l'exit point  (à faire pour chaque commande)
//
//      Exemple sur la commande WRKACTJOB
//
//       ADDEXITPGM EXITPNT(QIBM_QCA_CHG_COMMAND)   +
//                  FORMAT(CHGC0100)                +
//                  PGMNBR(*LOW)                    +
//                  PGM(QGPL/CHGCMDFT)       +
//                  PGMDTA(*JOB 20 'WRKACTJOB QSYS')
//
Dparam1           ds         32767
D Exit_point_Name...
D                               20
D Exit_point_Format...
d                                8
D Command_Name                  10
D Library_Name                  10
D Change                          N
D prompt                          N
D                                2
D Offset                         9B 0
D Command_length                 9B 0
D command_string             32700

Dparam2           ds
Dreplace_command_string...
D                            32700

Dparam3           ds
Dreplace_command_string_length...
D                                9B 0
//** Variable de travail
DCMD              S          32700     varying
Doption           S          32700     varying
DP                S             10I 0
DP2               S             10I 0
C     *entry        plist
C                   parm                    param1
C                   parm                    param2
C                   parm                    param3

/FREE
if change;
if  Command_Name='WRKACTJOB';
cmd=%subst(param1:offset+1:command_length);
p=%scan(' SBS(':cmd);
if p=0;
cmd+=' SBS(QINTER QBATCH)';
endif;
replace_command_string=cmd;
replace_command_string_length=%len(cmd);

endif;
endif;
*inlr=*on;
/END-FREE
Compile le source du programme ci dessus dans QGPL et appelle le CHGCMDFT

Puis passe la commande suivante :

ADDEXITPGM EXITPNT(QIBM_QCA_CHG_COMMAND)   FORMAT(CHGC0100)  PGMNBR(*LOW)  PGM(QGPL/CHGCMDFT)  PGMDTA(*JOB 20 'WRKACTJOB QSYS')

Cdlt

 

 

Avez-vous un autre exemple plus simple ?

Sincèrement je n'ai pas très bien compris ce dernier.

Bonjour

le dernier post correspond exactement a ce que tu veux faire

il rajoute  SBS(QINTER QBATCH) a la commande WRKACTJOB si le paramètre SBS n'est pas présent.

Met le code dans un membre  source CHGCMDFT  de type RPGLE

Compile le programme dans QGPL

puis enregistre le point d'exit par la commande

ADDEXITPGM

EXITPNT(QIBM_QCA_CHG_COMMAND)

FORMAT(CHGC0100)

PGMNBR(*LOW)

PGM(QGPL/CHGCMDFT)

PGMDTA(*JOB 20 'WRKACTJOB QSYS')

puis lance la commande WRKACTJOB

 

 

 

Merci beaucoup Skogkatt, ça fonctionne exactement comme je voudrais le faire.