忙于从 Java 调用 RPG 函数,并从JamesA获得了这个示例。但是现在我遇到了麻烦,这是我的代码:
AS400 system = new AS400("MachineName");
ProgramCall program = new ProgramCall(system);
try
{
// Initialise the name of the program to run.
String programName = "/QSYS.LIB/LIBNAME.LIB/FUNNAME.PGM";
// Set up the 3 parameters.
ProgramParameter[] parameterList = new ProgramParameter[2];
// First parameter is to input a name.
AS400Text OperationsItemId = new AS400Text(20);
parameterList[0] = new ProgramParameter(OperationsItemId.toBytes("TestID"));
AS400Text CaseMarkingValue = new AS400Text(20);
parameterList[1] = new ProgramParameter(CaseMarkingValue.toBytes("TestData"));
// Set the program name and parameter list.
program.setProgram(programName, parameterList);
// Run the program.
if (program.run() != true)
{
// Report failure.
System.out.println("Program failed!");
// Show the messages.
AS400Message[] messagelist = program.getMessageList();
for (int i = 0; i < messagelist.length; ++i)
{
// Show each message.
System.out.println(messagelist[i]);
}
}
// Else no error, get output data.
else
{
AS400Text text = new AS400Text(50);
System.out.println(text.toObject(parameterList[1].getOutputData()));
System.out.println(text.toObject(parameterList[2].getOutputData()));
}
}
catch (Exception e)
{
//System.out.println("Program " + program.getProgram() + " issued an exception!");
e.printStackTrace();
}
// Done with the system.
system.disconnectAllServices();
应用程序在此行挂起if (program.run() != true)
,我等待大约 10 分钟,然后终止应用程序。
知道我做错了什么吗?
编辑
这是作业日志上的消息:
客户请求 - 运行程序 QSYS/QWCRTVCA。
客户端请求 - 运行程序 LIBNAME/FUNNAME。
未找到库 *LIBL 中的文件 P6CASEL2 或缺少内联数据文件。OPEN 期间出现错误消息 CPF4101。
无法解决反对 YOBPSSR。类型和子类型 X'0201' 授权
FUNNAME 通过名为 P6CASEL2 的视图向表 P6CASEPF 中插入一行。P6CASEL2 在不同的库中,比如说 LIBNAME2。是否可以设置 JobDescription?