如何在 as400 中编译使用 RPG3 上的替换文件的程序?

问题描述

我对已在生产中运行并使用文件替换的程序进行了修改。 我无法编译它,因为声明为输入的文件与另一个文件具有相同的格式名称。 这个相同的输入文件在运行时被另一个文件替换,其字段在链操作的其余代码中使用,由于未声明该文件,因此无法识别这些字段:

 FFILELCT IF  E                    disK
 F                                              KRECNO RCDNBR
 FEXTRPHOTO   E                    disK                      A      

这2个文件有相同的格式名称===>编译错误 当作业运行时:使用 wrkusrjob + 5 + option 15 我可以看到文件替换 FILELCT DB 到文件 (XXXXXXXX/FILE2)

你有什么办法让它编译吗?

解决方法

正如@nfgl 所说,您需要使用 K RENAME 来重命名第二个文件的格式。对于下面的代码,我假设格式的名称是“ELCFMT”。我将 EXTRPHOT 文件的格式重命名为 EXTRFM。

 FFILELCT IF  E                    DISK                        
 F                                              KRECNO RCDNBR  
 FEXTRPHOTO E                      DISK                      A 
 F            ELCFMT                            KRENAMEEXTRFM 
,

您可以先使用 docker container ls -a --format='{{json .}}' | jq -r '.' 创建一个 ILE 程序。比尝试再次编译。

,

通过将 file1 复制到 qgpltemp 并使用文件名 2 将其重命名,然后将 qgpltemp 库放在库列表中的第一个来解决该问题。谢谢大家的支持