par Jef Sutherland
Les zones des données
sont des objets AS/400 permettant de stocker des morceaux d'information ou des
ensembles de valeurs (comme des paramètres société, des taux de TVA ou des
options de sauvegarde/restauration) là où on ne souhaite pas forcément avoir
un fichier physique avec de multiples enregistrements. Les zones de données
peuvent stocker jusqu'à 2000 caractères, et constituent une manière intéressante
d'assurer les communications de programme à programme ...le premier
programme positionne la data area pour que le second puisse récupérer
l'information et l'utiliser. Lorsqu'on crée une zone de données avec la
commande CRTDTAARA (figure 1), on peut spécifier si la zone de données est de
type caractère (*CHAR), numérique (*DEC) ou logique (*LGL).
Une
zone de données spéciale appelée LDA (Local Data Area), utilisable par
n'importe quel programme, est créée systématiquement avec chaque job AS/400.
Ceci est bien pratique car les programmeurs n'ont pas à créer de LDA lorsque
celle-ci s'avère nécessaire ; elle est déjà disponible. Cependant,
cette LDA peut être source de problèmes si un grand nombre de programmes s'en
servent sans tenir compte des modifications de la LDA faites par les autres
programmes.
Une
zone de données spéciale appelée LDA, utilisable par n'importe quel
programme, est créée systématiquement avec chaque job AS/400
En RPG, une zone de données peut être associée à une structure de données (ou data structure). La figure 2 présente la déclaration de la structure de données CIDTA en RPG III, et la figure 2b présente la même déclaration en RPG IV. L’option U indique que la structure de données est une zone de données. Le programme transfère la zone de données CIDTA dans la structure de données au démarrage, verrouille la zone de données pour en interdire l’accès à tout autre programme, et réécrit ensuite la structure de données dans la zone de données CIDTA à la fermeture du programme. Si on ne précise pas de nom de structure de données le programme prend la LDA par défaut.
Si vous ne souhaitez pas verrouiller la zone de données pendant toute la durée d’exécution du programme, ou si on n’a pas besoin d’une structure de données, il existe une autre approche pour utiliser les zones des données. On peut utiliser l’opération *NAMVAR DEFN (*DTAARA DEFINE en RPG IV) pour définir une variable ou une structure de données qui sera associée avec la zone de données, puis transférer la zone de données dans la variable ou dans la structure de données avec l’opération IN. Les opérations *NAMVAR et *DTAARA peuvent être placées à n’importe quel endroit du programme puisqu’elles sont utilisées à la compilation pour associer la zone de données avec la structure de données. L’opération IN permet aussi de verrouiller la zone de données si on le souhaite. Si on a besoin de retranscrire les informations dans la zone de données, on peut utiliser l’opération OUT. Cette approche ne transfère pas automatiquement la zone de données dans le programme et ne met pas à jour automatiquement la zone de données lorsque le programme se termine ; il faut impérativement utiliser les opérations IN et OUT.
La figure 3 présente un programme RPG III qui utilise la LDA. Celle-ci est intégrée au programme à la ligne 14 par l’opération IN puis chargée dans la structure de données appelée PGMDTA. Le programme modifie ensuite les valeurs de la zone de données et la met à jour en utilisant l’opération OUT à la ligne 18.
La figure 4 présente un programme RPG IV qui utilise une zone de données appelée PONBR. Etant donné que la zone de données PONBR ne contient qu’une information (le numéro du dernier bon de commande), le programme utilise une variable plutôt qu’une structure de données. Lorsque le programme utilise l’opération IN (ligne 6.00), il verrouille la zone de données pour empêcher tout autre programme d’obtenir un numéro de bon de commande jusqu’à ce que le processus en cours soit achevé. Une fois que le numéro de bon de commande est incrémenté, l’opération OUT (ligne 12.00) met à jour la zone de données. Dans cet exemple, la zone de données est déverrouillée lorsque le programme s’arrête.
Téléchargez cette ressource
Solutions Cloud & Services Managés Simplifiés
Comment capitaliser sur son existant tout en bénéficiant, dès à présent, des promesses de flexibilité et de scalabilité du cloud ? Découvrez les bonnes pratiques pour répondre aux défis de simplification du Cloud dans ce nouveau TOP 5.