- D'exécuter un traitement à partir du système Unix,
- Sans avoir a renseigner de fichier paramètres,
- Tous les paramètres étant dans la demande ZO.
Prérequis :
- Avoir paramétré la/les demande(s) "Opération" à utiliser,
- Et comme le rappelle le Guide Technique - avoir généré les exécutables associés !
Ligne de commande Unix :
sh ${PSHL}/${RDOPER}RJ2 "${JSCRI}" "${IDREQU}" "${CDELMT}" "${TEXSER}" "${ROLMSB}" "${ROLVSB}"
avec :
- RDOPER le radical d'un de vos processus Opération (AS800, FP800 ou autre).
- JSCRI le nom de la chaîne (AS0FSNRA, FP800NBX, AS800NPQ ...)
- IDREQU le code de la demande Opération (à blanc pour les templates Query)
- CDELMT le code du query (en cas de template Query, à blanc sinon)
- TEXSER nom du verrou pour sérialisation - ne pas dépasser 25 caractères (carte PA4S)
- ROLMSB modèle de rôle à appliquer
- ROLVSB valeur de rôle à appliquer
- La RJ2 n'est présente que sur les systèmes Unix et Linux,
- Seules les chaînes accessibles par Opération / l'Assistant de Gestion sont éligibles,
- La chaîne n'est pas compatible avec les "enchaînements" NRC,
- Une analyse des logs reste nécessaire car les codes retours sont parfois imparfaits - ou ne peuvent prendre en compte des appréciations d'ordre fonctionnel (des rejets dans une NRB sont-ils bloquants ? et une "population vide" ?),
- Second point capital : une gestion des mises à jour des paramètres des demandes Opération est à mettre en place. Car certains doivent évoluer - soit en fonction de la date système - soit du cycle de paie ...
Détail de la soumission
La chaîne RJ2 exécute :
- BOB : comme dans le script OPER, ce programme crée un version habillée de la chaîne dans $TMP/W120JS."$nupro" à partir de celle présente dans prod/shl. Il y place des cartes paramètre avec le NUDOSS de la demande, le code du processus, le rôle et sa valeur.
- BOZ : celui ci active la demande Opération (ZO1S-TESOUD) et mémorise ne NUDOSS et le Timestamp de soumission de la demande dans $TMP/W140PO.$nupro
- La chaine habillée
- BOZ : recupère le code retour de la chaîne dans le dossier de travail pour l'émettre en fin d'exécution (les codes retour peuvent valoir 0 4 8 ... 99). Sauf cas particulier un code retour Unix inférieur ou égal à 4 vaut pour "Fin normale" - sinon c'est une "Fin anormale".
Sérialiser des traitements
Le paramètre TEXSER permet d'utiliser la commande $SIGACS/bin/XSERIALISE. Le programme BOB insère la commande dans la chaîne à lancer. Ainsi deux traitements utilisant le même verrou seront exécutés en série. Toutefois dans la version dont je dispose il y a plusieurs problèmes :
- Il est nécessaire de créer le répertoire $SIGACS/EXPLOIT,
- Dans la chaîne RJ2 il faut changer $SIGACS/BIN/XSERIALIZE en $SIGACS/bin/XSERIALIZE,
- Le 3eme paramètre CDELMT sert de nom au fichier servant de verrou ! Remplacez $3 par $4 pour utiliser le paramètre TEXSER à la place,
- Pour que la commande XSERIALIZE fonctionne il faut que le fichier $SIGACS/EXPLOIT/<TEXSER> ait été préalablement créé : la chaîne ne le fait pas...
$SIGACS/bin/XSERIALIZE STATUS $SIGACS/EXPLOIT/<TEXSER>
Pour libérer un fichier verrou :
$SIGACS/bin/XSERIALIZE FREE $SIGACS/EXPLOIT/<TEXSER>
Pour le détruire :
$SIGACS/bin/XSERIALIZE REMOVE $SIGACS/EXPLOIT/<TEXSER>
Shell pouvant servir de lanceur
sub
[ ! -f ${PSHL}/AS800RJ2 ] && echo "Chaine AS800RJ2 inexistante !" && exit 1
[ $# -lt 2 ] && echo "Syntaxe : sub JSCRI IDREQU [CDQRY] [TEXSER] [ROLMSB] [ROLVSB]" && exit 1
[ ! -f ${PSHL}/${1} ] && echo "Chaine ${PSHL}/${1} inexistante !" && exit 1
[ "${4}" -a ! -f "${SBIN}/EXPLOIT/${4}" ] && touch "${SBIN}/EXPLOIT/${4}"
ksh ${PSHL}/AS800RJ2 "${1:?Chaine?}" "${2}" "${3}" "${4}" "${5}" "${6}"
[ $? -ge 8 ] && echo "Exécution en erreur !" && exit 1
exit 0
Exemple d'utilisation :
sub AS0FSNRA "A01"
*****************************************************************
* Chaine RJ2 - Triplet UNO (UNIX/ORACLE) *
*****************************************************************
JOB : JRJ2 DATE : 2013/05/31 17:17:12
*-------------------------- STEP120A ---------------------------*
* Chargement de paramètres dans T120PA *
*-------------------------- STEP120N ---------------------------*
* *
*---------------------------------------------------------------*
AS800BOB-BBAD0001---------------------------------------------------------
AS800BOB-BBAD0002-IDENTIFICATION DU PROGRAMME : BOB/7.000/2013-04-02-18.05.20/F/
AS800BOB-BBAD0003-DEBUT DE TRAITEMENT - HORODATAGE DE DEBUT : 2013-05-31-17.17.12
AS800BOB-BBAD0004-LISTE DES PARAMETRES LUS
AS800BOB-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOB-00000000-PA4SNMJOBSAS0FSNRA
AS800BOB-00000000-PA4SIDREQUA01
AS800BOB-00000000-PA4SCDELMT
AS800BOB-00000000-PA4STEXSER
AS800BOB-00000000-PA4SROLMSB
AS800BOB-00000000-PA4SROLVSB
AS800BOB-00000000-PA4SXSZGET/hradev/BIN/XSERIALIZE GET /hradev/EXPLOIT/
AS800BOB-00000000-PA4SXSZFRE/hradev/BIN/XSERIALIZE FREE /hradev/EXPLOIT/
AS800BOB-00000000-PA4S<END>
AS800BOB-BBAO0036-Demande non schedulée (TEDMAC=N)
AS800BOB-BBAD0005-LISTE DES PARAMETRES INTERPRETES ET UTILISES
AS800BOB-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOB-00000000-PA4SIDREQUA01
AS800BOB-00000000-PA4SCDELMT
AS800BOB-00000000-PA4STEXSER
AS800BOB-00000000-PA4SROLMSB
AS800BOB-00000000-PA4SROLVSB
AS800BOB-00000000-PA4SXSZGET/hradev/BIN/XSERIALIZE GET /hradev/EXPLOIT/
AS800BOB-00000000-PA4SXSZFRE/hradev/BIN/XSERIALIZE FREE /hradev/EXPLOIT/
AS800BOB-00000000-PA47
AS800BOB-00000000-PA45000002170AS0FS AS0FSNRA
AS800BOB-00000000-PA46 AS0FS
AS800BOB-00000000-PA47
AS800BOB-BBAD0008-STATISTIQUES SUR LES FICHIERS (ENREGISTREMENTS LUS/ECRITS)
AS800BOB-BBAD0009-PA (PA) : 000000000000012
AS800BOB-BBAD0009-JE (JE) : 000000000001221
AS800BOB-BBAD0009-JS (JS) : 000000000001093
AS800BOB-BBAD0010-*** BOB : FIN NORMALE - HORODATAGE DE FIN : 2013-05-31-17.17.12 **** CODE RETOUR 00 ******
...
*-------------------------- STEP140N ---------------------------*
* *
*---------------------------------------------------------------*
AS800BOZ-BBAD0001---------------------------------------------------------
AS800BOZ-BBAD0002-IDENTIFICATION DU PROGRAMME : BOZ/7.000/2013-04-02-18.05.30/F/
AS800BOZ-BBAD0003-DEBUT DE TRAITEMENT - HORODATAGE DE DEBUT : 2013-05-31-17.17.12
AS800BOZ-BBAD0004-LISTE DES PARAMETRES LUS
AS800BOZ-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOZ-00000000-PA4SNMJOBSAS0FSNRA
AS800BOZ-00000000-PA4SIDREQUA01
AS800BOZ-00000000-PA4SCDELMT
AS800BOZ-00000000-PA4STYTRAI1
AS800BOZ-00000000-PA4S<END>
AS800BOZ-BBAD0005-LISTE DES PARAMETRES INTERPRETES ET UTILISES
AS800BOZ-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOZ-00000000-PA4SNMJOBSAS0FSNRA
AS800BOZ-00000000-PA4SIDREQUA01
AS800BOZ-00000000-PA4SCDELMT
AS800BOZ-00000000-PA4STYTRAI1
AS800BOZ-00000000-PA4S<END>
AS800BOZ-BBAD0008-STATISTIQUES SUR LES FICHIERS (ENREGISTREMENTS LUS/ECRITS)
AS800BOZ-BBAD0009-PA (PA) : 000000000000005
AS800BOZ-BBAD0009-PI (PI) : 000000000000000
AS800BOZ-BBAD0009-PO (PO) : 000000000000001
AS800BOZ-BBAD0010-*** BOZ : FIN NORMALE - HORODATAGE DE FIN : 2013-05-31-17.17.12 **** CODE RETOUR 00 ******
*******************************************************
* Shell Execution *
*******************************************************
*****************************************************************
* Production de mouvements *
*****************************************************************
JOB : JNRA DATE : 2013/05/31 17:17:12
*-------------------------- STEP050A ---------------------------*
* Chargement de paramètres dans T050PA *
*-------------------------- STEP050B ---------------------------*
* Chargement de paramètres dans T050PB *
*-------------------------- STEP050N ---------------------------*
* Initialisation de la phase *
*---------------------------------------------------------------*
AS800BOP-BBAD0001---------------------------------------------------------
AS800BOP-BBAD0002-IDENTIFICATION DU PROGRAMME : BOP/7.000/2013-04-02-18.05.23/F/
AS800BOP-BBAD0003-DEBUT DE TRAITEMENT - HORODATAGE DE DEBUT : 2013-05-31-17.17.13
AS800BOP-BBAD0004-LISTE DES PARAMETRES LUS
AS800BOP-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOP-00000000-PA4S000002170AS0FS
AS800BOP-BBAD0005-LISTE DES PARAMETRES INTERPRETES ET UTILISES
AS800BOP-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOP-00000000-PA45000002170AS0FS
AS800BOP-BBAD0004-LISTE DES PARAMETRES LUS
AS800BOP-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOP-00000000-CHECK
AS800BOP-00000000-22S3
AS800BOP-00000000-23S3
AS800BOP-00000000-27S3
AS800BOP-00000000-28S3
AS800BOP-BBAD0005-LISTE DES PARAMETRES INTERPRETES ET UTILISES
AS800BOP-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOP-00000000-22S3
AS800BOP-00000000-23S3
AS800BOP-00000000-27S3
AS800BOP-00000000-28S3
AS800BOP-BBAO0002-TRAVAIL TRAITE 000000000008031 NRA A01 ALLHRLO
AS800BOP-BBAO0037-Mode schedulé
AS800BOP-BBAD0008-STATISTIQUES SUR LES FICHIERS (ENREGISTREMENTS LUS/ECRITS)
AS800BOP-BBAD0009-NT (NT) : 000000000000001
AS800BOP-BBAD0009-PA (PA) : 000000000000001
AS800BOP-BBAD0009-PB (PB) : 000000000000005
AS800BOP-BBAD0009-SD (S3) : 000000000000002
AS800BOP-BBAD0010-*** BOP : FIN NORMALE - HORODATAGE DE FIN : 2013-05-31-17.17.13 **** CODE RETOUR 00 ******
...
JOB : JNRA DATE : 2013/05/31 17:17:37
*---------------------------------------------------------------*
* Fin du job *
*---------------------------------------------------------------*
*-------------------------- STEP180A ---------------------------*
* Chargement de paramètres dans T180PA *
*---------------------------------------------------------------*
*-------------------------- STEP180B ---------------------------*
* Initialisation du fichier vide T180PO *
*---------------------------------------------------------------*
*-------------------------- STEP180N ---------------------------*
* *
*---------------------------------------------------------------*
AS800BOZ-BBAD0001---------------------------------------------------------
AS800BOZ-BBAD0002-IDENTIFICATION DU PROGRAMME : BOZ/7.000/2013-04-02-18.05.30/F/
AS800BOZ-BBAD0003-DEBUT DE TRAITEMENT - HORODATAGE DE DEBUT : 2013-05-31-17.17.37
AS800BOZ-BBAD0004-LISTE DES PARAMETRES LUS
AS800BOZ-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOZ-00000000-PA4SNMJOBSAS0FSNRA
AS800BOZ-00000000-PA4SIDREQUA01
AS800BOZ-00000000-PA4SCDELMT
AS800BOZ-00000000-PA4STYTRAI2
AS800BOZ-00000000-PA4S<END>
AS800BOZ-BBAD0005-LISTE DES PARAMETRES INTERPRETES ET UTILISES
AS800BOZ-BBAD0006-....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
AS800BOZ-00000000-PA4SNMJOBSAS0FSNRA
AS800BOZ-00000000-PA4SIDREQUA01
AS800BOZ-00000000-PA4SCDELMT
AS800BOZ-00000000-PA4STYTRAI2
AS800BOZ-00000000-PA4S<END>
AS800BOZ-BBAO0034-Code retour 01 pour la chaine AS0FSNRA (dossier 000000000008031/ZO2C) (FZO2C94)
AS800BOZ-BBAD0008-STATISTIQUES SUR LES FICHIERS (ENREGISTREMENTS LUS/ECRITS)
AS800BOZ-BBAD0009-PA (PA) : 000000000000005
AS800BOZ-BBAD0009-PI (PI) : 000000000000001
AS800BOZ-BBAD0009-PO (PO) : 000000000000000
AS800BOZ-BBAD0010-*** BOZ : FIN NORMALE - HORODATAGE DE FIN : 2013-05-31-17.17.37 **** CODE RETOUR 01 ******
JOB : JRJ2 DATE : 2013/05/31 17:17:38
*---------------------------------------------------------------*
* Fin du job *
*---------------------------------------------------------------*
Bonjour,
RépondreSupprimerJe suis utilisateur de l'outil HR ACCESS, et je savoir
s'il est possible de generer des macros pour remplir différents champs sur des champs libres d'un ou plusieur écrans.
Merci.
cristif.92@gmail.com
Je pense que tu penses à un utilitaire comme "CLIENT VANTAGE".
SupprimerMais il me semble que c'est assez technique.
PS : je ne vois pas le rapport avec le sujet de l'article ...
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimerLa RJ2 permet de simplifier l'automatisation.
RépondreSupprimerMais dans le cas où on écrit un shell qui enchaine :
* AS800RJ2 "wwwwwK24" "Toto"
* AS800RJ2 "xxxxxK3W" "Toto"
* AS800RJ2 "yyyyyNJ6" "Toto"
* AS800RJ2 "zzzzzK2U" "Toto"
Comment récupérer le code retour de la K24 afin de le controler avant d'enchainer avec la K3W ?
Le code retour de la chaine est retourné par la RJ2.
SupprimerC'est de la programmation script Unix classique ...
sh AS800RJ2 "wwwwwK24" "Toto"
if [ $? -gt 4 ]; then exit 1; fi
sh AS800RJ2 "wwwwwK3W" "Toto"
if [ $? -gt 4 ]; then exit 1; fi
...
exit 0
Rappel : un code retour HR inférieur ou égal à 4 vaut pour "Fin normale" sinon c'est une "Fin anormale". Mais dans certains cas il vaut mieux rediriger le log et l'analyser.
Bonjour Digix,
RépondreSupprimerSais-tu s'il existe le pendant de RJ2 sur Windows ?
Bonne journée,
Bonjour Digix,
RépondreSupprimerComment récupère t'on le nupro pour trouver l'états dans $LIS?
Bonne journée
Si tu exportes nupro=$$ avant d'exécuter la RJ2 alors la chaine (processus fils de ta session Unix) en héritera - attention si tu exécutes plusieurs traitements car le nupro n'évoluera pas ce qui risque de provoquer des écrasements de fichiers - complète le par exemple avec un horodatage : export nupro=$(date +'%Y%m%d%H%M%S).$$
SupprimerMerci
SupprimerJe n'avais pas penser à cela.
Ca marche très bien.
Bonjour Digix,
RépondreSupprimerEst-ce que l'on peut lancer une RJ2 avec une NPQ ?
J'ai l'impression que non car IDREQU est vide et j'ai l'erreur suivante :
Demande non trouvée dans ZO00 pour NPQ AS800
Bonne journée
J'ai trouvé, il faut rentrer un paramètre de plus et IDREQU doit être vide
RépondreSupprimerBonjour Digix, comment déclencher un "post-traitement" (script par exemple) après la soumission d'une demande opération ?
RépondreSupprimerSi tu as soumis ta demande avec RJ2, tu peux enchainer avec un script.
SupprimerSi c'est après une soumission via HRaSpace, ta demande va transiter via le script job puis OPER (si c'est une activation suivie d'une RBB c'est via OPE2, et si c'est dans un enchainement NRC ce sera via la NRE ... mais en arrière plan, pas simple dans ce cas).
Dans le cas de OPER, après le message "OPER End of job" tu peux
1) rechercher dans $LOG/$JOBLOG le NUDOSS du travail (message BOP-BBAO0002-TRAVAIL TRAITE 000000000123456) puis exécuter un script spécifique en lui passant ce NUDOSS en paramètre.
2) ce post-traitement pourra faire un SELECT en base pour retrouver CDPHAS, IDREQU et autre.
3) en fonction des critères qui te sont pertinents, il pourra exécuter un post-traitement spécifique ou un autre.