Anmelden

View Full Version : Bei RMTCMD Subsystem ändern



RaMai
18-04-05, 13:08
Hallo,
Ich rufe aus einer Excel Anwendung ein PGM auf der AS400 mittels RMTCMD auf. Das Ding läuft dann im SBS QSYSWRK.
In diesem SBS herrscht ziemliches gedränge, deshalb würde ich den JOB gerne in einem anderen SBS laufen lassen......jemand eine Idee?
Vielen Dank!

Mordox
18-04-05, 16:23
Hallo,
Ich rufe aus einer Excel Anwendung ein PGM auf der AS400 mittels RMTCMD auf. Das Ding läuft dann im SBS QSYSWRK.
In diesem SBS herrscht ziemliches gedränge, deshalb würde ich den JOB gerne in einem anderen SBS laufen lassen......jemand eine Idee?
Vielen Dank!

Hi,
Rufe mittels RMTCMD ein CL auf, welches das eigentliche PGM mittels SBMJOB in einem anderen SBS laufen lässt!
Ist zwar nicht schön, sollte aber funktionieren!
:D
Grüße
Andreas

procher
19-04-05, 10:31
Hallo RaMai,
schau mal im Benutzerhandbuch von IBM iSeries Access nach RMTCMD:

Syntax:
RMTCMD befehl [//fernes_system] [/Z]
RMTCMD /I [laufwerk] [pfad] dateiname [/Q] [//fernes_system] [/Z]

Parameter:

befehl Der OS/400-CL-Befehl mit Parametern, der an den Server gesendet werden soll.
/I Gibt an, dass die zu sendenden Befehle in dem Dateinamen gesucht werden, der nach dem Parameter /I angegeben ist Nach der Angabe "/I" muss ein Leerzeichen verwendet werden.
laufwerk Gibt das zu verwendende Laufwerk an.
pfad Gibt den Namen des auf dem Laufwerk zu verwendenden Verzeichnispfads an.
dateiname Gibt den Namen der Datei an, die die OS/400-CL-Befehle enthält. Die Datei muss einen Befehl (mit den notwendigen Parametern) pro Zeile enthalten.
/Q Gibt an, dass keine Eingabeaufforderungen angezeigt werden sollen, wenn ein Fehler von einem dieser Befehle erkannt wird.
//fernes_system Gibt den Namen des Systems an, das die Befehle empfangen und ausführen soll.
/Z Gibt an, dass nur die erforderlichen Nachrichten auf Ihrer Workstation angezeigt werden sollen.


Sieht in der Praxis dann so aus:
Befehl:
RMTCMD /I C:\DATEN\TRANSFER.TXT /Q //AS400

In der datei TRANSFER.TXT steht dann folgendes drin:
SBMJOB CMD(CALL PGM(LIB/PGM) PARM(' ')) JOBQ (LIB/JOBQ)

Über die Angabe JOBQ kann dann direkt die entsprechende JOBQ ausgewählt werden. Dann noch die JOBQ dem richtigen SBS zuweisen und tschüß.

RaMai
19-04-05, 13:22
Vielen Dank für die antworten. Allerdings habe ich jetzt die nächste Frage dazu...

Wenn ich das Programm unter meinem USRPRF laufen lasse funktioniert alles wunderbar, lasse ich es unter dem USRPRF eines "normalen" Users laufen funktioniert der RMTCMD nicht. Ich denke es ist eine Berechtigungssache, ich habe *ALLOBJ. Weiß jemand welche minimale Berechtigung der User benötigt um einen RMTCMD auszuführen?

MfG
RaMai

RaMai
19-04-05, 15:12
Hallo,
diese Lösung würde mir am besten gefallen.
Allerdings stehe ich jetzt komplett auf dem Schlauch.
Wie kriege ich diese Syntax in Excel.
Bis jetzt rufe ich das so auf:
Pgm = "RMTCMD.EXE CALL ABB001C "
PgmRetrn = Shell(Pgm, vbMaximizedFocus)
Kannst Du mir da noch helfen?


Hallo RaMai,
schau mal im Benutzerhandbuch von IBM iSeries Access nach RMTCMD:

Syntax:
RMTCMD befehl [//fernes_system] [/Z]
RMTCMD /I [laufwerk] [pfad] dateiname [/Q] [//fernes_system] [/Z]

Parameter:

befehl Der OS/400-CL-Befehl mit Parametern, der an den Server gesendet werden soll.
/I Gibt an, dass die zu sendenden Befehle in dem Dateinamen gesucht werden, der nach dem Parameter /I angegeben ist Nach der Angabe "/I" muss ein Leerzeichen verwendet werden.
laufwerk Gibt das zu verwendende Laufwerk an.
pfad Gibt den Namen des auf dem Laufwerk zu verwendenden Verzeichnispfads an.
dateiname Gibt den Namen der Datei an, die die OS/400-CL-Befehle enthält. Die Datei muss einen Befehl (mit den notwendigen Parametern) pro Zeile enthalten.
/Q Gibt an, dass keine Eingabeaufforderungen angezeigt werden sollen, wenn ein Fehler von einem dieser Befehle erkannt wird.
//fernes_system Gibt den Namen des Systems an, das die Befehle empfangen und ausführen soll.
/Z Gibt an, dass nur die erforderlichen Nachrichten auf Ihrer Workstation angezeigt werden sollen.


Sieht in der Praxis dann so aus:
Befehl:
RMTCMD /I C:\DATEN\TRANSFER.TXT /Q //AS400

In der datei TRANSFER.TXT steht dann folgendes drin:
SBMJOB CMD(CALL PGM(LIB/PGM) PARM(' ')) JOBQ (LIB/JOBQ)

Über die Angabe JOBQ kann dann direkt die entsprechende JOBQ ausgewählt werden. Dann noch die JOBQ dem richtigen SBS zuweisen und tschüß.

Fuerchau
19-04-05, 15:19
Der Benutzer, der das Programm aufruft, benötigt die Berechtigung:
- an der Lib, in der das PGM steht
- an dem Programm
- an den Objekten, die dieses Programm verwendet
Ggf. gibts ja ein Joblog, in dem steht warum das Programm nicht ausgeführt werden konnte.

RaMai
19-04-05, 15:27
Danke, das könnte tatsächlich der Fall sein.
In der Bibliothek hat die Berechtigung gefehlt.
Joblog ist naheliegend, allerdings finde ich den Scheißjob nicht.....
Trotzdem Danke


Der Benutzer, der das Programm aufruft, benötigt die Berechtigung:
- an der Lib, in der das PGM steht
- an dem Programm
- an den Objekten, die dieses Programm verwendet
Ggf. gibts ja ein Joblog, in dem steht warum das Programm nicht ausgeführt werden konnte.

Fuerchau
19-04-05, 15:52
Nana, wer wir denn gleich ....

Normalerweise wird ein Joblog unter dem Benutzer erstellt, der das Kommando ausführen wollte, ansonsten unter QUSER.
Probiers halt mal mit WRKSPLF <Username>

Im Zweifel steht es in der Outq QEZJOBLOG und da halt auf die Datum/Uhrzeit-Sicht stellen und suchen.
Soviele Joblogs sollte es eigentlich nicht geben.

RaMai
20-04-05, 10:53
Nana, wer wir denn gleich ....


Normalerweise wird ein Joblog unter dem Benutzer erstellt, der das Kommando ausführen wollte, ansonsten unter QUSER.
Probiers halt mal mit WRKSPLF <Username>

Im Zweifel steht es in der Outq QEZJOBLOG und da halt auf die Datum/Uhrzeit-Sicht stellen und suchen.
Soviele Joblogs sollte es eigentlich nicht geben.
Oh doch, da gibt es unmengen an Joblogs.
Ist unter QUSER, dummerweise auf der Livemachine in einem Multicompany Environmet.
Also da gibts wirklich eine Menge.
Anyway, hattest Recht - außer bei der Bibliothek habe ich die Berechtigungen vergeben.
Nachdem ich jetzt auch den User authorisiert habe funzt es.
Danke für die schnelle und kompetente Hilfe!