APIs ILE : Stockées dans des *SRVPGM. Tous les *SRVPGM contenants des APIs ILE sont listés dans le répertoire de liage QUSAPIBD, automatiquement utilisé par l'OS lors d'une compilation [les nom comme QSO* indique tous les *SRVPGM commencant par QSO...] QLEMF fonctions mathématiques QLEAWI Gestion des dates et APIs diverses. QSNAPI Gestion dynamique des écrans (DSM) QSO* APIs sockets QTEDBGS APIs debug QTQICONV APIs de conversion (UNICODE) QUSRGF* APIs "registration facility" = pgms d'exit Les compilateurs lient automatiquement vos pgms avec les *SRVPGM suivants: QC2* routines utilisées par les programmes C/400 QLNR* routines utilisées par les programmes ILE/COBOL QRNX* routines utilisées par les programmes ILE/RPG-IV |
APIs ILE : liables avec tout programe ILE, commencent par CEE.... = SAA CEE4... = Spécifiques OS/400. Certaines APIs attendent des valeurs (et non des pointeurs d'adresses) et ne peuvent pas être utilisées en RPG avant la V3R60. D'autres sont des fonctions sous la forme x = f(y), c'est à dire qu'elles retournent une valeur, et ne peuvent donc pas être utilisées en COBOL. en COBOL : CALL PROCEDURE 'CEE....' USING x, y [BY CONTENTS/BY REFERENCE], OMITTED. en RPG IV : CALLB 'CEE...' PARM X PARM Y PARM *OMIT ou CALLP CEE...(x : y : *omit) *OMIT = absence de valeur (pointeur nul) pour un paramètre facultatif. |
Certaines APIs admettent des paramètres polymorphes (de forme non figée) : Chaine de caractère de longueur non définie par exemple. Il faut alors utiliser la notion de descripteur : - ce sont des informations sur la structure des paramètres qui sont envoyées à la procédure appelée, en même temps que les paramètres. -> C'est automatique en CL avec CALLPRC -> il faut le demander en RPG avec CALLB(D) ou l'option OPDESC - Si vous gérez le descripteur : l'appel est un peu plus long. le descripteur est ignoré si la procèdure ne l'utilise pas (pas d'erreur). - si vous ne le gérez pas et que le procédure en a besoin : ==> CEE0502 "Missing operational descriptor." Quelques APIs ILE (particulièrement les APIs date) en ont besoin. |
APIs de gestion d'erreur APIs de gestion de mémoire -> voir aussi en RPG-IV %alloc() gestion du tas "heap" (comme sur un PC) allocation dynamique de mémoire APIs de fonctions mathématiques (non listées) sinus, cosinus, tangente, logarithme, etc ... (utilisent des variables en notation scientifique) APIs de gestion des groupes d'activation : + CEE4ABN = fin anormale + CEETREC = fin normale ..... APIs de gestion de messages ILE (gestion commune des erreurs) + CEEMOUT = envoi d'un message + CEEMGET = retrouve infos sur un message + CEEMSG = retrouve, formate et envoie un message, suite à une erreur ILE. |
APIs de gestion des paramètres (descripteur). + CEEGSI = décrit un paramètre reçu + CEEDOD = infos complémentaires sur un paramètre + CEETSTA = teste la présence d'un paramètre facultatif. ET ENFIN APIs de manipulation DATES et HEURES : Pour toutes ces APIs une date lilian exprime une date en nombre de jours depuis le 15 Octobre 1582 (jour 1, qui est le premier jour du calendrier Grégorien). + CEEDAYS = conversion date vers format lilian + CEEDATE = <fonction inverse> + CEEDYWK = calcul du n° de jour dans la semaine à partir d'une date lilian (1 = Dimanche, 2 = Lundi ...) + etc, etc ... |