PDA

View Full Version : RPG aus Java aufrufen



Seiten : [1] 2

Vicky-B
09-01-07, 13:25
Hallo zusammen,

gibt es eine Möglichkeit aus Java ServiceProgramme bzw. Module aufzurufen??

Danke
LG
Vicky

Frank Hildebrandt
09-01-07, 13:42
Über die Toolbox für Java. Hier der Link.

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzahh/spgcall.htm

Fuerchau
09-01-07, 14:07
Allerdings können nur Programme (OPM/ILE) und keine Service-Programme oder Module aufgerufen werden.

Frank Hildebrandt
09-01-07, 14:24
Die Klasse bei meinem ersten Posting erlaubt auch den Zugriff auf Serviceprogramme. Alternativ kann man noch über PCML den Aufruf steuern. Die Klasse hierfür befindet sich auch in der Toolbox. Hier der Link. http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzahh/pcml.htm

Frank Hildebrandt
09-01-07, 15:00
Noch ein kleiner Hinweis. Wenn man beim Befehl CRTBNDRPG bzw. CRTRPGMOD den Parameter PGMINFO(*PCML) angibt, dann kann man sich das PCML-Dokument generieren lassen, welches die Parameterliste des Programms/Serviceprograms beschreibt. Da spart man sich eine Menge Arbeit.

Vicky-B
10-01-07, 09:52
Danke für die Tipps....

ich habe nun folgenes Problem:



....
ServiceProgramCall sPGMCall=
new ServiceProgramCall(system, "QSYS/BASOBJSTD/SPE01S", parameterList);

sPGMCall.setProcedureName("SPE01N02");
...
Wenn ich das Programm ausführe bekomme ich folgende Fehlermeldung:



com.ibm.as400.access.IllegalPathNameException: QSYS/BASOBJSTD/SPE01S: Object not in QSYS file system.

at com.ibm.as400.access.QSYSObjectPathName.parse(QSYS ObjectPathName.java:879)



Serviceprogramm . . . . . . . . . . . . : SPE01S
Bibliothek . . . . . . . . . . . . . . : BASOBJSTD
Eigner . . . . . . . . . . . . . . . . . : BASPGMR
Serviceprogrammattribut . . . . . . . . : RPGLE
Detail . . . . . . . . . . . . . . . . . : *BASIC



Wo liegt mein Problem??

Danke Euch!

Vicky

Frank Hildebrandt
10-01-07, 10:08
Der Pfadname ist falsch. Versuch den mal.
QSYS.LIB/BASOBJSTD.LIB/SPE01S.SRVPGM

Vicky-B
10-01-07, 10:35
super danke für den Tip:


/QSYS.LIB/BASOBJSTD.LIB/SPE01S.SRVPGM
Hab noch ne Frage :-) Beim Ausführen bekomme ich ne fehlermeldung (Dezimalfehler). Gibts ne Möglichkeit dass man etwas mehr an Infos bekommt??


System.out.println(messageList[i].getText());

Frank Hildebrandt
10-01-07, 10:53
Dann hast Du die auszutauschenden Parameter nicht richtig konvertiert. Unter dem folgenden Link befindet sich die Rubrik
"Data conversion and description". Da wird alles erklärt.

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzahh/spgcall.htm

Vicky-B
10-01-07, 12:34
hab was neues!!!


Zeiger für angegebene Position nicht gesetzt.

Wie komme ich an mehr Infos und etwas detaillierte Fehlermeldung :confused: