PreviousNext
Help > Développement > Fonctions W-Langage pour AS/400 > Fonctions Appel de Programmes/Procédure > ASAppelPgm >
Détail

Pour une première approche, vous pouvez consulter l’exemple ‘PgmCall’ qui montre différentes façons d’appeler le programme RPCSAMPLE via ASAppelPgm.

 

Pour les programmes simples, on peut par exemple donner les paramètres un par un à ASAppelPgm. Par exemple :

SI PAS ASPgmCall("*PGM/RPCSAMPLE", "", cnx, OP1, STR1, OP2, STR2, OP3) ALORS

 Erreur(ErreurInfo(errComplet))

FIN

 

Il faut dans ce cas que les valeurs fournies soient bien sûr dans le même ordre. La description fournie (ici une description Easycom) sert à connaître les tailles AS/400 et usages de chaque élément.

 

Il est également possible de fournir une structure. Par exemple :

 

STStrpcsample est structure

 rOp1 est réel

 sStr1 est chaîne sur 20

 sOp2 est réel

 sStr2 est chaîne sur 30

 rOp3 est réel

FIN

stRpcSample est STStrpcsample

 

 

stRpcSample:rOp1 = OP1

stRpcSample:sStr1 = STR1

stRpcSample:sOp2 = OP2

stRpcSample:sStr2 = STR2

 

SI PAS ASPgmCall("*PGM/RPCSAMPLE", "", cnx, stRpcSample) ALORS

 Erreur(ErreurInfo(errComplet))

FIN

La structure devra bien entendu refléter les paramètres véritables.

 

Enfin, il est également possible d’utiliser une syntaxe PCML présente dans un fichier de l’IFS. Par exemple:

 

SI PAS ASPgmCall("/tmp/rpcsample.pcml", "", cnx, OP1, STR1, OP2, STR2, OP3) ALORS

 Erreur(ErreurInfo(errComplet))

FIN

 

La syntaxe PCML pour RPCSAMPLE est la suivante :

 

<pcml version="1.0"> 

<!-- PCML source for calling "RPCSAMPLE" program --> 

<!-- Program "RPCSAMPLE" and its parameter list --> 

 

<program name="RPCSAMPLE" path="/*LIBL.lib/RPCSAMPLE.pgm"> 

 

<data name="Op1" type= length="5" precision="2" usage="input"/>

<data name="Str1" type="char" length= usage="input"/> 

<data name="Op2" type="packed" length="5" precision="2" usage="inputoutput"/>

<data name="Str2" type="char" length="30" usage="inputoutput"/> 

<data name="Op3" type="packed" length="10" precision="4" usage="output"/>

 

</program> 

 

</pcml>

 

Il est également possible de passer directement le PCML à la place du nom du fichier.

 

C’est un langage conçu par IBM pour les appels de programmes et peut être généré en sortie de compilation COBOL ou RPG ILE. Nous y retrouvons les types natifs, et la possibilité de decrire une procédure de programme de service.