> Tech > Publication des jeux de résultats de requêtes AS/400 dans un document Notes

Publication des jeux de résultats de requêtes AS/400 dans un document Notes

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

Une application Lotus Notes repose sur l'élément de conception Form. C'est l'endroit où tous les champs et les détails propres aux documents sont définis. La figure 1 présente un exemple de formulaire (form) servant à  publier les résultats d'une requête AS/400. Le jeu de résultats de cette requête sera stocké

Publication des jeux de résultats de requêtes AS/400 dans un document Notes

dans le champ TestData. L’exemple de code de la figure 2 montre comment on peut utiliser l’API Java de Lotus Notes pour étendre un programme JDBC modèle (provenant de la figure 7 de l’article « L’accès aux données avec Java », NEWSMAGAZINE, juin 1999) pour sortir un jeu de résultats AS/400 dans un champ d’un document Notes. L’exemple complet de la base de données est accessible à  l’adresse http://www.as4000network.com/code.

En utilisant l’exemple JDBC mentionné ci-dessus comme modèle, nous importons le package lotus.notes en même temps que le java.sql et les classes d’AS/400 Toolbox for Java requises pour accéder aux données depuis l’AS/400. Pour exécuter le programme Java comme un agent Lotus Notes, nous étendons la classe de base TestJDBC avec la classe Lotus AgentBase. Nous incluons la plupart des fonctionnalités du programme dans la méthode NotesMain. Les objets NotesSession, NotesDatabase et NotesDocument sont instanciés exactement comme ils le seraient dans LotusScript pour établir l’environnement des notes runtime pour l’agent. Le NotesItem TestData est ajouté au document. Rappelons que ce champ contiendra le jeu de résultats.

La requête est traitée par l’intermédiaire du driver IBM AS/400 JDBC (AS/400 Toolbox for Java, V4R2M0) et un jeu de résultats est renvoyé. Alors que dans l’exemple JDBC original, le jeu de résultats était imprimé au moyen de System.out standard, ici nous ajoutons le jeu de résultats, enregistrement par enregistrement, à  l’objet Item représenté par TestData. Il en résulte une liste contenant des valeurs multiples dans un item Notes unique sur un formulaire. Si la fin intervient normalement, le document est sauvegardé ; sinon, la méthode se termine avec une NotesException ou une SQLException que l’on peut intercepter et traiter de manière appropriée, selon l’erreur.

Les champs qui se trouvent dans les colonnes d’un jeu de résultats JDBC sont de longueur fixe et complétés par des espaces de remplissage. Donc, en écrivant le jeu de résultats comme une liste dans un champ Notes, on peut produire une représentation bien formatée des données par défaut. Cette méthode simple convient bien pour extraire de petites quantités de données de l’AS/400. Malgré cette méthode d’extraction des données économe, le champ TestData souffre encore de la limitation traditionnelle de Lotus Notes à  64 K. Par conséquent, si l’on essaie d’ajouter trop de données à  cet item, la méthode présentera une NotesException. Les espaces de remplissage entre les colonnes de jeu de résultats en sont les principaux responsables. Ces espaces viennent s’ajouter à  la taille des données proprement dite

Les champs qui se trouvent dans les colonnes d’un jeu de résultats JDBC sont de longueur fixe et complétés par des espaces de remplissage. Donc, en écrivant le jeu de résultats comme une liste dans un champ Notes, on peut produire une représentation bien formatée des données par défaut. Cette méthode simple convient bien pour extraire de petites quantités de données de l’AS/400. Malgré cette méthode d’extraction des données économe, le champ TestData souffre encore de la limitation traditionnelle de Lotus Notes à  64 K. Par conséquent, si l’on essaie d’ajouter trop de données à  cet item, la méthode présentera une NotesException. Les espaces de remplissage entre les colonnes de jeu de résultats en sont les principaux responsables. Ces espaces viennent s’ajouter à  la taille des données proprement dite.

L’exemple de code de la figure 4 crée quatre items différents et écrit chaque champ du jeu de résultats vers une liste différente dans un item différent sur le formulaire indiqué en figure 3. Chacun des champs, représenté par un objet String, invoque la méthode trim() pour supprimer les espaces supplémentaires ayant servi à  remplir les champs de la colonne du jeu de résultats pour leur donner une longueur fixe. La suppression des espaces supplémentaires réduit encore davantage la charge associée à  la taille des données. La sortie est un document Notes simple contenant quatre listes d’informations (figure 5). On peut bien sûr agrémenter ce document avec des titres de colonnes et des données plus descriptives. (Les listes de nombres n’ont aucun sens, elles montrent simplement comment les données sont représentées.)

Cette technique réduit le risque d’atteindre le plafond de 64 K sur un item Notes unique et permet de représenter efficacement une bonne quantité de données formatées dans un document Lotus Notes. De plus, on peut choisir une représentation intelligente des données en terme de taille et de cohérence. Les petits rapports peuvent être visualisés au moyen d’un navigateur ou distribués par e-mail à  d’autres clients Notes sous forme de lettres d’information, formulaires imbriqués, ou liens de documents.

Téléchargez gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 24 juin 2010