RE: «Тип» сервера?


Главная Форумы IBM i (OS/400) «Тип» сервера? RE: «Тип» сервера?

#3269

Sever
Участник

Пришлось полазить по документации. Все оказалось элементарно. Имя API — QGYRHRL,
пример кода для CL :

RTVTM: PGM
/*RTV TYPE & MODEL*/
DCL VAR(&RESULT) TYPE(*CHAR) LEN(8)
DCL VAR(&L) TYPE(*CHAR) LEN(4) VALUE(X’00000100′)
DCL VAR(&BUFFER) TYPE(*CHAR) LEN(256)
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(8) +
VALUE(‘RHRL0100′)
DCL VAR(&ERRCODE) TYPE(*CHAR) LEN(200)
DCL VAR(&NULL) TYPE(*CHAR) LEN(4) +
VALUE(X’00000000’)
MONMSG MSGID(CPF0000 MCH0000)
CHGVAR VAR(&RESULT) VALUE(‘????-???’)
CALL PGM(QGYRHRL) PARM(&BUFFER &L &FORMAT +
X’00000004′ &ERRCODE)
IF COND(%SST(&ERRCODE 5 4) *EQ &NULL) THEN(DO)
CHGVAR VAR(&RESULT) VALUE(%SST(&BUFFER 39 4) *CAT +
‘-‘ *CAT %SST(&BUFFER 43 3))
ENDDO
/* ELSE CMD(DMPCLPGM) */
SNDPGMMSG MSG(&RESULT)
ENDPGM

проверено на всех известных уровнях OC начиная с 5.2.
&RESULT можно вынести в параметры и использовать код как процедуру.