Accès aux enregistrements de base de données avec le composant Web Table IBM i

Le composant Web Table IBM® i permet d'afficher des enregistrements de base de données tels qu'ils apparaissent dans un sous-fichier sur l'hôte.

Pour afficher les enregistrements de base de données dans un composant Web Table IBM i, vous devez effectuer les opérations suivantes :

Indication du nom du programme de service appelé par la table

Lorsque vous créez un composant Web Table IBM i dans votre fichier JSP, l'un des attributs défini est le nom du programme de service appelé par la table. Pour indiquer le nom et l'emplacement du programme de service sur l'hôte, vous devez d'abord cocher la case Extraire les données à partir d'un programme de serviceIBM i (dans l'onglet Paramètres de la vue Attributs). Cette opération permet d'activer les zones Bibliothèque et Objet où vous pouvez indiquer le nom de la bibliothèque contenant le programme de service et le nom du programme de service.

Spécification du mode de sélection des enregistrements affichés dans la page JSP.

Lorsque vous créez le composant Web Table IBM i, vous spécifiez le Mode de sélection à savoir Aucun, Simple ou Multiple. Si vous spécifiez Aucun, les données de sous-fichier qui sont affichées ne peuvent pas être sélectionnées. Si vous spécifiez Simple, un bouton d'option apparaît en regard de chaque enregistrement de sous-fichier, autorisant la sélection d'un enregistrement unique. Si vous spécifiez Multiple, une case à cocher est placée en regard de chaque enregistrement de sous-fichier, autorisant la sélection de plusieurs enregistrements. Pour déterminer l'enregistrement qui a été sélectionné, créez une interaction Web, avec la page de sous-fichier comme page d'entrée. Dans la procédure définie pour cette interaction, codez un appel à l'API QdtsReadcSF. L'API renverra le numéro d'enregistrement relatif de l'enregistrement sélectionné, ou 0 si aucun enregistrement n'a été sélectionné. Par exemple :

DGetRec   B	
D  info                               likeDS(rec)
 *
C            Eval rc = QdtsReadcSF(SFLName: %Addr(Rec): %Size(Rec): 1)
C            If      rc > 0
C            Eval    info.name = SFLName
 *.. process record
C            Else
 * .. no record selected

Codage de procédures spécifiques dans le programme de service pour interagir avec les API de sous-fichier

Le composant Web Table IBM i utilise les procédures suivantes dans le programme de service qu'il appelle. Les noms de procédure sont soumis à la distinction majuscules/minuscules.

INIT
Procédure appelée la première fois que la page JSP contenant le composant Web Table IBM i doit s'afficher. Deux paramètres lui sont transmis : Nom de la table et les paramètres définis dans Paramètres dans la vue Attributs d'un tableau. Vous pouvez utiliser cette procédure pour le remplissage initial de la table avec tous les enregistrements ou une page d'enregistrements intéressants.
PGUP
Procédure appelée lorsque l'utilisateur active le bouton Haut de Page associé à la table afin de visualiser la page d'enregistrements précédente. S'il existe déjà des enregistrements dans l'espace utilisateur, cette procédure n'est pas appelée et la table affiche automatiquement la page précédente.
PGDN
Procédure appelée lorsque l'utilisateur active le bouton Bas de Page associé à la table afin de visualiser la page d'enregistrements suivante. Si cette page existe dans l'espace utilisateur, cette procédure n'est pas appelée et la table affiche automatiquement la page suivante.
CLUP
Procédure appelée lorsque la session se termine. Vous pouvez utiliser cette procédure pour effectuer des opérations de nettoyage comme, par exemple, fermer des fichiers ouverts.

Deux paramètres du composant Web Table IBM i sont transférés dans chaque procédure. Le premier paramètre est une chaîne de 10 caractères représentant le nom du composant Web Table IBM i. Le deuxième paramètre est un paramètre facultatif qui correspond à une structure de données. Les zones de cette structure sont définies dans la section Paramètres du programme de service (voir Composant Web Table).

Débogage du sous-fichier

