PDA

View Full Version : Systemname per Programm ermitteln



Seiten : [1] 2

dschroeder
06-04-16, 16:07
Hallo,
wenn man sich in einer Betriebssystemmaske befindet (z.b: in der Signon-Maske), steht doch ganz ober rechts der Systemname. Weiß jemand, wie man den in einem Programm ermitteln kann? (RPG, CL, oder SQL.)

Hintergrund: Wir haben 2 Systeme. Ein Programm muss jetzt wissen, ob es auf dem Echtsystem oder dem Testsystem läuft. Ich könnte per RTVNETA den Systemnamen auslesen. Das ist aber nicht der Klartextname, sondern eine Nummer (D4412345). Die wird sich ja beim Kauf einer neuen iSeries wahrscheinlich ändern, denke ich.

Dieter

Fuerchau
06-04-16, 17:06
Das ist aber genau dieser Wert.
Den Wert kannst du per CHGNETA anpassen, was beim Systemumzug sehr hilfreich ist.
Per Default steht da halt meist die Serien-Nr. der AS/400.

RobertMack
06-04-16, 17:21
Alternative: Eine DTAARA mit Inhalt 'TEST' oder 'PROD' in der QGPL (oder einer eigenen Bibliothek in QSYSLIBL).
Vorteil: Der Datenbereich kann auch je Bibliothek abgelegt werden (falls Produktion und Testumgebung auf dem gleichen Blech laufen) oder weitere Ausprägungen haben (ja nach Anwendung, z.B. 'STOP' als Buchungssperre)

dschroeder
07-04-16, 08:02
Das ist aber genau dieser Wert.
Den Wert kannst du per CHGNETA anpassen, was beim Systemumzug sehr hilfreich ist.
Per Default steht da halt meist die Serien-Nr. der AS/400.

Merkwürdig. Bei uns liefert RTVNETA für den Parameter SYSNAME diese Nummer. In unserer Signon-Maske (und in allen anderen OS-Masken) steht aber etwas anderes (in dem Fall unser Firmenname). Wenn jemand den Namen mit CHGNETA angepasst hätte, müsste der RTVNETA eigentlich auch den angepassten Wert liefern. Ich forsche mal weiter.

dschroeder
07-04-16, 08:04
Alternative: Eine DTAARA mit Inhalt 'TEST' oder 'PROD' in der QGPL (oder einer eigenen Bibliothek in QSYSLIBL).
Vorteil: Der Datenbereich kann auch je Bibliothek abgelegt werden (falls Produktion und Testumgebung auf dem gleichen Blech laufen) oder weitere Ausprägungen haben (ja nach Anwendung, z.B. 'STOP' als Buchungssperre)

Danke für den Tipp. Daran habe ich auch schon gedacht. Ich finde es aber etwas "doppelt gemoppelt", den Wert nochmal abzulegen. Wenn wir keine bessere Lösung finden, werden wir das aber so machen. Bei solchen Lösungen befürchte ich immer, dass irgendwer mal die Bibliothek des Echtsystems auf das Testsystem überträgt und wir dann ein Problem bekommen.

Fuerchau
07-04-16, 08:11
Ich nehme mal an, da hat einer an der QDSIGNON gedreht.
D.h., die DSPF ist für euer System angepasst worden und zeigt nicht mehr den NETA-Namen an.
Es hindert dich schließlich niemand daran, diese DSPF unter Einhaltung der Restriktionen, zu ändern.
M.a.W: In deiner QDSIGNON wird nicht der echte Systemname angezeigt.
Was zeigt dann z.B. WRKSYSSTS an?

dschroeder
07-04-16, 08:26
Ich nehme mal an, da hat einer an der QDSIGNON gedreht.
D.h., die DSPF ist für euer System angepasst worden und zeigt nicht mehr den NETA-Namen an.
Es hindert dich schließlich niemand daran, diese DSPF unter Einhaltung der Restriktionen, zu ändern.
M.a.W: In deiner QDSIGNON wird nicht der echte Systemname angezeigt.
Was zeigt dann z.B. WRKSYSSTS an?

Mea culpa! (oder wie der der Lateinamerikaner;) so ähnlich sagt). Ich habe einen dicken Klops gebaut! Du hast recht. RTVNETA liefert das korrekte Ergebnis. Ich wollte das gestern abend genau so bauen auf die Schnelle (nämlich RTVNETA auslesen). Dann bin ich jedoch auf eine Funktion in QSYS2 gestoßen, die mir den current_server zurückliefert. Daran habe ich gar nicht mehr gedacht. Deshalb liefert mein Tool den current_server (das ist der Datenbankname!). Ich habe das jetzt wirklich auf RTVNETA umgestellt: Und schon geht es!

Sorry für meine Dummheit. Vielen Dank an alle, die sich mit der Anfrage beschäftigt haben.

BenderD
07-04-16, 08:33
... das sieht mir so aus, als ob da in eurem RDBDIR der *local Eintrag ein wenig schräg eingetragen ist, sprich: nach Änderung von CHGNETA nicht angepasst wurde.

D*B

dschroeder
07-04-16, 08:46
... das sieht mir so aus, als ob da in eurem RDBDIR der *local Eintrag ein wenig schräg eingetragen ist, sprich: nach Änderung von CHGNETA nicht angepasst wurde.

D*B

Danke. Der Fehler ist aber gefunden. Siehe mein Post von 09.26 Uhr. War meine eigene Blödheit. Ich dachte, dass mein Tool RTVNETA macht. Es hat aber per QSYS2 SQL-Funktion den current_server ermittelt.

Vielen Dank.

BenderD
07-04-16, 09:00
... current_server zieht seine Info (wohl) aus dem RDBDIR und sollte ebensowenig wie NETA auf der Maschinennummer stehen.

D*B