Un certain nombre d'API admettent un code erreur en paramètre. 1/ si ce code erreur est facultatif et que vous ne l'indiquez pas l'API envoie un message de type ARRET-PGM (*ESCAPE). 2/ si ce dode erreur est obligatoire c'est à vous de decider si vous voulez recevoir le code erreur ou un message. Structure du code erreur: ! de ! a ! type ! signification ----------------------------------------------- ! 1 ! 4 ! Bin ! lg du code retour ! ! ! ! = 0 : envoi de message ! ! ! ! >= 8 : erreur monitorée (jusqu'à 32783) ! 5 ! 8 ! Bin ! lg nécessaire pour recevoir les infos ! ! ! ! en retour (renseignée par API) ! 9 ! 15 ! Char ! ID message (CPFxxxx) ! 16 ! 16 ! char ! (reservé) ! ! ! ! |
Utilisation en RPG IERRCD1 DS I B 1 40LGCOD C Z-ADD0 LGCOD C CALL 'API' C ... C PARM ERRCD1 Utilisation en RPG4 Derrcd1 DS D lgcod 10I 0 /free lgcod = 0 ; callp API ( .... : errcd1); /end-free |
IERRCD2 DS I B 1 40LGCOD I B 5 80LGRTN I 9 15 MSGID I 16 16 RESERV C Z-ADD16 LGCOD C CALL 'API' C ... C PARM ERRCD2 C MSGID IFNE *BLANK Derrcd2 DS D lgcod 10I 0 inz(%size(errcd2)) D lgretour 10I 0 D msgid 7 /free callp API ( .... : errcd2); if msgid <> *blank; /end-free |
IERRCD3 DS I B 1 40LGCOD I B 5 80LGRTN I 9 15 MSGID I 17 80 MSGDTA C Z-ADD80 LGCOD C CALL 'API' C ... C PARM ERRCD3 C MSGID IFNE *BLANK C MSGDTA IFEQ '... Derrcd2 DS D lgcod 10I 0 inz(%size(errcd2)) D lgretour 10I 0 D msgid 7 D filler 1 D msgdta 63 /free callp API ( .... : errcd2); if msgid <> *blank ; if msgdta = ' xxx'; /end-free |
En COBOL WORKING-STORAGE SECTION. 01 ERROR-CODE. 49 ERROR-CODE-LONG PIC S9(5) COMP-4. 49 ERROR-CODE-LGRT PIC S9(5) COMP-4. 49 MESSAGE-ID PIC X(7). 49 RESERVE PIC X. * 49 MESSAGE-DATA PIC X(..). |