java - 如何使用Java调用现有的RPG画面程序?

标签 java ibm-midrange rpg

我现有带有绿屏的 RPG4 程序,我希望能够使用 Java 调用 RPG 程序并绕过绿屏。

我对此做了一些研究,IBM OAR(开放访问:RPG)不断出现。但我还没有找到一个有效的例子。

我的目标是创建一个网络应用程序来收集相同的信息并将其提供给后端 RPG

任何帮助将不胜感激

最佳答案

编辑

删除:你不能。

插入:初学者在解决这个问题之前需要掌握几个复杂的新概念。

结束编辑

至少,在不改变 RPG 程序的情况下是这样。 Web 请求由服务器作业处理,这些作业批量运行 - 它们不连接到 5250 终端。因为它们没有连接到终端,所以当 RPG 程序尝试打开显示文件时,它会失败,因为没有可以附加的终端。

为了使其工作,您必须更改 RPG 程序,使其在由 Java 应用程序等批处理进程调用时不尝试显示文件 I/O(尽管在此 Web 场景中不需要 Java)。

改变RPG程序的一种方法是使用输入参数;如果你有它们,那么不要尝试打开显示文件,而是将输入参数填充到显示文件本来可以完成的字段中。由于显示文件也从程序中输出,因此您还需要为输出信息保留一些参数。如果涉及子文件,这可能会变得非常难看,因为可能有数千个参数。

OAR 之所以出现,是因为我们可以编写一个 OAR 处理程序,该处理程序继续使用相同的显示文件 I/O 操作,但将实际的 I/O 引导到其他地方,例如 HTTP 类型应用程序的 STDIN 和 STDOUT。 Jon Paris 和 Susan Gantner 撰写了一篇名为 Getting a Handle on RPG's Open Access 的文章您可能会发现这很有帮助。它位于 IBM Systems Magazine 2010 年 7 月电子版中。

也许更好的方法是提取 RPG 程序中的业务逻辑,将其实现为存储过程,Web 应用程序可以通过传统的 ODBC/JDBC 调用该存储过程。人们可以在 RPG 中编写存储过程,因此这并不像看起来那么难。

关于java - 如何使用Java调用现有的RPG画面程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716274/

相关文章:

java - as400 box中执行时如何判断Java代码正在执行的库列表(rpgle程序调用)

java - IBM iSeries 上的 RPG 到 Java 迁移

syntax-highlighting - 生成 HTML 和/或 RTF 的 RPG 和 CLP 的语法高亮器?

file - AS400 文件 - 将 PF 和 LF 转换为 SQL

java - 我想要两个 ListView 同时滚动

java - 类型安全 : Unchecked cast from Object to ArrayList<MyVariable>

java - AS400 编程和动态类路径

ibm-midrange - 如何 "Reset"UDF DETERMINISTIC 响应?

java - Grails 1.3.3 过滤器 - NullPointerException 或 ClassCastException

java - 安卓 : debug keystore