Anmelden

View Full Version : Unterschied RTVJOBA USER und CURUSER



ExAzubi
28-01-13, 16:03
Hallo zusammen,

nur um meine Neugier zu befriedigen, wollte ich mal fragen, was der Unterschied im RTVJOBA zwischen USER und CURUSER ist?

Wenn ich diese in einem Interaktiven Job Abfrage, kein Unterschied. Lasse ich den Job unter einem anderen Benutzer laufen, auch kein Unterschied zwischen den beiden Werten. Jetzt frage ich mich, ein überbleibsel vergangener Tage oder was kann man damit machen?

Danke

Viele Grüße

David

Logic IT-Services
28-01-13, 16:18
Hi David

Ich gebe Dir ein Beispiel innerhalb der DS in einem RPG-Programm:

254-263 = Job-User
358-367 = Current User

Im Fall von Webanwendungen steht im Job-User "QTMHHTTP" und im Current-User das effektive User-Profil.

Das gleiche macht der RTVJOBA.

Zur Verifizierung noch: (Birgitta hat das auch schon mal gefragt)
Dies kommt vor allem in prestarted Jobs zum tragen, wenn diese Jobs mit bestimmten Profilen gestartet werden, jedoch später von anderen Usern belegt werden.

Fuerchau
28-01-13, 16:32
Es gibt viele Möglichkeiten den CURUSER zu ändern.
Der USER ist immer aus dem Namen des Jobs abgeleitet.
Per SQL kann ich mich aber mit Connect "ummelden".
Dies passiert z.B. auch bei ODBC-Job's (QZDASOINIT), die immer unter dem USER QUSER laufen, SQL sich aber mit dem Anmeldeuser als CURUSER einträgt.

Mittels der API's QSYGETPH und QWTSETP kann man sich auch zur Laufzeit unter einem anderen Profil bewegen, was dann den CURUSER ändert.

Pikachu
28-01-13, 16:35
Die beiden Werte unterscheiden sich erst, wenn man den Benutzer innerhalb des Jobs wechselt.

Zum Beispiel so:

PGM
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&CURUSER) TYPE(*CHAR) LEN(10)
DCL VAR(&NEWUSER) TYPE(*CHAR) LEN(10)
DCL VAR(&NEWHANDLE) TYPE(*CHAR) LEN(12)
DCL VAR(&OLDHANDLE) TYPE(*CHAR) LEN(12)
MONMSG MSGID(CPF0000)

CHGVAR VAR(&NEWUSER) VALUE(QSYSOPR)
CALL PGM(QSYGETPH) PARM(*CURRENT *NOPWD &OLDHANDLE)
CALL PGM(QSYGETPH) PARM(&NEWUSER *NOPWD &NEWHANDLE)
CALL PGM(QWTSETP) PARM(&NEWHANDLE)

RTVJOBA USER(&USER) CURUSER(&CURUSER)
SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&USER +
*BCAT &CURUSER)
CALL PGM(QWTSETP) PARM(&OLDHANDLE)
CALL PGM(QSYRLSPH) PARM(&NEWHANDLE)
CALL PGM(QSYRLSPH) PARM(&OLDHANDLE)
ENDPGM