更改RPG程序变量大小时需要注意的事项是什么?

时间:2017-01-13 16:33:00

标签: ibm-midrange rpgle

我有一个任务,我需要增加几个RPG程序中的许多字段的大小。我首先要做的是改变定义中的字段大小(最明显的一个)。 下一步是搜索使用已更改字段的所有实例(如分配给另一个变量或算术运算),如果变量所分配的变量值的变量大小较小,则接收器变量为放大。 最后一步是遵循第二步中确定的接收器变量,并确定它们在其中使用的任何算术运算等等。

除此之外,更有经验的程序员可以提供任何建议吗?

3 个答案:

答案 0 :(得分:2)

在我目前的位置,我们使用字段引用文件(FRF)来保存我们使用的字段的定义。然后我可以从更改字段引用文件中的定义开始。如果我的FRF定义设置正确并且使用得当,除了重新编译受影响的程序之外,应该没什么可做的。现在确定受影响的是另一条鱼。像Hawkeye Pathfinder这样的工具可以提供巨大的帮助。否则,您将手动搜索整个代码库以查找给定字段的用途。

最后,您必须确保任何5250屏幕或打印文件都能成功包含扩展字段。这可能不是问题,或者可能需要重新格式化显示或报告。

答案 1 :(得分:1)

当我的库列表包含所有包含使用受影响文件的程序的库时,我会使用DSPPGMREF PGM(* USRLIBL / * ALL)OUTPUT(* OUTFILE)OUTFILE(LIB / NAME)。查询此文件以查找引用受影响文件的所有程序。扫描这些程序以查找所有受影响的字段。此扫描还将指向您引用这些字段的任何显示或打印机文件。

答案 2 :(得分:0)

在定义规范的许多地方,考虑相对大小调整可能有用的方法:

D ap_asp                        +4    like( APASP  )

在该规范中,变量 ap_asp 被定义为LIKE()一个名为APASP的数据库字段。数据库字段定义为3P 0,压缩十进制,三位数,无小数。 ap_asp 的编译定义是7P 0,这是四个位置(“+4”)更大。

如果APASP将来发生变化,几乎可以肯定不需要触及 ap_asp 。它的大小将在编译时自动调整。

这不适用于所有事情。例如,您的打印机文件字段可能无法更改。因此,仅用于分配给最终打印字段的MONITOR可能是程序中唯一需要的。