> Tech > Utilisation des zones de données en RPG et en CL

Utilisation des zones de données en RPG et en CL

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

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 

Utilisation des zones de données en RPG et en CL

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

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.

Tech - Par iTPro.fr - Publié le 24 juin 2010