当前位置: 首页 > 面试题库 >

从Java调用AS400 RPG

申屠宏胜
2023-03-14
问题内容

我对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本身的信息,将很难确定真正的错误。因此,确实需要访问。



 类似资料:
  • 问题内容: 我创建了一个xPages应用程序,该应用程序使用了位于服务器端javascript库中的许多服务器端javascript代码功能。 现在,我有一些Java代码位于java设计元素中,我想使用它们来调用javascript函数。 我确实知道从Java调用javascript是不合逻辑的,但是我想所有服务器端javascript都已编译为java,因此我认为可能可以获取所生成的已编译jav

  • 问题内容: 对于“从Java调用Clojure”而言,大多数Google热门歌曲都已过时,建议您使用它clojure.lang.RT来编译源代码。假设您已经从Clojure项目构建了一个jar并将其包含在类路径中,那么您能否帮助您清楚地说明如何从Java调用Clojure? 问题答案: 从Clojure 1.6.0开始,有一种新的首选方式来加载和调用Clojure函数。现在,此方法优于直接调用RT

  • 问题内容: 从python调用Java的最佳方法是什么?(对我来说,jython和RPC不是一个选择)。 我听说过JCC:http : //pypi.python.org/pypi/JCC/1.9 一个用于从C / Python调用Java的C 代码生成器,但这需要编译所有可能的调用。我希望有另一个解决方案。 我听说过JPype:http ://jpype.sourceforge.net/ 教程:

  • 我需要从Java中调用一些Python代码。 我知道Jython存在,或者Java有自己的Python解释器。 问题是,所说的Python代码使用一些本机(C)编译代码,甚至在GPU上运行一些东西。 所以我可以把它分为两个问题: < Li > Jython或Java的Python解释器支持这个吗?也就是说,Python代码(当从Java调用时)将与所有的C和GPU部分一起运行,因此运行速度将与它独

  • 我已经编写了一个.bat文件(因为我现在正在Windows上测试):- > 我将.bat文件保存在MongoDB的/bin文件夹中。 如果我直接从Windows命令提示符调用.bat文件,该文件可以正常工作。 以下是Java控制台的输出:

  • 问题内容: 在这里,我并不是在创建RESTful服务,实际上我必须从Java代码中调用外部Restful服务。目前,我正在使用Apache HttpClient实现此功能。我从Web服务获得的响应是​​XML格式。我需要从XML提取数据并将其放在Java对象上。听说不是使用SAX解析器,而是可以使用JAX- RS和JERSEY来自动将xml标记映射到相应的Java对象。 我一直在浏览,但是找不到开

  • 问题内容: 任何人都可以帮我吗:我想从Pl / SQL,Oracle RDBMS调用一个Java程序,以下是设置 Windows 7计算机,Java安装在C:\ Program Files \ Java \ jdk1.7.0_02 我创建了一个目录来保存Java文件。D:\ Java,其中有一个hello.java文件。 可以很好地编译它,并在同一目录中生成.class文件。 由于我必须使用PL

  • 问题内容: 我正在将Java用于小型应用程序。这是对现有MFC项目的重写。我需要更改一个现有的dll,以启用使用JNI从Java进行的访问。所有这些Java知识对我来说都是新手,因此当我阅读其他论坛帖子时遇到了一些麻烦,并且感觉比较密集。在现有的dll中,我具有如下功能: 愚蠢的提问时间。如何正确设置它以被Java调用? 我尝试了这个: 我包括jni.h,一切编译正常。但是,当我从Java调用它时