当前位置:  开发笔记 > 编程语言 > 正文

从Java访问iSeries上的RPG

如何解决《从Java访问iSeries上的RPG》经验,为你挑选了1个好方法。

有没有人有过直接谈论从Java运行在V5R4 iSeries机器上的RPG程序的好经验?如果是这样,社区的建议是什么,我应该避免哪些陷阱?

从我试过的各种文献和尖峰解决方案看起来好像我们可以使用ProgramCallBeans(通过PCML或xPCML),与DataQueues(用于异步通信),甚至是JNI.

我正在寻找一些强大,高效,快速开发,易于维护和易于测试的东西(不是我们所有人!?!).



1> Tracy Probst..:

我建议使用IBM的Java Toolbox for Java.将JT400.jar放入类路径(如果Java在iSeries上运行,则为JT400Ntv.jar).我已经使用了ProgramCall类和CommandCall类.

com.ibm.as400.access.CommandCall类很容易使用.它有一个简单的构造函数,您可以将com.ibm.as400.access.AS400类传递给它.然后只需使用这样的run方法:

CommandCall command = new CommandCall(as400);
command.run("CPYF FROMFILE(BLAH) TOFILE(BLAHBLAH) CRTFILE(*YES)");

当然,你不会使用那个特定的CL命令,但你明白了.使用CommandCall类时,处理来自命令的任何消息始终是个好主意.在我使用的一个程序中,我在屏幕上的文本框中向用户显示消息,如下所示:

AS400Message[] messageList = command.getMessageList();
for (int i=0;i < messageList.length;i++) {
String sMessageText = messageList[i].getText();
    sMessage+=sMessageText + "\n";
}

com.ibm.as400.access.ProgramCall类需要更多工作,但它允许您访问返回的参数.我经常使用这个,因为我通常会调用返回值的现有RPG工作程序.为此,请定义com.ibm.as400.access.ProgramParameter数组.将参数传递给Java中的程序时,请记住使用com.ibm.as400.access.AS400Text等类将它们转换为AS/400友好值.使用IBM的文档可以更好地研究ProgramCall命令的详细信息:http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic =/rzahh/page1.htm

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有