忙碌忙着尝试Call RPG function from Java,并从JamesA得到this示例。但现在我遇到了麻烦,这是我的代码:
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分钟,然后终止了应用程序。
知道我哪里做错了吗
编辑
以下是作业日志上的消息:
客户端请求-运行程序QRST/QWCRTVCA。
客户端请求-运行程序LIBNAME/FUNNAME。
库中的文件P6 CASEL 2 *LIBL未找到或缺少内联数据文件。打开期间出现错误消息CPF 4101。
无法解析为对象YOBPSSR。类型和子类型X '0201'权限
FUNNAME通过名为P6 CASEL 2的视图将行插入表P6 CASEPF。P6 CASEL 2在不同的库中,比如说LIBNAME 2。有没有办法设置JobDescription?
3条答案
按热度按时间a1o7rhls1#
您确定
FUNNAME.PGM
正在终止并且没有挂起MSGW吗?检查QSYSOPR
是否有任何消息。Class ProgramCall:
注:当程序在主机服务器作业中运行时,库列表将是用户配置文件中作业描述中指定的初始库列表。
roqulrg32#
所以我看到我的问题是我的库列表没有设置,并且由于某种原因,我们正在使用的用户没有职位描述。为了克服这个问题,我在调用
program.run()
之前添加了以下代码:这只是将这个LIBNAME和LIBNAME2添加到用户的库列表中。
ecbunoof3#
哦,是的,问题是图书馆列表没有设置...看看www.example.com上的讨论Midrange.com,有不同的解决方法. http://archive.midrange.com/java400-l/200909/msg00032.html
德佩