D'emblée, RPG IV a promu la carte D comme un emplacement de programme unique et, plus important, une syntaxe unique pour définir chaque élément de données que votre programme devra traiter. Les champs de travail (variables autonomes), les structures de données, et les constantes nommées sont tous définis au moyen
RIP KLIST
de cartes D. Même les listes de
paramètres ont ouvert la voie à des
prototypes et à des interfaces de procédures
définies avec des cartes D.
Seule exception de taille : les listes
de clés. Curieusement, les codes opération
KLIST et KFLD s’entêtent à être
le seul moyen de grouper des champs
dans le but de lire des fichiers avec des
clés complexes. En V5R2, la nouvelle
fonction %KDS (Key Data Structure)
permet de nommer une structure de
données simple que l’on utilisera
comme argument de recherche (key
list) pour n’importe quelle opération
d’I/O sur des fichiers avec clés, comme
CHAIN, READE ou SETLL.
La définition de structure de données
n’a pas d’exigences particulières.
Cependant, vous pourriez tirer parti
d’une poignée de nouvelles possibilités
de structure de données V5R2 qui
aident à définir une structure de données
d’après le format d’enregistrement
d’un fichier. Utilisez le mot-clé LIKEREC
pour définir une structure de
données d’enregistrement avec des sous-champs qui imitent un format
d’enregistrement dans un fichier décrit
en externe (à partir des cartes F).
Outre le fait de nommer le format
d’enregistrement, LIKEREC supporte
également un second argument facultatif
qui permet de limiter la structure
de données à certains champs, dans ce
cas, les champs clés listés dans le DDS
pour un fichier avec clés :
LIKEREC(record-name:*KEY)
Les autres options sont *INPUT
(champs acceptant l’entrée, par défaut),
*OUTPUT (champs permettant
la sortie), ou *ALL. La figure 2 illustre la
définition d’une structure de données
d’enregistrement.
Si la carte F spécifie le mot-clé PREFIX,
les sous-champs incluront le préfixe
; si la carte F spécifie le mot-clé RENAME, utilisez le nom interne du programme
pour le format d’enregistrement
(le nouveau nom) dans le motclé
LIKEREC. La structure de données
résultante est une structure de données
qualifiée implicitement. Cela signifie
que vous devez vous référer aux
noms de sous-champs dans la structure
de données par leur nom qualifié,
lequel inclut le nom de la structure de
données elle-même. Dans la figure 2,
les variables CustKey. CpyNbr et
CustKey.CustNbr sont des exemples de
noms de champs qualifiés. (Pour en savoir
plus sur les améliorations de structure
de données en V5R2, voir « 5 trucs
sur RPG », iSeries News, février 2003, et
« RPG IV s’améliore à nouveau dans la
V5R2 », iSeries News, avril 2003 ou sur
www.itpro.fr .)
Signalons au passage que le motclé
EXTNAME supporte désormais le
même argument final que LIKEREC
(c’est-à -dire, *KEY, *INPUT, *OUTPUT
ou *ALL), conduisant à des structures
de données décrites en externe présentant
peu ou prou le même potentiel
que les structures de données
d’enregistrement.
Une fois que vous avez défini une
structure de données – que ce soit une
structure de données d’enregistrement
ou toute autre structure de données
– vous pouvez simplement nommer
la structure de données comme
un argument de la fonction %KDS
quand vous effectuez une opération
d’I/O fichier sur un fichier décrit en externe.
La figure 2 utilise CustKey
comme la structure de données clé
pour une opération CHAIN. Tous les
sous-champs de CustKey seront utilisés
comme une liste de clés dans l’opération
d’I/O.
Et, si vous voulez accéder à un fichier
au moyen d’une clé partielle ? La
fonction %KDS vous permet aussi de
coder le nombre de champs à utiliser
comme second argument facultatif :
Chain %KDS(CustKey:2) Customer;
A proprement parler, la fonction %KDS n’a vraiment rien d’une fonction,
même si elle utilise la même syntaxe
que les autres BIF. Mais, contrairement
à la plupart des autres fonctions
intégrées, %KDS ne renvoie pas une
valeur et ne peut pas être incorporé
dans une expression.
Autre remarque importante : la
fonction %KDS n’est valide que dans
un bloc de spécifications en format
libre. Vous ne pouvez pas spécifier
%KDS en Factor 1 d’une carte C en format
fixe. La fonction %KDS est l’une de
plusieurs améliorations de coding
d’I/O de fichier en V5R2. Pour prendre
connaissance des autres améliorations
de coding d’I/O de fichier, voir l’encadré
« Mise à jour d’I/O de fichier en
V5R2 ».
Téléchargez cette ressource
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Les 6 étapes vers un diagnostic réussi
- Afficher les icônes cachées dans la barre de notification
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- AI Act : le guide pour prendre le train de l’Omnibus de la conformité
- Adaptation climatique : les entreprises accélèrent, mais peinent à mesurer l’impact financier
- Data centers : 31 600 milliards de dollars d’investissements d’ici 2050, l’énergie au cœur de la nouvelle géographie du calcul
- Analyse Patch Tuesday Septembre 2026
Articles les + lus
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
À la une de la chaîne Tech
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
