|
Il existe plusieurs solutions. En voici une utilisant une API prévue pour ça.
Voici un exemple de code
/* variables à déclarer */
DCL &RELEASE *CHAR 6
DCL &RCVR *CHAR 128
DCL &RCVRLEN *CHAR 4 VALUE(X'00000080')
DCL &FORMAT *CHAR 8 VALUE('PRDR0100')
DCL &PRDINFO *CHAR 27 VALUE('*OPSYS *CUR 0000*CODE ')
DCL &ERRCODE *CHAR 4 VALUE(X'00000000')
/* Appel de l'api */
CALL QSYS/QSZRTVPR PARM(&RCVR &RCVRLEN &FORMAT &PRDINFO &ERRCODE)
CHGVAR &RELEASE (%SST(&RCVR 20 6))
/* traitement en fonction de la version */
SELECT
WHEN COND(&RELEASE = 'V5R3M0' ) THEN(DO)
//
ENDDO
WHEN COND(&RELEASE = 'V5R4M0' ) THEN(DO)
//
ENDDO
WHEN COND(&RELEASE = 'V6R1M0' ) THEN(DO)
//
ENDDO
OTHERWISE CMD(goto error )
ENDSELECT
ENDDO
goto fin
error :
SNDPGMMSG MSG('release' |> &RELEASE |> 'non supportée')
fin:
ENDPGM
Voici un exemple de code
/* variables à déclarer */
DCL &RELEASE *CHAR 6
DCL &RCVR *CHAR 128
DCL &RCVRLEN *CHAR 4 VALUE(X'00000080')
DCL &FORMAT *CHAR 8 VALUE('PRDR0100')
DCL &PRDINFO *CHAR 27 VALUE('*OPSYS *CUR 0000*CODE ')
DCL &ERRCODE *CHAR 4 VALUE(X'00000000')
/* Appel de l'api */
CALL QSYS/QSZRTVPR PARM(&RCVR &RCVRLEN &FORMAT &PRDINFO &ERRCODE)
CHGVAR &RELEASE (%SST(&RCVR 20 6))
/* traitement en fonction de la version */
SELECT
WHEN COND(&RELEASE = 'V5R3M0' ) THEN(DO)
//
ENDDO
WHEN COND(&RELEASE = 'V5R4M0' ) THEN(DO)
//
ENDDO
WHEN COND(&RELEASE = 'V6R1M0' ) THEN(DO)
//
ENDDO
OTHERWISE CMD(goto error )
ENDSELECT
ENDDO
goto fin
error :
SNDPGMMSG MSG('release' |> &RELEASE |> 'non supportée')
fin:
ENDPGM
|