PDA

View Full Version : welche OUTQ ist einer Printfile zugewiesen?



WoRi
23-10-03, 12:41
Hallo,

wie kann in einem RPGIII-Programm festgestellt werden, welche OUTQ der im Programm verwendeten Printfile zugewiesen ist? In der Dateiinformationsdatenstruktur hatte ich eigentlich diese Information erwartet, kann sie aber nirgends entdecken. Wer weiß Rat???

Danke schon im voraus.

Gruß

WoRi

tfroehlich
23-10-03, 13:05
Hallo,

ich weiss, dass man in einem CL
mit dem parameter RTVJOBA OUTQ(NamederOutq) diese
Information rausbekommt.

Dieses Als Parameter an das RPG III -Programm übergeben.
Das könnte klappen.

Ich habe mir ein CL (CMD) geschrieben welches mir
den Sitzungsdrucker anzeigt und diesen auch ändern kann
mit chgjob.

Bei Interesse kann ich dir das kleine CL mailen.

Gruss Thomas

Fuerchau
23-10-03, 13:30
über das folgende API kannst du alle Informationen über deine Spools erhalten:

http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/apis/QUSRSPLA.htm

WoRi
23-10-03, 14:02
@tfroehlich, @Fuerchau

Danke für die schnellen Antworten! Leider ist es jedoch so, dass beide Lösungen für mich nicht in Frage kommen. Eine Übergabe als Parameter scheidet aus bestimmten Gründen aus, und die Verwendung von API's ist in unserer Firma nicht zugelassen.

Habe allerdings inzwischen selbst eine Lösung gefunden (theoretisch): Über QCMDEXC ein CL rufen. Dies führt aus:

DSPOVR mit Ausgabe in eine Spoolfile
CPYSPLF in eine temp. PF

Der betreffende Satz mit der OUTQ-Info könnte dann im RPG-Progr. aus dieser Datei gelesen werden. Das ist allerdings nun wirklich von hinten durch die Brust ins linke Auge, so dass ich doch versuchen werde, die Übergabe als Parameter durchzusetzen.

Also nochmals danke und Gruß

WoRi

Fuerchau
23-10-03, 14:16
Wenn ich kleinlich wäre, dann gilt der Aufruf von QCMDEXC bereits als API !
Ausserdem würde ich ja das CL nicht per QCMDEXC aufrufen sondern direkt per CALL.

Aber was machst du wenn gar kein OVR vorhanden ist ?
Oder wenn zwar OVR's da sind, diese aber nicht für die gerade geöffnete Spool gelten ?

Dann ist schon "DSPJOB OUTPUT(*PRINT) OPTION(*SPLF)" und dann mit Status OPN suchen der richtigere Weg. Aber auch das ist natürlich aufwändig ohne Ende.

Warum darfst du keine API's verwenden ? Die sog. Quellcode-Kompatibilität zu nicht AS/400-Systemen kannst du für solche Geschichten sowieso vergessen.

Dann ruf doch einfach ein PGMx auf, das das API verbirgt.

WoRi
23-10-03, 14:27
Der OVRPRTF ist zwingend vorhanden. Aber egal, ich nehme an, ich kann die Parameter-Lösung durchsetzen.

Warum keine API's? Gute Frage. Es ist einfach untersagt. Punkt. Angeblich ist dies mal angewiesen worden, weil sonst die Programm von solchen Leuten, die die API-Technik nicht beherrschen, nicht mehr gelesen und gewartet werden können. Schließlich krebsen wir auch immer noch mit RPGIII rum. Es gibt noch eine ganze Reihe weiterer restriktiver Anordnungen, aber das würde hier wohl zu weit führen...

@ tfroehlich:

Dein Vorschlag mit "RTVJOBA OUTQ(NamederOutq)" dürfte nicht funktionieren, denn damit bekomme ich nicht die OUTQ, die per OVRPRTF einer bestimmten Printfile zugewiesen ist.

Gruß

WoRi

Fuerchau
23-10-03, 14:30
Wie wers denn damit:

Das Programm, dass den OVRPRTF durchführt (was m.E. ein API ist) bzw. aufruft kann doch die nötige Information z.B. in die LDA (ist kein API) schreiben so dass die anderen Programme diese dann auslesen ?

WoRi
23-10-03, 14:33
Bingo! Danke! Hätte ich ja auch selbst drauf kommen können, aber manchmal ist man eben ein bisschen betriebsblind...