Dix-sept codes opération sont remplacés par des fonctions intégrées (BIF, built-in functions) (%Div effectue une division sur la portion entière et, par conséquent, ne remplace que partiellement Div). La figure 3 présente ces opérations et les BIF qui les remplacent. Voyons quelques exemples de comparaisons de RPG en format fixe
Codes opération remplacés par des BIF
avec sa contrepartie en format libre :
C Extrct
SomeDate:*M MM
MM = %SubDt(SomeDate: *Months);
L’intention des deux instructions
est claire, mais la version en format
libre est plus rapide et plus facile à lire.
Les BIF ont par ailleurs d’autres avantages
: on peut utiliser des noms de variables
plus longs et on peut placer des
BIF dans des expressions. On pourrait,
par exemple, coder :
If %SubDt(SomeDate: *Months) = ReportMonth; ExSr ProcessData; EndIf;
Ce code est parfaitement clair et
net.
Voyons un autre exemple BIF et la
transformation du RPG du format fixe
en format libre. Les exemples suivants
exécutent la sous-routine FoundString
quand la valeur de la variable
SomeSrch existe quelque part dans la
variable SomeString. Voici la solution
en format fixe :
C SomeSrch Scan SomeString C If %Found C ExSr FoundString C EndIf
Avec le format libre, on ne peut
plus utiliser %Found pour déterminer
si l’opération Scan a trouvé l’argument
de recherche. Au lieu de cela, la BIF
%Scan de remplacement renvoie la position,
indiquant si l’argument de recherche
a été trouvé (quand la position
renvoyée est zéro, l’argument de
recherche n’a pas été trouvé). Voici
une version en format libre qui suit de
près la version en format fixe :
Position = %Scan(SomeSrch:SomeString);
If Position > 0;
ExSr FoundString;
EndIf;
Pour pousser encore plus loin la
transformation en format libre, j'utilise
la BIF dans une expression pour produire
le bloc de code succinct suivant :
If %Scan(SomeSrch: SomeString) > 0;
ExSr FoundString;
EndIf;
Là encore, on voit bien que la version
en format libre est courte, claire et
précise, et facile à comprendre.
Alors que la plupart des codes opération
ont chacun une BIF unique qui
les remplace, deux codes opération
ont des BIF de remplacement multiples.
Le code opération Time accède
à la date et l'heure du système et permet
de préciser s'il faut renvoyer la
date, l'heure, ou les deux. Avec le RPG
en format libre, on utilise les BIF
%Date, %Time et %Timestamp pour
renvoyer ces valeurs.
Le code opération LookUp permet
de rechercher un élément particulier
dans une table ou une matrice. Au
moyen des indicateurs résultants, on
peut déterminer quel élément relatif à
l'argument de recherche il faut renvoyer.
Le RPG en format libre fournit
deux groupes de BIF, un pour les matrices
(arrays) (%LookUpLT,
%LookUpGT, par exemple) et un pour
les tables (%TLookUpLE,
%TLookUpGE, par exemple), pour
remplacer le code opération LookUp.
Comme les noms des BIF reflètent le
type de la recherche, on connaît rapidement
l'intention du code sans être
obligé de déterminer quelle colonne
contient les indicateurs résultants.
Pour en savoir plus sur %LookUp et sur
les autres nouvelles BIF de la V5R1,
voir « La V5 muscle le RPG IV ».
Les nouvelles BIF de remplacement
permettent d'écrire un code RPG
plus facile à lire et à comprendre, un
autre pas dans la bonne direction pour
le RPG. Pour plus d'informations sur
ces BIF et d'autres, voir WebSphere
Development Studio ILE RPG
Reference.
Téléchargez cette ressource
Comment lutter contre le Phishing ?
Dans un environnement cyber en constante mutation, le phishing évolue vers des attaques toujours plus sophistiquées combinant IA, automatisation et industrialisation. Une réalité complexe qui exige des mesures de sécurité avancées et repensées au-delà de l’authentification multifacteur. Découvrez les réponses technologiques préconisées par les experts Eviden et les perspectives associées à leur mise en œuvre.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le LLMjacking : quand les cyberattaques utilisent illicitement des comptes LLM
- Les identités des développeurs doivent être prises en compte !
- Architecture de données ouverte : un levier essentiel pour maximiser les bénéfices de l’IA générative
- Les DRH repensent leurs priorités en 4 étapes
- Patch Tuesday Septembre 2024