从Java调用AS400 RPG

我对AS400和RPG的了解非常有限(0)。但是我们有一个紧急要求,需要从Java类调用RPG程序。因此,我发现我们可以通过JTOpen实现它。但是我坚持声明ProgramParameter列表。我有以下有关RPG计划的信息

程序名称:ZM30000R参数:分支7,0(数字)

帐户类型2(01-支票,02储蓄)

帐户编号20(字符)

错误代码7(字符)DR / CR指示符1(字符D,C)

但是不知道输入和输出是什么。如何声明ProgramParameter。我做了如下。我也无法测试,因为我没有与这些系统的连接。

// Create AS400 Text objects for the different lengths

// of parameters you are sending in.

AS400Text branchTxt = new AS400Text(7);

AS400Text accntTypeTxt = new AS400Text(2);

AS400Text accntNumberTxt = new AS400Text(20);

AS400Text errorCodeTxt = new AS400Text(7);

AS400Text DCIndicatorTxt = new AS400Text(1);

// declare and instantiate your parameter list.

ProgramParameter[] parmList = new ProgramParameter[5];

// assign values to your parameters using the AS400Text class to convert to bytes

// the second parameter is an integer which sets the length of your parameter output

parmList[0] = new ProgramParameter( branchTxt.toBytes(branch),7);

parmList[1] = new ProgramParameter( accntTypeTxt.toBytes(accntTypeTxt),2);

parmList[2] = new ProgramParameter( accntNumberTxt.toBytes(accntNumberTxt),20);

parmList[3] = new ProgramParameter( errorCodeTxt.toBytes(""),7);

parmList[4] = new ProgramParameter( DCIndicatorTxt.toBytes(indicator),5);

任何帮助将非常有用。

感谢致敬,

斯里尼瓦斯

回答:

好吧,仅通过参数描述,我确实有一个线索。分行,帐户类型和帐号为IN。您需要该信息以进行财务预订或交易。错误代码显然是OUT。以我在财务系统方面的经验,API返回预订金额的方式是很正常的。通常,人们会使用该符号,但在金融系统中,最好使用(D)ebit或(C)redit。

该API很可能是金融系统的API。如果是这样,那我就少了。您确定您有完整的说明吗?

请注意,第一个参数是数字。你不走运

iSeries和RPG对数字的类型不是很宽容。可以从位,分区,打包,十进制,整数,浮点数等中选择。如果RPG确实是RPG而不是ILE

RPG,则可以将其降低到Zoned,Packed和Byte。

我假设您可以访问iSeries。然后,您可以观看程序调用,调试信息和转储信息。如果您必须进行“试错”,那将对您有所帮助。如果您没有访问权限,这条路将会很艰难。如果程序调用不成功,您将在Java类中收到错误消息。但是,如果没有iSeries本身的信息,将很难确定真正的错误。因此,确实需要访问。

以上是 从Java调用AS400 RPG 的全部内容, 来源链接: utcz.com/qa/409047.html

回到顶部