La bufférisation unique en RPG

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é …