If you develop software for distribution to customers, you probably use system parameter QMODEL to retrieve the model of the machine on which your software is running. You may also use system value QSRLNBR to retrieve the serial number of that machine. These two system values are handy in preventing unauthorized distribution of software.
But there is another problem: the OS/400 release number. After all, programs you compile while your system is at Release 2.0, for example, may not be executable at all in your customer's system if it happens to be at a lower release. Because there is no system value that gives you the release number, you may have felt stuck with a problem.
Fortunately, there is a data area in QSYS called Q5728SS1 which contains the data RnnMnn in its first six bytes. The two commands presented here, RTVCPFRLS (Retrieve CPF Release) and DSPCPFRLS (Display CPF Release) will get you that information very easily.
RTVCPFRLS and its associated processing program, CPF001CL, are shown in Figures 3a and 3b, respectively. This command is a prerequisite for DSPCPFRLS. Like most Retrieve commands, it returns variables to CL variables. These values can then be used in your own CL programs to verify that the system running your software is at the appropriate Release and Modification number.
DSPCPFRLS and its processing program, CPF002CL, are shown in Figures 4a and 4b, respectively. This program uses RTVCPFRLS to get the Release and Modification numbers, then sends an *INFO message to the operator. You can modify this command by creating a display file that will be shown when the command is executed.
Midrange Computing
TechTalk: Finding Your OS/400 Release Level
Figure 3A The RTVCPFRLS command
RTVCPFRLS: CMD PROMPT('Retrieve CPF Release') PARM KWD(RLS) TYPE(*CHAR) LEN(2) RTNVAL(*YES) + CHOICE('CHAR(2)') PROMPT('Release number') PARM KWD(MOD) TYPE(*CHAR) LEN(2) RTNVAL(*YES) + CHOICE('CHAR(2)') PROMPT('Modification + level')
TechTalk: Finding Your OS/400 Release Level
Figure 3B CL program CPF001CL
CPF001CL: + PGM PARM(&RLS &MOD) DCL VAR(&RLS) TYPE(*CHAR) LEN(2) DCL VAR(&MOD) TYPE(*CHAR) LEN(2) RTVDTAARA DTAARA(QSYS/Q5728SS1 (2 2)) RTNVAR(&RLS) RTVDTAARA DTAARA(QSYS/Q5728SS1 (5 2)) RTNVAR(&MOD) ENDPGM
TechTalk: Finding Your OS/400 Release Level
Figure 4A Command DSPCPFRLS
DSPCPFRLS: CMD PROMPT('Display CPF Release')
TechTalk: Finding Your OS/400 Release Level
Figure 4B CL program CPF002CL
CPF002CL: + PGM DCL VAR(&RLS) TYPE(*CHAR) LEN(2) DCL VAR(&MOD) TYPE(*CHAR) LEN(2) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(80) RTVCPFRLS RLS(&RLS) MOD(&MOD) CHGVAR VAR(&MSGDTA) VALUE('Release' *BCAT &RLS *CAT ', + modification' *BCAT &MOD) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*INFO) ENDPGM
LATEST COMMENTS
MC Press Online