CHGCMDDFT
Citation de nombre pi le 19 mars 2019, 9 h 05 minBonjour,
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 ?!
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 ?!
Citation de remit le 19 mars 2019, 11 h 30 minIl 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.
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 nombre pi le 19 mars 2019, 14 h 17 minCitation de remit le 19 mars 2019, 11 h 30 minIl 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.
Citation de remit le 19 mars 2019, 11 h 30 minIl 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.
Citation de monthi le 23 mars 2019, 11 h 26 minBonjour
il faut utiliser le point d'exit QIBM_QCA_CHG_COMMAND .
Cdlt
Bonjour
il faut utiliser le point d'exit QIBM_QCA_CHG_COMMAND .
Cdlt
Citation de nombre pi le 25 mars 2019, 14 h 41 minCitation de Skogkatt le 23 mars 2019, 11 h 26 minBonjour
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.
Citation de Skogkatt le 23 mars 2019, 11 h 26 minBonjour
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.
Citation de monthi le 25 mars 2019, 14 h 56 minvoir le post suivant
https://www.foothing.net/forum/topic/798/?id=798
Cdlt
voir le post suivant
Cdlt
Citation de monthi le 25 mars 2019, 15 h 55 minPour 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 32700Dparam2 ds
Dreplace_command_string...
D 32700Dparam3 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 CHGCMDFTPuis passe la commande suivante :
ADDEXITPGM EXITPNT(QIBM_QCA_CHG_COMMAND) FORMAT(CHGC0100) PGMNBR(*LOW) PGM(QGPL/CHGCMDFT) PGMDTA(*JOB 20 'WRKACTJOB QSYS')
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
Citation de nombre pi le 26 mars 2019, 8 h 19 minAvez-vous un autre exemple plus simple ?
Sincèrement je n'ai pas très bien compris ce dernier.
Avez-vous un autre exemple plus simple ?
Sincèrement je n'ai pas très bien compris ce dernier.
Citation de monthi le 26 mars 2019, 15 h 38 minBonjour
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
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
Citation de nombre pi le 1 avril 2019, 12 h 59 minMerci beaucoup Skogkatt, ça fonctionne exactement comme je voudrais le faire.
Merci beaucoup Skogkatt, ça fonctionne exactement comme je voudrais le faire.