Vous avez des sources SQLRPGLE qui sont différents des tailles par défaut de 100
Vous pouvez avoir ce message à la compile RNF0733 C’est le fichier, QTEMP/QSQLPRE de pré-compilation qui est trop court QTEMP/QSQLPRE Ce fichier est utilisé dans les commandes CRTBNDRPG , CRTRPGMOD, ou CRTSQLRPGI
Vous avez une variable d’environnement QIBM_RPG_PPSRCFILE_LENGTH qui permet de changer la valeur par défaut qui est de 112. Elle doit avoir la longueur de votre donnée + 12 Exemple SRCDTA = 140 Vous devrez indiquer 152
On utilise de moins en moins PDM et SEU, pour le remplacer par du RDI ou Visual studio code, ce qui est le sens de l’histoire, mais cette commande peut vous aider, surtout si vous ne disposez pas d’outils d’analyse (Arcad, X-Analysis, Grefer, etc…)
Cette commande permet de faire un FNDSTRPDM (option 25 dans la gestion des membres) sur une liste de fichiers sources, FNDSTRPDM étant limité à un seul fichier source par recherche
Vous devez définir la liste des fichiers à analyser Pour ceci, vous avez un fichier modèle QAUOSR2 dans la bibliothèque QPDA Il est conseillé de le dupliquer sous un nouveau nom dans votre bibliothèque
C’est un fichier source que vous pouvez éditer facilement par SEU, RDI, VSCODE, ou SQL
Il est composé de 3 zones de 10 caractères
Exemple :
Notre fichier s’appellera souvent FNDSTRPDM2 membre FNDSTRPDM2 et on choisira une bibliothèque.
Ici on a demandé une liste que vous retrouvez dans votre spool, c’est un fichier QPUOPRTF, il y en a un par fichier source
Exemple :
Nb d'occurrences . . : 102
Création Dernière modif
Membre Type Date Date Heure Enreg
---------- ---------- -------- -------- -------- -------
AAAA CLLE 01/07/21 15/01/24 15:28:17 0000006
AAAA2 CLLE 10/01/24 16/09/23 10:25:24 0000009
AAA1 CLLE 16/05/23 06/06/23 10:24:58 0000017
AADB CLLE 02/01/24 02/01/24 10:59:24 0000005
AAPF2CL CLLE 03/07/23 03/07/23 13:53:03 0000008
Vous pouvez également demandé la liste des enregistrements comportant votre chaine, PRTRCDS(*ALL) vous obtenez également à une autre liste dans vos spools
Exemple :
Membre . . . . . . . : AAAA2
Type . . . . . . . . : CLLE
Texte . . . . . . . . : Liste des touches de fonction d'un RPG
Longueur d'enreg . . : 92
SEQNBR *...+....1....+....2....+....3....+....4....+....5....+....6....+...
DCL
4 DCL VAR(&TXT) TYPE(*CHAR) LEN(80)
DCL
5 DCL VAR(&id ) TYPE(*CHAR) LEN(7)
Nombre d'enregistrements explorés . . . . . . . . : 9
Nombre d'enregistrements à trouver . . . . . . . : *ALL
Nombre d'enregistrements trouvés . . . . . . . . : 2
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ F I N D U M E M B R E
On rencontre 2 usages principalement
Pour rechercher dans tous les sources d’une bibliothèque
Il existe d’autres solutions pour scanner vos fichier sources, mais celle ci est simple à mettre à œuvre, et vous avez de grande chance d’avoir QPDA sur vos machines.
Une fois le service configuré et l’extension installée, il nous faut régler quelques options importantes.
Nous allons retrouver des options à deux endroits :
Au niveau de la connexion
Au niveau des options de l’extension :
Déboguer avec VSCode
Il y a plusieurs possibilités dans l’éditeur, nous en choisissons une.
Ouvrez le source du programme à déboguer (on parlera ILE plus tard) :
L’outil vous demande votre mot de passe sur l’IBM i pour valider votre profil, et prompte ensuite la commande d’appel du programme :
Vous basculez alors dans l’affichage du déboguer :
Voyons les outils :
affichage des variables
Affiche les variables locales (quand vous êtes dans une procédure, vous ne voyez que les variables locales de la procédures, pas les variables globales du module).
Vous pouvez copier les valeurs, les modifier, ajouter un guet
Guet (watch)
Affiche, et permet la saisie, de guets de variables.
Pile d’appel
Permet de voir la procédure en cours d’exécution :
L’ordre d’affiche est : procédure / module / programme (de service)
Points d’arrêt
Liste les points d’arrêt, permet la création de nouveaux points et la suppression :
Contrôle de l’avancement
Permet d’avancer dans le débogage :
Avancer jusqu’au prochain point d’arrêt (équivalent F12 dans STRDBG)
Avancer et entrer en débogage dans la procédure ou programme appelé (équivalent F22 dans STRDBG)
Continuer jusqu’à ressortir de la procédure en cours
restart : non supporté pour l’IBM i
Arrêt du débogage (équivalent F3 dans STRDBG)
Editeur
Identification visuelle de la ligne en cours de débogage (non encore exécutée) :
Point d’arrêt
Pour ajouter un point d’arrêt :
Soit clique gauche dans la marge
Le débogueur s’arrête sur le point d’arrêt au prochain passage.
Les variables modifiées par la dernière instruction sont mises en évidence.
Point d’arrêt conditionné
Commencer par définir le point d’arrêt, puis clique droit -> Editer sur le point :
Puis indiquer votre condition avec la même syntaxe qu’avec STRDBG :
On ne s’arrêtera que lorsque la condition sera vraie !
Par rapport à RDi, le debug de VSCode ne permet pas, pour le moment, les points d’entrée de service ! Il faut donc que VSCode déclenche lui même l’exécution du programme à déboguer ! Gageons la situation évoluera très vite …
Une fois que vous êtes habitués au débogage, regardez les options de couverture de code …
On se demande souvent comment gérer les paramètres de compile sur les PRTF et les DSPF, il existe plusieurs solutions comme créer des CL de compile par exemple, ou utiliser des ALM qui intègrent cette possibilité. Mais comment faire pour que ca marche tout le temps sans avoir à modifier les commandes de compile
Voici une solution qui a été mise au point pour nos clients du centre de service.
On va utiliser le programme d’exit QIBM_QCA_CHG_COMMAND qui, à chaque fois qu’il verra un CRTPRTF l’interceptera.
Pour éviter que cela ne boucle on devra dupliquer la commande CRTPRTF dans une autre bibliothèque et renvoyer sur celle de QSYS quand on aura fait le paramétrage complémentaire.
Cette bibliothèque devra donc être devant QSYS dans la liste des bibliothèques, imaginons que cette bibliothèque s’appelle GDDS.
CHGSYSLIBL LIB(GDDS)
soit DSPLIBL
dans le source de votre PRTF vous allez indiquer des lignes commençant par A*<COMP> et terminées par </COMP>
+ votre mot clé exempleSAVE(*YES) Vous pouvez indiquer plusieurs paramètres sur une seule ligne.
Nous avons 2 programmes que vous pouvez retrouver ici, il vous suffit des les compiler et de les ajouter à la bibliothèque GDDS que vous avez placée en tête de liste
Vous avez donc dans votre bibliothèque 2 programmes et une duplication de la commande CRTPRTF et (du CRTDSPF si vous l’ajoutez)
RTVMBRSRC qui va retrouver à partir de la commande le membre source à compiler GDDS qui prendra la commande et qui lui ajoutera les informations lues dans le fichier source c’est ce programme qu’on devra ajouter au programme d’exit comme ceci : ADDEXITPGM EXITPNT(QIBM_QCA_CHG_COMMAND) FORMAT(CHGC0100) PGMNBR(92) PGM(GDDS/GDDS) TEXT(‘Paramétrage GDDS’) PGMDTA(*JOB 20 ‘CRTPRTF GDDS ‘)
Attention au paramètre PGMDTA, la commande fois faire 10 de long pour que le système la trouve
Vous avez un programme CLLE INITGDDS qui peut vous aider dans le répertoire CLP
==>WRKREGINF QIBM_QCA_CHG_COMMAND puis option 8
Avec cette commande, on prendra en compte désormais les CRTPRTF. A partir de ce moment là, quand vous passerez la commande CRTPRTF, vos paramètres indiqués dans le sources seront ajoutés à la commande.
Par exemple en demandant l’invite sur la commande : CRTPRTF FILE(GDATA/PRTF198) SRCFILE(GDATA/QDDSSRC) SRCMBR(*FILE) Vous aurez vos paramètres
Remarque : Vous pouvez indiquer un programme d’exit pour les DSPF (CRTDSPF), et même si vous avez encore quelque PF (CRTPF), les LF (CRTLF) Bien sûr, tous les mots clés que vous indiquez doivent syntaxiquement être justes et correspondre au type de fichier que vous créez. Cette solution marche en interactif, en batch, par RDI et par Vs Code, dans vos CL de compile etc …
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2023-03-07 05:34:002023-03-07 14:28:16Comment gérer les options de compile des PRTF
Ce son des fichiers qui ont l’extension MD, ce format a été créer par John Gruber, son but était de produire des fichiers formatés très simple à administrer un peu comme RTF mais encore en plus simple.
(il existe sous forme d’extension pour VSE également, et même sur téléphone)
L’utilisation est très simple, et relativement classique pour les utilisateurs de produits Windows
Vous avez une barre avec les différents éléments que vous voulez intégrer.
L’outil est WYSIWYG ce qui permet de voir en temps réel ce que vous voulez faire
il dispose également de nombreuses possibilités d’exportation comme HTML et PDF
Conclusion :
C’est un format simple à utiliser et c’est un standard pour les nouveaux qui arrivent sur notre plateforme. il est donc fortement conseillé de vous y mettre, et l’effort n’est pas important au regard de ce qu’il peut rapidement vous apporter.
Vous pourrez facilement faire des docs techniques de qualité et les exporter, il existe de nombreuses extensions pour vous aider