comment ce fait la correspondance du param passé par le call et le RPG il y a bien la ligne suivante
C parm nomcmpt
Bien vu. C'est effectivement la ligne *Entry pList et la/les ligne(s) Parm qui la suivent qui définissent au RPG le paramètre à passer.
Faut-il déclarer une variable dans mon CL pour celà ?
Pas forcément. On peut passer une constante (Call prog parm('Constante') ou bien la variable peut venir d'un écran (et dans ce cas, elle a été définie automatiquement par la ligne DCLF de ton programme.
Que veut dire la séquence ovrdbf mailadress bibdes/mailadress ce serait peut être la valeur que je souhaite mettre en variable (ABCDEFGHIJ) non?
Alors là, pas du tout !
Si on déclare un fichier monfichier dans une carte F, le programme va essayer d'ouvrir le fichier monfichier de la bibliothèque *LIBL,
c'est à dire qu'il va chercher le fichier dans la liste des bibliothèques du job (souviens-toi de ADDLIBLE)
La commande ovrdbf permet d'ouvrir un autre fichier (mais il faut qu'il aie la même structure)
ovrdbf monfichier mabib/autrefichier signifiera au RPG qu'au lieu d'ouvrir monfichier dans *LIBL il faut ouvrir autrefichier dans mabib.
seton lr c'est quoi? je suppose que c'est un test mais il fonctionne comment?
Encore tout faux ! RPG fonctionne à la base avec un cycle RPG. La dernière ligne du programme ne lui fait pas arrêter le programme, mais lire l'enregistrement suivant du fichier ... sauf si LR est mis on (true). Seton positionne un indicateur on. LR est l'indicateur qui indique la fin du fichier (LR = Last Record)
Est-il possible de mettre un test si le champ adresse mail est vide alors on quitte le pgm puis à travers le CL il faudrait déclencher un message de type sndmsg pour prévenir de l'absence de l'adresse mail
Il faudrait passer un second paramètre. Dans le CLP, on aurait
DCL &PARM1 *CHAR 10
DCL &PARM2 *CHAR 1
...
CALL MONPROG PARM(&PARM1 &PARM2)
IF (&PARM2='A') DO
SNDMSG
RETURN
ENDDO
Et dans le RPG on aurait (Attention je n'aligne pas les zones ! )
C *ENTRY PLIST
C PARM P1 10
C PARM P2 1
C* bla bla
C P1 CHAINFICADRESS 50
C N50 Adresse COMP *BLANK 50
C N50 on traite l'adresse mail
C N50 MOVE ' ' P2
C 50 MOVE 'A' P2
C SETON LR
Oui je sais, seuls ceux qui savent lire le RPG pourront vraiment comprendre, mais bon. Je ne peux pas t'expliquer tout le RPG comme ça !