On peut aussi réutiliser les exemples de code précédents pour peupler des items indépendants dans un formulaire Lotus Notes avec les champs provenant d'une requête AS/400. Dans ce scénario, il existe une relation de un à un entre chaque champ dans chaque enregistrement du jeu de résultats et chaque item
Peupler une base de données Notes avec un jeu de résultats AS/400
![Peupler une base de données Notes avec un jeu de résultats AS/400 Peupler une base de données Notes avec un jeu de résultats AS/400](https://www.itpro.fr/wp-content/uploads/2014/06/4016aa2b136ff34736a83520e4ef44ae.jpg)
dans chaque document Notes. Ce modèle écarte le risque d’atteindre la limite de taille de 64 K sur un item Notes.
Prenons, par exemple, le formulaire Lotus Notes Credit Profile (figure 6). Les items Status, ShopNo, OwnerNo, CredRef et Terms seront tous mis à jour par un agent Java traitant une requête JDBC et renvoyant un jeu de résultats en provenance de l’AS/400. On supposera que les autres champs du formulaire sont calculés.
Le code source de la figure 7 génère une suite de nouveaux documents dans la base de données Lotus Notes, avec le contenu des items Notes (listés ci-dessus) peuplés avec les champs correspondants dans le jeu de résultats de la requête. La méthode computeWithForm de la classe Document est invoquée pour rafraîchir les champs calculés dans le formulaire avant de sauvegarder le document. L’agent termine après avoir effectué une itération complète dans le jeu de résultats.
Il en résulte une base de données Notes peuplée des résultats d’une requête AS/400. Pour obtenir des représentations logiques supplémentaires de ces données, on peut créer des Lotus Notes Views and Folders supplémentaires via le client Lotus Notes ou un navigateur.
On ne voudra pas toujours peupler une base de données avec la totalité des jeux de résultats de nouveaux documents. Parfois, on souhaitera mettre à jour des documents existants, en ajoutant de nouveaux documents intéressants du jeu de résultats et en éliminant les documents non intéressants. (Le code source de la figure 8 à l’adresse http://www.as400network.com montre comment faire cela par une approche « single-threaded ».
Ajoutons à présent un élément de conception de vue cachée à notre base de données Notes, constitué d’une colonne unique représentant le champ ShopNo dans chaque document. Assurons-nous que la vue est triée sur cette colonne. Dans notre programme, nous accèderons à cette vue par le nom (ou alias) ByShopNoIndex. Cette vue représente l’index trié à l’aide duquel nous ferons des itérations dans nos documents Notes.
L’instruction SQL imbriquée dans notre programme met en oeuvre un tri pour renvoyer le jeu de résultats ByShop#. L’agent applique ensuite une comparaison linéaire par itération destinée à comparer les clés Shop Number des deux listes triées. Une liste représente la vue triée ByShopNoIndex et l’autre représente le jeu de résultats AS/400 trié renvoyé par l’intermédiaire de JDBC.
En invoquant la chaîne du jeu de résultats CompareTo et en transmettant la valeur de l’item ShopNo depuis le document courant comme l’argument, nous pouvons déterminer l’état de mise à jour du document Notes en comparant les clés d’index des deux listes triées. Si les deux clés Shop Number sont égales, nous pouvons mettre à jour les champs d’un document existant à partir de l’enregistrement de résultats JDBC correspondant. Si la valeur de Shop# dans le jeu de résultats est inférieure à celle de l’item ShopNo dans le document Notes courant, nous savons (puisque les deux listes sont triées) que l’enregistrement dans le jeu de résultats n’a pas de document Notes correspondant. Par conséquent, un nouveau document est créé et ajouté à la base de données. Si la valeur de Shop# dans le jeu de résultats est supérieure à celle de l’item ShopNo dans le document Notes courant, nous savons que l’enregistrement correspondant à ce document Notes ne fait plus partie de ce jeu de résultats, et l’état du document est changé en « B ».
C’est une manière fonctionnelle de mettre à jour des documents, mais elle n’a rien de « très Java » car elle utilise un algorithme procédural compliqué. Java fournit un bien meilleur moyen en utilisant des threads synchronisés.
Téléchargez cette ressource
![Guide de technologie 5G pour l’entreprise](https://www.itpro.fr/wp-content/uploads/2024/04/Livre-blanc-The-Big-Book-of-Enterprise-5G-Cradlepoint-Groupe-Ericsson-4G-LTE-et-5G-WAN-Experts-2024.png)
Guide de technologie 5G pour l’entreprise
Le livre blanc "The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.
Les articles les plus consultés
- Les 6 étapes vers un diagnostic réussi
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- Impact de l’IA générative sur le lieu de travail
- Red Sift : une proposition clé pour sécuriser le patrimoine numérique
- Cloud Temple : le cloud de confiance de référence du marché français et européen
- Fusion d’identités avec Binary Tree Directory Sync Pro
- Contrôler et optimiser les dépenses informatiques dans le contexte macroéconomique actuel
![Revue Smart DSI](https://www.itpro.fr/wp-content/uploads/2024/07/SMART-DSI-Numero-34-Juin-2024.jpg)