Trouver le nom LONG d'un IBMi
Citation de remit le 21 janvier 2019, 16 h 23 minSELECT HOST_NAME FROM QSYS2/SYSTEM_STATUS_INFO fonctionne en V7R1 avec SF99701 Level 41 (WRKPTFGRP PTFGRP(SF99701) pour voir).
C'est bien le nom de machine qui est renvoyé (sur 8 caractères).
C'est différent de la valeur de CURRENT_SERVER qui est le nom de la base de données (pouvant aller jusqu'à 18 caractères).
SELECT HOST_NAME FROM QSYS2/SYSTEM_STATUS_INFO fonctionne en V7R1 avec SF99701 Level 41 (WRKPTFGRP PTFGRP(SF99701) pour voir).
C'est bien le nom de machine qui est renvoyé (sur 8 caractères).
C'est différent de la valeur de CURRENT_SERVER qui est le nom de la base de données (pouvant aller jusqu'à 18 caractères).
Citation de remit le 21 janvier 2019, 16 h 46 min. . . et aussi l'Api QWCRNETA ; un exemple à https://www.nicklitten.com/modernize-rpg-code-for-get-the-system-name-for-ibm-i-iseries-and-as400/
P.-S. Il semble qu'on parle de "nom de système" plutôt que de "nom de machine" comme je l'ai écrit plus haut.
. . . et aussi l'Api QWCRNETA ; un exemple à https://www.nicklitten.com/modernize-rpg-code-for-get-the-system-name-for-ibm-i-iseries-and-as400/
P.-S. Il semble qu'on parle de "nom de système" plutôt que de "nom de machine" comme je l'ai écrit plus haut.
Citation de remit le 1 février 2019, 13 h 27 minEt en Cobol :
...
* Paramètres de QWRCNETA
01 AP-O-RCVVAR.
05 AP-O-NBRVAL PIC S9(9) BINARY.
05 AP-O-OFFSET PIC S9(9) BINARY.
05 AP-O-NWOATT.
10 AP-O-NWANAM PIC X(10).
10 AP-O-NWATYP PIC X.
10 AP-O-NWASTS PIC X.
10 AP-O-NWALNG PIC S9(9) BINARY.
10 AP-O-NWAVAL PIC X(8).
77 AP-I-LNGRCV PIC S9(9) BINARY VALUE 32.
77 AP-I-NBRVAL PIC S9(9) BINARY VALUE 1.
77 AP-I-NWANAM PIC X(10) VALUE "SYSNAME".
* Structure de récupération des erreurs
01 AP-I-ERROR.
05 AP-I-ERROR-ENT-LNG PIC S9(9) BINARY VALUE 272.
05 AP-O-ERROR-RET-LNG PIC S9(9) BINARY.
05 AP-O-ERROR-MSGID PIC X(7).
05 FILLER PIC X.
05 AP-O-ERROR-MSGDTA PIC X(256).
...
* appel
CALL "QWCRNETA" USING AP-O-RCVVAR
AP-I-LNGRCV
AP-I-NBRVAL
AP-I-NWANAM
AP-I-ERROR.
* retour OK
IF AP-I-ERROR-RET-LNG = 0
* le nom de machine est dans AP-O-NWAVAL
MOVE AP-O-NWAVAL TO ...
* retour en erreur
ELSE
* identifiant de message (de QCPFMSG) dans AP-I-ERROR-MSGID
MOVE AP-I-ERROR-MSGID TO ...
* données complémentaire du message dans AP-I-ERROR-MSGDTA
MOVE AP-I-ERROR-MSGDTA TO ...
END-IF.
...
Et en Cobol :
...
* Paramètres de QWRCNETA
01 AP-O-RCVVAR.
05 AP-O-NBRVAL PIC S9(9) BINARY.
05 AP-O-OFFSET PIC S9(9) BINARY.
05 AP-O-NWOATT.
10 AP-O-NWANAM PIC X(10).
10 AP-O-NWATYP PIC X.
10 AP-O-NWASTS PIC X.
10 AP-O-NWALNG PIC S9(9) BINARY.
10 AP-O-NWAVAL PIC X(8).
77 AP-I-LNGRCV PIC S9(9) BINARY VALUE 32.
77 AP-I-NBRVAL PIC S9(9) BINARY VALUE 1.
77 AP-I-NWANAM PIC X(10) VALUE "SYSNAME".
* Structure de récupération des erreurs
01 AP-I-ERROR.
05 AP-I-ERROR-ENT-LNG PIC S9(9) BINARY VALUE 272.
05 AP-O-ERROR-RET-LNG PIC S9(9) BINARY.
05 AP-O-ERROR-MSGID PIC X(7).
05 FILLER PIC X.
05 AP-O-ERROR-MSGDTA PIC X(256).
...
* appel
CALL "QWCRNETA" USING AP-O-RCVVAR
AP-I-LNGRCV
AP-I-NBRVAL
AP-I-NWANAM
AP-I-ERROR.
* retour OK
IF AP-I-ERROR-RET-LNG = 0
* le nom de machine est dans AP-O-NWAVAL
MOVE AP-O-NWAVAL TO ...
* retour en erreur
ELSE
* identifiant de message (de QCPFMSG) dans AP-I-ERROR-MSGID
MOVE AP-I-ERROR-MSGID TO ...
* données complémentaire du message dans AP-I-ERROR-MSGDTA
MOVE AP-I-ERROR-MSGDTA TO ...
END-IF.
...