Paramètre modifié?

RPG (3 et 4, free), CL, SQL, etc...
Répondre
germor
Messages : 75
Enregistré le : lun. 06 juin 2011, 08:01:43

(sans texte)

Message par germor »

Bonjour,
Sous V7 R1,
Dans un programme de type SQLRPGLE

On a un Prototype :

Code : Tout sélectionner

D PROTOTY1    PR
D P_CHAMP1                     9  0 Value
D P_CHAMP2                     14
D P_Retour                       2            
Et la déclaration des variables :

Code : Tout sélectionner

D L_CHAMP1      S              9
D L_CHAMP2      S              14
D L_RetouRef      S              2   
Et un appel à un service dans un programme de services :

Code : Tout sélectionner

C                   Callp     PROGR1SP(L_CHAMP1:L_CHAMP2
C                                          :L_REtouREf)  
Dans le programme de service, on a le même prototype :

Code : Tout sélectionner

D PROTOTY1    PR
D P_CHAMP1                     9  0 Value
D P_CHAMP2                     14
D P_Retour                       2            
Et la déclaration des paramêtres :

Code : Tout sélectionner

P PROGR1SP    B                   Export
D                 PI
D P_CHAMP1                     9  0 Value
D P_CHAMP2                     14
D P_Retour                       2         
Et des traitements qui ne modifient aucun des paramêtres.

Je voudrais savoir si la variable L_CHAMP2 dans l'appelant, est modifiée après l'appel du service ?

Par exemple avant un premier appel au service PROGR1SP, on a P_CHAMP2 = 'ESSAI'.
Est-ce que cette variable reste à 'ESSAI' après un deuxième appel au service PROGR1SP ?

Merci de vos réponses.

EL MANSSOURI
Messages : 13
Enregistré le : jeu. 03 déc. 2009, 17:13:03

(sans texte)

Message par EL MANSSOURI »

Les paramètres font partie de l'espace mémoire réservé à l'exécution du programme et ne peuvent être modifiés de manière aléatoire.
Ils ne peuvent être modifiées que de manière EXPLICITE par le programme lui même ou les programmes et procédures appelés par ce dernier.

germor
Messages : 75
Enregistré le : lun. 06 juin 2011, 08:01:43

(sans texte)

Message par germor »

Merci de votre réponse,
Je pensais, à tord, que le CallP réinitialisait les paramètres, mais il n'en est rien.
On a donc intérêt à initialiser P_CHAMP2 dans le programme appelant avant le CallP car, dans notre cas précis, le service PROGR1SP ne modifie pas ce paramètre.
Bonne journée !

Répondre