这个问题与i5 / OS(大型机,as400等)及其用CL编写的程序有关。如何访问应用程序本身之外的给定.PGM扩展文件(RPGLE)中的参数并且没有admin privs?
我已经在as400应用程序中尝试了所有可用的和相关的功能。他们都没有工作。至少不是我的用户权限。
总的来说,这个大型机应用程序利用了库中的数百个库。添加数千个文件,您将有一项艰巨的任务,即访问您被授予访问权限的有限菜单功能/程序(.PGM文件扩展名)之外的相关数据。
坦率地说,这些节目很糟糕。我真的很喜欢使用SSH连接和qshell来执行SQL语句以在库中调出表。我可以自定义访问哪些表以及如何获取信息。此特定程序充当基本查询,可访问多个表中的数据,将其显示在新表中,并允许基于有限数量的标准进行实时过滤。
我已尝试过CAT命令,如下所示:
$ cat someprogam (以及有和没有扩展名的几种变体,我忘了)
但这些只是给我错误代码
我也尝试在db2提示符下执行SQL语句,但是我得到了SQL STATE返回码(这不是&.F的扩展名,所以是的,因为它不会像选择那样工作表格)。
我更喜欢在qshell中访问数据。也许我做错了什么?任何帮助是极大的赞赏。谢谢
答案 0 :(得分:1)
Qshell是一种替代操作环境,因为我没有更好的名字而称之为本机。 Qshell与AIX类似但不是100%相同。 Qshell没有将本机程序的输出映射到stdout,因此您无法通过管道访问本机程序的输出。
如果本机程序写入显示器,重定向该输出的唯一合理方法是屏幕刮擦,这可以通过编写您自己的tn5250仿真器,拦截屏幕输出并将其放在您想要的位置来完成,包括标准输出。如果您对5250通信协议不满意,这并不是特别简单。
你有两个模糊的实用选择。 1)编写许多SQL存储过程,这些存储过程耦合在一起,复制嵌入要执行的程序中的业务逻辑。 2)要求中端开发人员将业务逻辑重构为服务程序(他们应该理解这一点)并编写存储过程供您使用。这样,中端程序和外部使用者(您)都可以重用相同的业务逻辑。当(不是)逻辑发生变化时,它会在一个地方发生变化,所有消费者都会看到新的规则。