Parameter sind falsch. Bei Return darfst Du keine Parameter mitgeben. NullPointer kommt durch Parm Abfrage auf getOutputData() die nicht vorhanden sind bei Parm 1+2.
Bitte nächstes mal funktionierendes Code-Beispiel einfügen!
Code:
public class Test2 {
public static void main(String[] args) {
AS400 system = new AS400("xx.x.x.x", "xx", "xx");
ProgramCall program = new ProgramCall(system);
try {
String programName = "/QSYS.LIB/xxxx.LIB/TEST.PGM";
ProgramParameter[] parameterList = new ProgramParameter[3];
AS400Text In_parm1 = new AS400Text(10, system);
parameterList[0] = new ProgramParameter(In_parm1.toBytes("Ich bin"));
AS400Text In_parm2 = new AS400Text(10, system);
parameterList[1] = new ProgramParameter(In_parm2.toBytes(" gut!"));
// Keine Par, mitgeben!!!
parameterList[2] = new ProgramParameter(20);
program.setProgram(programName, parameterList);
// Run the program.
if (!program.run()) {
System.out.println("Program failed!");
AS400Message[] messagelist = program.getMessageList();
for (int i = 0; i < messagelist.length; ++i) {
System.out.println(messagelist[i]);
}
} else {
AS400Text text = new AS400Text(20, system);
System.out.println(text.toObject(parameterList[2].getOutputData()));
}
} catch (Exception e) {
System.out.println("Program " + program.getProgram()+ " did not run!" + e);
} finally {
system.disconnectAllServices();
}
}
}
Bookmarks