PDA

View Full Version : Verwendung von WRKSPLF, WRKOUTQ in VARPG



Seiten : [1] 2

ubas
25-05-10, 10:47
Hallo zusammen,
kann mir jemand verraten wie ich die Befehle WRKOUTQ, WRKSPLF, WRKWTR für die Druckersteuerung und SPLF-Verwaltung in VARPG einbinden kann, oder ob es eine andere Möglichkeit gibt dem User das verwalten von Druckern und Spooldateien zu ermöglichen?
Vielen Dank im voraus!

Fuerchau
25-05-10, 10:52
Da VARPG doch auf Windows läuft sind keine 5250-Ausgabe-CMD's möglich.
Hierfür musst du eine Vielzahl von API's bemühen.

Einfacher ist es für den User mit den entsprechenden Berechtigungen den OpsNav zu verwenden, der diese Funktionen alle enthält.

ubas
25-05-10, 11:26
Ja, und genau das mit dem OprNav wollte ich vermeiden. Hatte da auch schon an API wie QUSLSPL gedacht.

Fuerchau
25-05-10, 11:56
API-Programmierung ist da schon etwas aufwändiger.
Neben dem genannten API brauchst du auch USRSPC-API's, API's für das ändern von Spoolattributen, beantworten von Nachrichten usw.usw.usw....

Ich denke, damit bist du ein paar Monate beschäftigt.
Vielleicht gibt's ja andere Anbieter mit grafischer Oberfläche für diese Funktionen. Das ist bestimmt auf die Dauer effektiver.

AS400.lehrling
27-05-10, 19:54
Kann man sich da keine java anwendung auf der i schreiben und dan Clientseitig zb. via Webplugin die Java Anwendung starten und somit die editierung vornehmen ?

Oder ein RPG schreiben und per sql aufrufen ?

Gruß AS400.lehrling

andreaspr@aon.at
27-05-10, 20:01
... oder mit Webservice? Weis zwar nicht wie einfach ein Aufruf via VARPG ist, aber vielleicht einfacher als mit APIs?

Fuerchau
28-05-10, 08:04
Es geht ja wohl nicht nur um Abfrage sondern auch um Interaktion.
Abfragen lassen sich releativ einfach per CALL-API bzw. SQL-Prozedure realisieren, indem die entsprechenden Kommandos mit Outfile oder Druckausgabe mit CPYSPLF aufgerufen werden.
Die Ergebnisse lassen sich dann ganz einfach auswerten.

Interaktionen sind dann wieder etwas aufwändiger.

ubas
07-06-10, 08:10
Hallo nochmal,

also mit den API's hat es bisher gut geklappt, zumal es ja auch super Musterroutinen der IBM gibt. Ich habe für das Holen der Spooldateiinformationen das API QUSLSPL verwendet. Es läuft auf der AS/400 super nur leider unter VARPG leider nicht. Hier bricht das Programm ab und ich bekomme in der Log-File FVDCERR.LOG folgenden Eintrag:
DRU01V2.EXE Mon Jun 7 08:57:53 2010 ** Error logging begins **
DRU01V2.EXE Mon Jun 7 08:57:53 2010 Environment variable not found
DRU01V2.EXE Mon Jun 7 08:57:55 2010 CPF3C18 Zeigerparameter nicht auf einer 16-Byte-Grenze.

Es scheint Problem mit einem Pointer zu geben. Diese sind in den D-Bestimmungen zu finden
DLSTPTR S *
DLSTPTR2 S *
DSPCPTR S *
Einer der Pointer wird als Parameter bei einem CALL mitgegeben.
C*
C* Get a resolved pointer to the User Space for performance
C*
C CALL 'QUSPTRUS'
C PARM SPC_NAME
C PARM SPCPTR
C PARM QUSEC
C*
Mir ist aufgefallen, das der Pointer in der Umwandlungsliste des ILE eine Größe von 16 hat und in der Umwandlungsliste des VARPG nur eine Größe von 4 hat.
Wie bekomme ich dieses Problem in den Griff?

ubas
07-06-10, 10:12
Ich nochmal,

hatte vergessen mitzuteilen, dass im VARPG bei Verwendung eines Poiters als Parameter schon folgende Meldung kommt
C CALL CallName
RNV7810E Der Parameter SPCPTR darf keinen Zeiger enthalten; die Bestimmung für die Operation CALL wird ignoriert.

Habe dann versucht eine ganz normale 16Byte große Variable zu verwenden und bekam dann den vorhin schon genannten Fehler bei der Ausführung des Programms

mk
07-06-10, 12:38
Hallo,

ich würde die Verarbeitung rein im RPG Programm auf dem
System machen. Nicht im VARPG direkt.

Also nach dem Motto:

1. Aufruf des Serverprogramms vom Client
2. Verarbeitung des Serverprogramms
3. Ergebnis auf dem Client verarbeiten

Wenn man das Serverprogramm dann noch so intelligent schreibt das z.B. XML, JSON oder Text als Ergebnis
verwendet werden kann, dann könnte die gleiche
Anwendung auch mit anderen Frontends laufen

Gruß
Michael;)