Ibm midrange RPG/RPGLE-在带有参数的程序中捕获调用的程序
是否有一种方法可以捕获程序中所有被调用的程序,包括每个被调用程序的参数(名称、类型和长度) DSPPGMREF到outfile让我走了一半Ibm midrange RPG/RPGLE-在带有参数的程序中捕获调用的程序,ibm-midrange,rpgle,Ibm Midrange,Rpgle,是否有一种方法可以捕获程序中所有被调用的程序,包括每个被调用程序的参数(名称、类型和长度) DSPPGMREF到outfile让我走了一半 DSPPGMREF PGM(MYLIB/*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/MYFILE) 从问题的上下文判断,我假设您希望通过对源或对象的分析而不是在运行时执行此操作 据我所知,除了构建自己的交叉引用工具之外,使用内置IBMi工具实现这一点没有简单的方法。有很多第三方交叉引用工具可以为您实现这一点,但据我所知,在IB
DSPPGMREF PGM(MYLIB/*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/MYFILE)
从问题的上下文判断,我假设您希望通过对源或对象的分析而不是在运行时执行此操作
据我所知,除了构建自己的交叉引用工具之外,使用内置IBMi工具实现这一点没有简单的方法。有很多第三方交叉引用工具可以为您实现这一点,但据我所知,在IBMi上没有一个是免费的。只有我个人使用过的列表是Hawkey Pathfinder、MDCMS或Fresche X-Analysis。从问题的上下文判断,我假设您希望通过对源或对象的分析而不是在运行时执行此操作
据我所知,除了构建自己的交叉引用工具之外,使用内置IBMi工具实现这一点没有简单的方法。有很多第三方交叉引用工具可以为您实现这一点,但据我所知,在IBMi上没有一个是免费的。只有我个人使用过的列表是Hawkey Pathfinder、MDCMS或Fresche X-Analysis。如果使用PGMINFO(*PCML:*模块)作为命令参数或在H规范中编译程序,程序将包含描述参数的程序调用标记语言 您可以使用QBNRPII API从程序中检索PCML。本文有一个命令,它只显示PCML,但是您可以修改它以使用XML-INTO或XML-SAX以可用的方式获取信息。(如果参数可能是复杂的数据结构,XML-INTO可能无法很好地工作。) 对于具有以下PI的程序:
dcl-pi *n;
name char(25) const;
salary packed(9:2);
end-pi;
下面是PCML的一个示例
<pcml version="6.0">
<!-- RPG program: PCMLTEST -->
<!-- created: 2018-04-18-08.01.17 -->
<!-- source: BMORRIS/QRPGLESRC(PCMLTEST) -->
<!-- 1 -->
<program name="PCMLTEST" path="/QSYS.LIB/BMORRIS.LIB/PCMLTEST.PGM">
<data name="NAME" type="char" length="25" usage="input" />
<data name="SALARY" type="packed" length="9" precision="2" usage="inputoutput" />
</program>
</pcml>
为了得到这种好的格式,我用PGMINFO(*PCML:*STMF)INFOSTMF('PCMLTEST.PCML')编译了我的程序。生成到模块(然后放入程序)中的PCML没有任何换行符或额外的间距
以下是RPG Cafe命令为同一程序显示的内容:
Printing PCML info
Object: BMORRIS/PCMLTEST *PGM
Module: *ALLBNDMOD
Length of information: 320
Length of data: 227
0: <pcml version="6.0"> <program name="PCMLTEST" entr
50: ypoint="PCMLTEST"> <data name="NAME" type="char" l
100: ength="25" usage="input" /> <data name="SALARY" ty
150: pe="packed" length="9" precision="2" usage="inputo
200: utput" /> </program></pcml>
打印PCML信息
对象:BMORRIS/PCMLTEST*PGM
模块:*ALLBNDMOD
资料长度:320
数据长度:227
0:
如果使用PGMINFO(*PCML:*模块)作为命令参数或在H规范中编译程序,程序将包含描述参数的程序调用标记语言
您可以使用QBNRPII API从程序中检索PCML。本文有一个命令,它只显示PCML,但是您可以修改它以使用XML-INTO或XML-SAX以可用的方式获取信息。(如果参数可能是复杂的数据结构,XML-INTO可能无法很好地工作。)
对于具有以下PI的程序:
dcl-pi *n;
name char(25) const;
salary packed(9:2);
end-pi;
下面是PCML的一个示例
<pcml version="6.0">
<!-- RPG program: PCMLTEST -->
<!-- created: 2018-04-18-08.01.17 -->
<!-- source: BMORRIS/QRPGLESRC(PCMLTEST) -->
<!-- 1 -->
<program name="PCMLTEST" path="/QSYS.LIB/BMORRIS.LIB/PCMLTEST.PGM">
<data name="NAME" type="char" length="25" usage="input" />
<data name="SALARY" type="packed" length="9" precision="2" usage="inputoutput" />
</program>
</pcml>
为了得到这种好的格式,我用PGMINFO(*PCML:*STMF)INFOSTMF('PCMLTEST.PCML')编译了我的程序。生成到模块(然后放入程序)中的PCML没有任何换行符或额外的间距
以下是RPG Cafe命令为同一程序显示的内容:
Printing PCML info
Object: BMORRIS/PCMLTEST *PGM
Module: *ALLBNDMOD
Length of information: 320
Length of data: 227
0: <pcml version="6.0"> <program name="PCMLTEST" entr
50: ypoint="PCMLTEST"> <data name="NAME" type="char" l
100: ength="25" usage="input" /> <data name="SALARY" ty
150: pe="packed" length="9" precision="2" usage="inputo
200: utput" /> </program></pcml>
打印PCML信息
对象:BMORRIS/PCMLTEST*PGM
模块:*ALLBNDMOD
资料长度:320
数据长度:227
0: