You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AS400中查找使用MYLIB库自定义命令的程序及原生工具咨询

查找IBM i中引用自定义命令的程序

IBM i(原AS400)自带原生工具可以满足你的需求,以下是几种高效的实现方式:

方法1:使用DSPPGMREF命令生成引用清单

DSPPGMREF是专门用于查询程序引用对象的原生命令,你可以一次性查询MYLIB库中所有命令的引用情况:

DSPPGMREF OBJ(MYLIB/*ALL) OBJTYPE(*CMD) OUTPUT(*OUTFILE) OUTFILE(QTEMP/PGMREF)

执行后,系统会在QTEMP库中生成名为PGMREF的物理文件,你可以通过DSPPFM QTEMP/PGMREF或SQL查询该文件,筛选出引用这些命令的程序对象。

方法2:用SQL查询系统视图直接获取结果

利用IBM i的系统视图可以更灵活地筛选数据,推荐使用QSYS2.OBJECT_REFERENCES视图:

SELECT DISTINCT 
  REFERENCING_OBJECT_LIBRARY AS 程序库,
  REFERENCING_OBJECT_NAME AS 程序名,
  REFERENCING_OBJECT_TYPE AS 对象类型
FROM QSYS2.OBJECT_REFERENCES
WHERE 
  REFERENCED_OBJECT_LIBRARY = 'MYLIB'
  AND REFERENCED_OBJECT_TYPE = 'CMD'
  AND REFERENCING_OBJECT_TYPE IN ('*PGM', '*SRVPGM'); -- 可按需筛选程序类型

执行这条SQL就能直接得到所有引用MYLIB库中命令的程序、服务程序清单。

方法3:交互式查看引用关系(WRKOBJREF)

如果需要交互式操作,可以使用WRKOBJREF命令:

WRKOBJREF OBJ(MYLIB/*ALL) OBJTYPE(*CMD)

进入界面后,按F11切换显示列,再按F4设置筛选条件,就能找出类型为*PGM的引用对象,直观查看哪些程序用到了目标命令。

注意事项

  • 以上方法仅能检测静态引用的命令,如果程序是通过QCMDEXC等方式动态调用命令的,原生工具无法通过静态分析捕获这类引用,这种场景可能需要你结合运行时日志编写工具排查。

内容的提问来源于stack exchange,提问作者Santhosh Appusamy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:30:06