首页 > 解决方案 > 如何从 Python 调用 RPG 程序

问题描述

如何从 IBM 的 Python 中调用 RPG 程序来进行 PASE?

我尝试了 os.system、subprocess.popen/call 但它们没有用。

更新

我在 IBM 的网站上找到了一些东西。我尝试了以下;它没有给我任何错误,但 RPG 程序没有执行(这意味着它没有给出预期的结果)。

from itoolkit import * 
from itoolkit.lib.ilibcall import * 

itool = iToolKit()                                       
itransport = iLibCall()                                  
itool.add(iCmd('CALL', 'CALL TEMPLIB/TEMPPGM'))      
itool.call(itransport)    

标签: pythonsubprocessibm-midrange

解决方案


基于 XMLSERVICE 的 Python itoolkit 的文档在这里,特别是您需要iPgm

一个没有参数的简单示例是:

from itoolkit import * 
from itoolkit.lib.ilibcall import *

itransport = iLibCall()
itool = iToolKit()

itool.add(iPgm('pgmcall','TEMPPGM', {'lib': 'TEMPLIB'}))
itool.call(itransport)

output = itool.dict_out('pgmcall')
if 'success' in output:
    print('Success!')

指定库的另一种解决方案是先添加一个iCmd操作,将其添加TEMPLIB到库列表中。您可以在这里找到更多示例:http: //python-itoolkit.readthedocs.io/en/latest/examples.html


推荐阅读