Comme la définition de la base de données qui peut être fait de deux manières :
L'accès à la base peut se faire selon deux modes :
L'accès natif :
Les fichiers sont déclarés par le biais de "spécif F", une par fichier manipulé :
Attention, chaque nom doit être unique : nom de fichier ET nom de format nom de fichier ET nom de zone noms de zone identiques ayant des attributs différents |
Quand le fichier est déclaré, le compilateur prévoit un "buffer" pour recevoir les lignes lues :
mais aussi
Le compilateur RPG a aussi prévu une variable RPG par colonne base de données, et celles-ci sont automatiquement alimentées par des spécif "I"
A noter qu'il se passe exactement l'opération inverse lors d'une écriture
Le compilateur doit être appelé, il va créé un objet *PGM, autonome quant à son exécution.
En cas de modification de la structure, pour éviter un décalage lors des lectures :
Ce n'est pas le cas avec SQL qui utilise des curseurs
et place directement les données du curseur dans des variables RPG (pas de buffer)
Le reste du programme était historiquement basé sur des spécif C (de traitement, Compute) et a été remplacé par du RPG dit "free" en V5R10 (2001)
il s'agit de lignes blanches (sans la lettre C en colonne 6) situées entre /free et /end-free (colonne 7) l'instruction peut être éclatée sur plusieurs lignes (sans caractère + ) la fin de CHAQUE instruction étant marquée par " ; " /free test(E) date ; // commentaire if not %error ; date = date + %DAYS(1) ; nbjours = %DIFF(date : undimanche : *DAYS); joursemaine = %rem(nbjours : 7); if joursemaine < 1; joursemaine = joursemaine + 1; endif; *inlr = *on; endif; return; /end-free |
par exemple, un pgm de vérification de l'adresse mail
peut maintenant être écrit :
ILE permettant d'écrire nos propres fonctions, afin d'enrichir
le langage
Depuis la version 7, les déclarations peuvent elles-mêmes être saisies en format libre
ainsi, ce code :
Devient
les procédures cataloguées (ou stockées)
une procédure cataloguée peut retourner une liste de valeurs
par un ordre SQL SET RESULT SETS
CREATE PROCEDURE AF4TEST/LISTEMAIL ( CHAR(50) ))
EXTERNAL NAME 'AF4TEST/SRVMAIL(CHKMAIL)'
PARAMETER STYLE GENERAL
Cet enregistrement est mémorisé dans SYSPROCS de QSYS2
les fonctions définies par l'utilisateur [UDF]
une fonction retourne UNE valeur.
une fonction est un programme ou une procédure dans un programme de service
enregistré(e) dans les catalogues SQL par CREATE FUNCTION.
par exemple :
notre routine RGP4 de vérification de mail, peut devenir
![]()
Être compilée par CRTRPGMOD puis CRTSRVPGM SRVMAIL ... EXPORT(*ALL)
et enfin, être déclarée à SQL, par :CREATE FUNCTION AF4TEST/CHKMAIL ( CHAR(50) ) RETURNS CHAR(1)
EXTERNAL NAME 'AF4TEST/SRVMAIL(CHKMAIL)' (1)
PARAMETER STYLE GENERAL (2)
RETURNS NULL ON NULL INPUT ; (3)
(1) fait référence à CHKMAIL dans SRVMAIL (*SRVPGM)
(2) le passage de paramètres se fait sans gestion de la val. nulle (3)
la fonction retourne nul si un des argument est nul (il n'y aura pas d'appel)
Cet enregistrement est mémorisé dans SYSFUNCS de QSYS2
Quand un exécutable a été enregistré en tant que procédure ou fonction, cela est indiqué dans l'exécutable directement et une simple restauration
sur une autre machine doit l'enregistrer à nouveau.
Mais, Vous pouvez aussi créer des procédures et des fonctions à l'aide du PL/SQL, cela créé un exécutable (objet *PGM).
Dans le cadre des services web, il n'y a pas d'enregistrement de l'exécutable en tant que web-service, il faut re-déployer à nouveau dans le serveur d'application.
Ce dernier propose des scripts pour réaliser cette opération en automatique
installWebservice.sh Command usage: installWebService.sh -server 'server-name' -programObject 'program-object' [-service 'service-name'] [-pcml 'pcml-file'] [-userid 'userid'] [-libraryList 'library-list'] [ -printErrorDetails ] [ -help ]
WDSc est un produit IBM faisant partie du produit 5722WDS, RDI et RDP sont facturés séparément
Ils sont basés sur ECLIPSE, un IDE en licence publique d'initiative IBM, comprenant :.
- un environnement et des classes de base écrites en JAVA et multiplateforme (Win32 et Unix)
- La possibilité de travailler en équipe (pour gérer les versions, utilisez CVS )
- Un éditeur de source
- de quoi écrire des PLUG-IN ou outils additionnels
RDP, est la version IBM i de ce produit, et comprenant :
- RSE (un "plug-in" pour travailler avec des applications traditionnelles de l'AS/400),
![]()
LPEX, éditeur, bourré de trucs & astuces, comme par exemple : (Ctrl Maj+O)
![]()
Un debugger intégré
![]()
proposant une fonctionnalité très innovante : le point d'entrée de service
![]()
Dès qu'un programme (ici DSPLIBL dans PROC_TST) est lancé par un utilisateur donné (CM sur l'image), le debug démarre.
Cela permet de debuger dans tous les environnements (Interactif, Batch, Procédure cataloguée, Web Service)
© AF400 - Volubis