L’astuce consiste à indiquer une valeur à renvoyer dans la commande ici on se borne à ‘0’ et ‘1’ ce qui peut être interprété par votre programme comme un booléen
L’intérêt d’utiliser un booléen c’est d’avoir un code simplifier , un peu comme les indicateurs qui simplifient la lecture d’un code RPGLE ou CLLE
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2024-04-27 17:42:462024-04-27 17:42:48Utilisez un booléen dans une commande
Vous devrez lui indiquer dans la paramètre PGMDTA la commande qualifiée à tracer exemple : ‘STRDBG QSYS’
Les données reçues sont sur le format CHGC0100 qui vous donne le découpage du buffer reçu par votre programme
Vous pouvez faire un programme générique qui va loguer l’utilisation d’une commande, vous pouvez en mettre plusieurs et la prise en compte est immédiate
Vous voulez mettre à jour des informations dans une table sans faire de boucle de lecture ? Cet article est pour vous.
Prenons un exemple. Vous consommez un service web qui vous transmet une liste d’article que vous devez stocker en base de données.
L’ordre DB2 MERGE vous permettra d’ajouter les articles qui n’existent pas et de mettre à jour ceux qui existent.
Création de table ARTICLE
CREATE TABLE ARTICLE (
CDART CHAR(10) CCSID 1147 DEFAULT ' ' ,
DESART CHAR(30) CCSID 1147 DEFAULT ' ' )
RCDFMT ARTICLE ;
LABEL ON TABLE ARTICLE
IS 'Base article' ;
LABEL ON COLUMN ARTICLE
( CDART IS 'Code article ' ,
DESART IS 'Désignation article ' ) ;
Code RPG avec ajout ou mise à jour d’un article.
ctl-opt alwnull(*usrctl) option(*nodebugio:*srcstmt);
//Variables
dcl-s code_article char(10);
dcl-s designation_article char(30);
exec sql SET OPTION commit = *none;
code_article = 'AB123456';
designation_article = 'Ma désignation';
Exec Sql
MERGE INTO ARTICLE as ARTICLE
USING(VALUES (:code_article, :designation_article))
AS SOURCE(CDART,DESART)
ON ARTICLE.CDART = SOURCE.CDART
-- Mise à jour de la désignation si code article trouvé
WHEN MATCHED THEN UPDATE
SET DESART = SOURCE.DESART
-- Ajout de l'article
WHEN NOT MATCHED THEN INSERT VALUES (SOURCE.CDART,
SOURCE.DESART)
NOT ATOMIC CONTINUE ON SQLEXCEPTION;
*inLR=*ON;
Vous pouvez également supprimer l’article s’il est trouvé.
WHEN MATCHED THEN DELETE
On peut rajouter des conditions en plus du MATCHED. Dans la ligne ci-dessous je ne veux mettre à jour que l’article ‘TEST’. Pas grand intérêt mais c’était pour montrer un exemple.
WHEN MATCHED AND CDART='TEST' THEN UPDATE SET DESART = SOURCE.DESART
Vous pouvez aussi tester la valeur pour la contrôler avant de faire la mise à jour.
WHEN MATCHED AND SOURCE.DESART IS NOT NULL THEN UPDATE SET DESART = SOURCE.DESART
Il est également possible de prendre le résultat d’un select au lieu des deux variables
MERGE INTO ARTICLE as ARTICLE
USING(VALUES (SELECT CDART, DESART FROM ARTICLE2))
AS SOURCE(CDART,DESART)
ON ARTICLE.CDART = SOURCE.CDART
-- Mise à jour de la désignation si code article trouvé
WHEN MATCHED THEN UPDATE
SET DESART = SOURCE.DESART
-- Ajout de l'article
WHEN NOT MATCHED THEN INSERT VALUES (SOURCE.CDART,
SOURCE.DESART)
NOT ATOMIC CONTINUE ON SQLEXCEPTION;
Je ne l’ai pas dit au début de l’article mais ça fonctionne aussi sur les PF.
Pour l’installer, il faut tout d’abord télécharger et extraire l’archive en local puis lancer RDI. Cliquez ensuite sur l’onglet Aide > Installer un nouveau logiciel.
Cliquez sur local, sélectionnez le dossier que vous avez précédemment extrait puis faites OK.
Vous pouvez tout sélectionner et faire suivant jusqu’au bout.
Afficher les intitulés
Plus besoin de cliquer sur un objet / membre et de regarder la vue propriété pour avoir le texte.
Pour activer l’affichage des intitulés, cliquez sur Affichage > Préférences puis activez les deux rubriques isphere dans Général > Apparence > Décorations d’intitulés.
Résultat :
Recherche de chaine de caractères
Vous pouvez déjà le faire dans RDI en faisant un clic droit sur un fichier source / bibliothèque « Rechercher la chaine ». Mais cette option peut prendre du temps. Utilisez plutôt « Isphere source file search ».
Saisir la chaine à recherche et faites OK.
Si vous faites un double-clic sur la ligne ça ouvrira le source en édition.
Gestion des MSGF
Comme pour la recherche de chaine, on peut déjà modifier un fichier de message mais ce n’est pas très pratique. Il faut déplier le fichier de message, faire un clic droit modifier sur le message et modifier le texte.
Avec Isphere vous pouvez faire un clic droit « Isphere Message File Editor ».
Il va ouvrir le fichier de message et vous pourrez effectuer des recherches de texte, double cliquer sur un message pour l’éditer etc…
Gestion des postes d’un répertoire de liage
Clic droit sur le répertoire de liage puis « Isphere Binding Directory Editor ».
Dans l’onglet qui vient de s’ouvrir, vous pouvez ajouter un programme de service au répertoire de liage avec un simple clic droit / New (équivalent de la commande ADDBNDDIRE).
Vous avez également la possibilité d’en supprimer.
Copier un membre source
Très pratique si vous voulez copier un source d’un système à un autre (ou sur le même).
Clic droit sur un membre (ou plusieurs), puis « Copy Member’s to ».
Choisissez le système / fichier source / bibliothèque de destination et cliquez sur « Copy ».
Comparer des sources
Déjà disponible dans RDI mais Isphere permet de le faire plus facilement. Très pratique si l’on veut comparer deux sources sur deux systèmes (ou le même).
Faites un clic droit sur le source puis « Isphere compare Editor ».