hartmuth
29-08-12, 18:17
Stehe vor großem Rätsel und hoffe auf eure Hilfe.
Ich rufe aus Java ein CL-Pgm auf.
Dieses CL-Pgm enthält seinerseits ein RPG-Programm.
Wenn Aufruf aus Java erfolgt , wird dieses RPG-Pgm nicht aufgerufen ?!?!
Wenn Aufruf aus Befehlszeile erfolgt, dann schon. ?!?!
Das CL-Pgm wird in Java aber sehr wohl aufgerufen, das ist über DMPCLPGM beweisbar.
Hier die java-Zeilen für RPG-Aufruf.
(Java läuft übrigens am PC, nicht auf AS400)
------------------------------------------
// Create the path to the program.
programName = new QSYSObjectPathName("STONESOBJ",
"STONEPRLGC", "PGM");
// Create the program call object.
programCall = new ProgramCall(host);
// Create the parameter list (array).
programCall.setProgram(programName.getPath(), parmlist);
log.info("Programm wird aufgerufen:" + programName.getPath()); // findet sich im Log - siehe unten
if (programCall.run() != true)
{
AS400Message[] msgList = programCall.getMessageList();
String as400Msg = msgList[0].toString();
log.error("Fehler bei Verarbeitung:" + as400Msg); // kein Eintrag im Log
}
host.disconnectService(AS400.COMMAND);
}
------------------------------------------
Eintrag aus Log:
Programm wird aufgerufen:/QSYS.LIB/STONESOBJ.LIB/STONEPRLGC.PGM
Das CL-Programm STONEPRLGC besteht aus folgenden Zeilen
(Es findet sich im Log, wie erwähnt kein Hinweis auf Fehler bei Aufruf. )
ADDLIBLE LIB(STEINE_TST) POSITION(*AFTER STONESOBJ)
ADDLIBLE LIB(STEINE_95T) POSITION(*AFTER STONESOBJ)
ADDLIBLE LIB(QS36_TST) POSITION(*AFTER STONESOBJ)
ENDDO /* PMODE *EQ 'T' */
CALL PGM(STONEPROLG)
DMPCLPGM
ENDE: ENDPGM
Alles scheinbar so einfach.
Ich konnte es kaum glauben, als ich das "Phänomen" bemerkte.
?!?!?!
Vielen Dank im Voraus für Unterstützung
Ich rufe aus Java ein CL-Pgm auf.
Dieses CL-Pgm enthält seinerseits ein RPG-Programm.
Wenn Aufruf aus Java erfolgt , wird dieses RPG-Pgm nicht aufgerufen ?!?!
Wenn Aufruf aus Befehlszeile erfolgt, dann schon. ?!?!
Das CL-Pgm wird in Java aber sehr wohl aufgerufen, das ist über DMPCLPGM beweisbar.
Hier die java-Zeilen für RPG-Aufruf.
(Java läuft übrigens am PC, nicht auf AS400)
------------------------------------------
// Create the path to the program.
programName = new QSYSObjectPathName("STONESOBJ",
"STONEPRLGC", "PGM");
// Create the program call object.
programCall = new ProgramCall(host);
// Create the parameter list (array).
programCall.setProgram(programName.getPath(), parmlist);
log.info("Programm wird aufgerufen:" + programName.getPath()); // findet sich im Log - siehe unten
if (programCall.run() != true)
{
AS400Message[] msgList = programCall.getMessageList();
String as400Msg = msgList[0].toString();
log.error("Fehler bei Verarbeitung:" + as400Msg); // kein Eintrag im Log
}
host.disconnectService(AS400.COMMAND);
}
------------------------------------------
Eintrag aus Log:
Programm wird aufgerufen:/QSYS.LIB/STONESOBJ.LIB/STONEPRLGC.PGM
Das CL-Programm STONEPRLGC besteht aus folgenden Zeilen
(Es findet sich im Log, wie erwähnt kein Hinweis auf Fehler bei Aufruf. )
ADDLIBLE LIB(STEINE_TST) POSITION(*AFTER STONESOBJ)
ADDLIBLE LIB(STEINE_95T) POSITION(*AFTER STONESOBJ)
ADDLIBLE LIB(QS36_TST) POSITION(*AFTER STONESOBJ)
ENDDO /* PMODE *EQ 'T' */
CALL PGM(STONEPROLG)
DMPCLPGM
ENDE: ENDPGM
Alles scheinbar so einfach.
Ich konnte es kaum glauben, als ich das "Phänomen" bemerkte.
?!?!?!
Vielen Dank im Voraus für Unterstützung