Il est important que les longueurs et les types de colonnes définis dans la vue Attributs de la table correspondent exactement à la longueur et au type des zones définies dans la structure des enregistrements de sous-fichier de votre programme, et qu'ils se trouvent dans l'ordre prévu. En cas de non-concordance, le sous-fichier ne s'affichera pas correctement. Pour examiner le contenu de l'objet Sous-fichier *USRSPC de la bibliothèque QTEMP, vous pouvez utiliser la commande DMPSYSOBJ. Toutefois, auparavant, une interaction au moins doit avoir été exécutée, afin de créer un travail sur le serveur IBM i. Pour obtenir le nom qualifié du travail, recherchez une ligne similaire à celle-ci sur la console de l'environnement de test Rational :

IBM i host job id [964666/QUSER/QZRCSRVS]
Dans une ligne de commande IBM i, lancez ce travail en mode Service en utilisant la commande STRSRVJOB :
STRSRVJOB 964666/QUSER/QZRCSRVS
Lorsque le travail est en mode Service, utilisez la commande DMPSYSOBJ pour vider le contenu de l'espace dans un fichier spoule :
DMPSYSOBJ OBJ(ITEMLIST) CONTEXT(QTEMP) OBJTYPE(*USRSPC)
Utilisez la commande WRKSPLF et affichez le fichier spoule QPSRVDMP. Vous visualiserez le contenu de l'espace dans un format DUMP.

Utilisation des API de sous-fichier appropriées pour manipuler les données à afficher dans la table

Votre programme de service interagit avec le composant Web Table IBM i par codage aux API de sous-fichier. Les données d'un sous-fichier sont stockées dans un objet espace utilisateur (type d'objet *USRSPC) sur l'hôte. Cet espace utilisateur est créé dans la bibliothèque QTEMP pour le travail en cours qui exécute le programme.

Les API de sous-fichier dans votre programme de service manipulent les enregistrements dans l'objet espace utilisateur qui apparaissent dans le composant Web Table IBM i d'une page JSP. Les noms de ces API et les opérations effectuées par chacune d'entre elles sont présentés ci-dessous.

Tableau 1. API de sous-fichier : noms et opérations
Nom Opération
QdtsAppendSF Ajout d'un enregistrement
QdtsChainSF Chaînage à un enregistrement
QdtsClearSF Effacement d'un sous-fichier
QdtsCountSF Décompte des enregistrements de sous-fichier
QdtsDeleteSF Suppression d'un enregistrement de sous-fichier
QdtsInitSF Initialisation du sous-fichier
QdtsReadcSF Lecture d'un enregistrement sélectionné
QdtsSetDspAtrSF Définition des attributs d'affichage pour chaque cellule de sous-fichier
QdtsSetNxtCgSF Définition du prochain enregistrement modifié
QdtsSetRcdNbrSF Définition du numéro d'enregistrement en cours
QdtsUpdateSF Mise à jour d'un enregistrement

Relation entre les API de sous-fichier et les boutons Haut de Page et Bas de Page de la table

Lorsque vous sélectionnez Récupérer les données à partir d'un programme de service i dans l'onglet Paramètres de la vue Attributs, les boutons d'option relatifs au Comportement du programme de service peuvent être sélectionnés.

L'option par défaut Ecrit une page à la fois indique que le programme de service efface l'espace utilisateur lorsque les procédures PGUP et PGDN sont appelées. Les procédures INIT, PGUP et PGDN doivent être codées dans le programme de service. Cette option indique également que la section de pied de page affiche uniquement les boutons Haut de Page et Bas de Page.

L'option Ecrit une page sur demande indique que le programme de service n'effacera pas l'espace utilisateur à chaque appel de la procédure PGDN. Cette option requiert que les procédures INIT et PGDN soient codées dans le programme de service. La section de pied de page affiche uniquement les boutons Haut de Page et Bas de Page.

L'option Ecrit le sous-fichier complet indique qu'une section de pied de page est affichée dans la table pour des raisons de pagination. Les boutons Haut de Page et Bas de Page, ainsi que les informations de pagination, apparaissent dans ce pied de page sous la forme "page x sur y" (Page 5 sur 10, par exemple.) Cette option indique également que ces enregistrements représentent l'ensemble d'enregistrements qui apparaîtra dans la table, quel que soit le nombre d'enregistrements lus dans l'espace utilisateur pour être affichés dans la table. Cette option requiert également le codage de la procédure INIT dans le programme de service. Les procédures PGUP et PGDN ne sont pas requises, étant donné qu'elles ne sont pas appelées dans ce cas.


Commentaires en retour