Un des concepts de base qui différentie le RPG de beaucoup de langage est la bufférisation unique, je vais essayer de vous expliquer ce que c’est.
Le principe
C’est qu’une zone quelque soit son buffer de provenance DS, FMT, Zone élémentaire, etc … pour un nom et une description unique occupera qu’un seul espace mémoire dans le programme.
On dit également qu’une zone n’est pas qualifiée contrairement à d’autres langages ou on parlera de zone de tel ou tel format ou buffer….
Exemple en cobol
move nomcli of database to nomcli of ecran
dans notre cas il n’y a pas de move puisqu’on a une seule zone
évitez le (lol)
numcli = numcli ;
Les avantages
Grosse diminution des transferts de zones
Enormément utilisé dans l’existant
Les inconvénients
-Risque d’écrasement nom maitrisé, on peut avoir une zone dans 5 ou 6 buffers par exemple des zones clés
-Les doublons de zone dans 2 tables
Exemple
Filer1 dans la table1 char 30
Filer1 dans la table2 char 40
Le programme ne saura pas déterminer la définition à utiliser
Il faudra renommer une des 2 Zones, ou qualifier les zones dans les buffers ce qui revient à annuler le principe de bufferisation unique
Pour renommer une zone sur une déclaration de fichier
Vous devrez avoir une carte I
exemple ci dessous
Pour qualifier vous devrez indiquer le mot clé qualified sur la ds ou le fichier
du coup on revient à un usage classique pour les affectations de valeurs
database.nomcli = ecran.nomcli ;
Conclusion :
Ca peut être un vrai avantage, mais l’arrivée de SQL chamboule beaucoup la donne
Il faut faire un peu attention dans le cadre de la maintenance.
Les nouveaux développeurs préfèrerons un monde qualifié …