Certaines opérations d'I/O de fichiers (comme CHAIN, DELETE, READE, READPE, SETGT, SETLL) utilisent un argument search pour identifier l'enregistrement à traiter. Habituellement, l'argument search était un nom de champ ou une liste de clés définis en utilisant les codes opération KLIST et KFLD. La nouvelle spécification en format libre V5R1
9. Remplacer les listes de clés
ne permet pas aux opérations KLIST ou KFLD de définir
une clé composite (bien que les spécifications en format
libre puissent traiter une liste de clés définie dans des calculs
en format fixe).
La V5R2 offrait une nouvelle méthode. Pour les spécifications
en format libre, l’argument search peut être une liste de
valeurs mise entre parenthèses :
Cet exemple utiliserait Company et
Custnbr comme clé composite pour extraire
un enregistrement Custrec. En V5R2, il
faut utiliser un nom de format d’enregistrement
(pas un nom de fichier) pour lister des
valeurs. Cette restriction n’existe plus en
V5R3.
N’importe quelle valeur de la clé composite
peut être une expression, ou même
un appel adressé à une procédure :
Chain(Company:Custnbr+1) Custrec;
Chain (Company:GetNextOrder(Company:Custnbr))
Orderrec;
Dans la deuxième ligne de cet exemple, GetNextOrder
est un nom de procédure ; l’exemple contient l’appel à la
procédure, complet avec tous ses paramètres, comme
deuxième valeur dans l’argument search.
Pour coder des listes composites, il existe une autre option
en format libre. Elle consiste à utiliser la fonction V5R2
%KDS (Key Data Structure) pour nommer une structure de
données à utiliser comme une clé. Les zones mises en évidence
de la figure 6 illustrent l’utilisation de la fonction
%KDS. Dans cet exemple, la structure de données Orderkey
est une structure de données LIKEREC, qui n’utilise que les
champs clé tirés du format Ordrec. L’opération SETLL utilise
cette structure de données comme son argument search. Si
l’on veut que l’argument search utilise moins de champs
qu’il n’y en a dans la structure de données clé, on peut préciser
le nombre de sous-champs souhaité. Dans la figure 6,
l’opération READE n’utilise que les deux premiers champs
de la structure Orderkey comme son argument search. En
V5R2, il faut spécifier un nom de format d’enregistrement
(pas un nom de fichier) quand on utilise la fonction %KDS.
Cette restriction disparaît en V5R3.
Téléchargez cette ressource
Microsoft 365 : 5 erreurs de sécurité
A l’heure où les données des solutions Microsoft 365 sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités ? Découvrez le Top 5 des erreurs à ne pas commettre et les meilleures pratiques recommandées par les Experts DIB France.