Anmelden

View Full Version : aktuellen AS400 User in eine variable schreiben in einem RPG Programm



Seiten : 1 [2]

Fuerchau
03-07-14, 09:05
Mit dem Lesen ist das so eine Sache wenn man sich gerade in der Beantwortung befindet:).
Ab welchem Release der CurrentUser in der SDS steht weiß ich nicht.
Es gibt auch keine Doku wann die SDS dahingehend aktualisiert wird (siehe oben).
In meinen alten Programmen V4R5 verwende ich halt meistens das API bzw. SQL.
Dies funktioniert nun bis heute ohne Probleme.

Ich lasse mich ja gerne belehren wenn der Beweis angetreten wird. Ich kann halt nicht alles ausprobieren ins besonders Neuerungen ab V6/V7 kann ich zum größten Teil nicht nutzen.

S.Neinawaie
03-07-14, 09:42
Ich glaub folgender Beitrag von Barbara Morris bringt etwas Licht ins Dunkel:


That's a documented difference between OPM and ILE. See point 9 here http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rzasc/sc092507488.htm. The current-user-profile subfield is in positions 358-367 for ILE.

You can also get the current user profile by initializing a 10A variable with INZ(*USER). If you put that in a subprocedure, the INZ(*USER) value will get fetched fresh each time you call the subprocedure. With the PSDS, the value is only fetched during the *INIT phase of the module, so you'd have to set on LR and call your program again to get the value refreshed.

As far as we know, it was an undocumented feature for OPM to have the job-user subfield filled with the current user profile. When this difference was discovered, we thought that it was more important to keep the 26-byte job name/user/number available in the PSDS, rather than to maintain the OPM/ILE compatibility (and aside from that, by the time it was discovered around v4r2, there was already a release-to-release compatibility issue for ILE). So we created a separate PSDS subfield for the current user profile.
https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014733323&ps=100

Fuerchau
03-07-14, 09:47
Dann würde ich das eben so wie vorgeschlagen realisieren (eigene Function, ggf. im ServiceModule).
Ich habe mein altes API ja auch ausgelagert, allerdings in einem kleinen OPM. Der Aufruf von OPMs ist ab dem 2. Call auch nicht langsamer:).

PFR
09-07-14, 07:51
Hallo,

mit dem Current User habe ich es hinbekommen, vielen Dank für euren klasse Support :-)

Gruß
PFR


Hallo,

in der Programm-Status Datenstruktur steht der User:
D ##PGMSTAT SDS PGM-Status-DS
D ##JOBUSER 254 263 Job User
D ##CURUSER 358 367 Current User

Nimm daraus den, den du brauchst. Wir verwenden fast immer den current user. Es gibt ja Jobs, die unter einem speziellen User, z.B QUSER laufen. Der interessiert meistens nicht. Mit dem Current User bekommst du den "echten" User.

Dieter

iiSiggi
05-01-16, 07:23
Wäre es dann nicht ''MyUser = current_user'' ?

ExAzubi
05-01-16, 15:42
Hallo CURRENT USER liefert unter V7R2 zumindest den Gruppenprofilname und nur mit SESSION USER gibt es den tatsächlichen Anmeldenamen!