Hallo Leute!

Ich habe in meinen Programm einen CL Aufruf drin:

CALLB 'OWUSER400C'
PARM USER
PARM PWD
PARM PRFHNDL1
PARM PRFHNDL2
PARM wkSTEUERC

Dort gebe ich den User und das Passwort mit von dem User, desen Identität ich gerne möchte.

Das aufrufende CL-Programm habe ich hier im Forum gefunden und etwas angepasst, es sieht nun so aus:

PGM (&USERID &PWD &PRFHNDL1 &PRFHNDL2 &STEUERC)

DCL VAR(&STEUERC) TYPE(*CHAR) LEN(02)
DCL VAR(&USERID) TYPE(*CHAR) LEN(10)
DCL VAR(&PWD) TYPE(*CHAR) LEN(10)
DCL VAR(&PWDLEN) TYPE(*CHAR) LEN(4) +
VALUE( X'00000010')
DCL VAR(&PWDCCSID) TYPE(*CHAR) LEN(4) +
VALUE( X'FFFFFFFF')
DCL VAR(&ERRCODE) TYPE(*CHAR) LEN(8) +
VALUE( X'0000000000000000')
DCL VAR(&CURPWD) TYPE(*CHAR) LEN(10) +
VALUE(' ')
DCL VAR(&OPERATION) TYPE(*CHAR) LEN(4) +
VALUE( X'00000001')
DCL VAR(&ERROR) TYPE(*CHAR) LEN(315) +
VALUE(' ')
DCL VAR(&PRFHNDL1) TYPE(*CHAR) LEN(12)
DCL VAR(&PRFHNDL2) TYPE(*CHAR) LEN(12)
IF COND(&STEUERC *EQ '01') THEN(DO)
CALL PGM(QSYGETPH) PARM('*CURRENT ' +
&CURPWD &PRFHNDL1)

CALL PGM(QSYGETPH) PARM(&USERID &PWD &PRFHNDL2 +
&ERRCODE &PWDLEN &PWDCCSID)
CALL PGM(QWTSETP) PARM(&PRFHNDL2)

CALL PGM(QWTSJUID) PARM(&OPERATION &ERROR)
ENDDO

IF COND(&STEUERC *EQ '02') THEN(DO)
CALL PGM(QWTSETP) PARM(&PRFHNDL1)
CALL PGM(QSYRLSPH) PARM(&PRFHNDL1)
CALL PGM(QSYRLSPH) PARM(&PRFHNDL2)
ENDDO
ENDPGM

Nur nach dem CL-Aufruf ist der User nicht verändert wenn er in das Programm zurückkehrt, welches das CL aufruft.

Hat einer von euch eine Ahnung wieso?