, , , IDE IBMi , une alternative à RDI

Vous n’avez pas forcément le budget pour acheter RDI , mais vous voudriez éditer vos sources avec un outil un peu plus FUN que SEU.

Voici un produit qui peut vous permettre de réaliser vos modifciations.

Il sagit de ILEditor qui est un produit open source et que vous pouvez télécharger ici :

https://worksofbarry.com/ileditor/#cta

Nos tests

L’installation est très simple


La prise en main est très simple aussi, vous définissez vos systèmes, ils doivent être accessibles en ODBC et FTP. Attention FTP est réglé en auto, il vaudra mieux essayer PASV.


L’interface est classique
Vous pouvez Browser vos membres sources
Vous pouvez paramétrer vos options de compile

Les plus qu’on aime :
Il est interfaçable avec ACS pour l’émulation 5250 et system debugger …
Vous avez une option Object Diagram qui permet de modéliser rapidement vos applications –ne rêvez pas ce n’est pas parfait– mais c’est utilisable et pratique.


Un comparateur de sources simple et efficace
Un interfaçage avec git qui permet des clones locaux et des pushs par la suite

En résumé

Si vous faites beaucoup RPG en mode FREE, peu de CL (pas d’invite)
C’est un très bon produit.
Pour le reste, du code colonné, des clp, des includes il y a quelques lacunes.

Mais c’est un produit gratuit et parfaitement opérationnel merci à ceux qui le proposent, et un petit don s’impose quand vous le pouvez.

Divers

On a également testé rpgnextgen qui n’a plus évolué depuis 2012 et qui semble un peu dépassé

Vous pouvez également regarder du coté de ILEditor2 à l’adresse suivante https://ileditor.dev/ , un peu plus complet mais payant

, , Débogage de grandes variables avec RDi

Le débogage avec RDi apporte confort et souplesse, mais il y a un point sur lequel il faut certainement faire un rappel : le débogage de grandes chaines de caractères.

Notre exemple

Simplissime :

Débogage avec RDi

Les variables et leur valeur apparaissent dans la vue dédiée « Variable »

Par contre, « seuls » 10.000 caractères sont affichés, impossible de voir la suite de la variable. De plus, impossible de modifier la variable :

La vue Moniteurs

Cette vue, qui sert déjà pour les variables des programmes CL, va également nous aider pour les variables RPG en permettant plus d’options. Il est possible d’utiliser dans cette vue toutes les syntaxes usuelles de STRDBG avec la commande EV (ou EVAL) qui supporte des compléments, des fonctions intégrées etc …

Vous pouvez ajouter une expression monitorée en faisant un click droit sur une variable puis « Contrôler une expression »

Vous pouvez également saisir manuellement des expressions (vous reconnaîtrez les syntaxes du STRDBG) :

Vous pouvez alors utiliser %SUBSTR, DIGITS etc … Pour vous permettre de cibler une sous-chaîne spécifique par exemple.

Mais impossible de modifier une sous-chaîne par ce moyen :

Modification de variables

Vous devez utiliser cette syntaxe :

Attention : les chaines de caractères sont passées en majuscule ! Sauf à travailler en hexadécimal (est-ce réellement pratique ?)

Extension via APAR SE71579

L’APAR https://www.ibm.com/support/pages/apar/SE71579 permet d’augmenter les limites. Désormais :

Extend the string length limits to bigger values for            
fixed-length and variable-length string values in RDi debug.    
Maximum editable limit is now 4K (4096). Maximum display limit  
is now 30K (30720). The limits are 1K (1024) in the current    
driver.

Vous devez installer les PTF SI71302 (7.3) ou SI71314 (7.4). Après application on peut voir jusqu’à 30720 caractères dans notre cas :

La modification reste limitée à 4Ko.

, Comment gérer facilement vos filtres de développement dans RDI ?

Voici 2 solutions :

La première solution la plus connue est de définir un filtre au niveau des objets.
En prenant par exemple les fichiers commençant par Q

Une fois ouvert vous avez

Vous devez ouvrir tous vos fichiers sources !

Il y a une deuxième méthode
Vous devez créer le filtre pour le premier fichier source

Ensuite vous pouvez ajouter une nouvelle chaine de filtre, répétez l’opération autant de fois que nécessaire.

Vous obtenez une vue ou vous avez tous vos sources à la suite

Dans la deuxième solution, vous pouvez être plus fin en utilisant des noms génériques de membres, vous pouvez également indiquer des bibliothèques différentes pour vos fichiers.