Programme de Service (1)
9 Mai 2009 , Rédigé par Milan Publié dans #Rpg
appelables depuis d'autres programmes.
C'est une sorte de DLL.
NB1: L' ile - Integrated Language Environnement –
a introduit la notion de module, objet de type *module :
Un source est compilé en module (non exécutable) par CrtRpgMod.
Puis, à partir d'un ou plusieurs modules,
on crée un programme : CrtPgm
ou un Programme de Service : CrtSrvPgm.
L'option 14 CrtBndPgm est une facilité : elle compile un module dans Qtemp,
puis crée le pgm.
NB2 : Programmes et Programmes de Services partagent en commun des paramètres.
Ceux-ci sont décrits dans un prototype (PR en carte D)
que l'on place habituellement dans un membre source à part ;
et qui est référencé dans l'appelant et l'appelé par un /copy.
NB3 : Un répertoire de liage, objet de type *bnddir, facilite les compilations
en conservant la liste de ce qui est nécessaire à la compile. Wrkbnddir.
1) Compiler un Programme de Service :
- 15 (CrtRpgMod)
- CrtSrvPgm
(Un membre correspondant - même nom - doit exister dans le
fichier Qsrvsrc avec les instructions Strpgmexp, Export et Endpgmexp.
Ceci permet d'avoir plusieurs signatures, évitant ainsi d'avoir à
recompiler les programmes utilisateurs à chaque changement dans le PS.
A défaut, passer la cmd CrtSrvPgm avec *all dans le parm export.)
2) Compiler un programme utilisateur de PS :
- 14 (CrtBndRpg)
Ceci n'est possible que si le source contient les 3 cartes H ci-dessous :
Hdftactgrp(*no)
Hactgrp('MILAN')
Hbnddir('MILAN')
A défaut, il faudra indiquer ces paramètres dans la commande par F4.
Groupe d'activation par défaut *NO
Groupe d'activation . . . . . . MILAN
Répertoire de liage . . . . . . MILAN
/image%2F1025633%2F20151122%2Fob_b0e74c_pam007i.png)