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

如何在IBM i/AS/400中按指定参数过滤作业并获取JOBID?

解决IBM i/AS400按条件过滤作业并获取最新JOBID的方法

方法1:使用SQL查询QSYS2.JOBS视图(推荐)

QSYS2.JOBS视图提供全系统作业的结构化信息,支持精准过滤和排序,是获取JOBID最高效的方式。

执行以下SQL语句(替换占位符为你的实际参数):

SELECT JOB_NAME, USER_NAME, JOB_STATUS, SUBMITTED_DATE, JOB_ID
FROM QSYS2.JOBS
WHERE JOB_NAME = 'TARGET_JOB'      -- 目标作业名
  AND USER_NAME = 'TARGET_USER'    -- 提交作业的用户名
  AND JOB_STATUS IN ('ACTIVE', 'COMPLETED') -- 筛选作业状态,按需调整
  AND SUBMITTED_DATE >= CURRENT_DATE - 3 DAYS -- 筛选录入日期,比如最近3天
ORDER BY SUBMITTED_DATE DESC
FETCH FIRST 1 ROW ONLY;
  • 可通过STRSQL进入SQL交互环境执行,或用RUNSQLSTM执行脚本
  • SUBMITTED_DATE为时间戳类型,能精准定位最新作业实例
  • JOB_ID字段直接返回所需的作业ID

方法2:通过DSPJOB输出到文件后查询

若偏好使用CL命令,可将作业信息导出到物理文件再筛选:

  1. 创建临时存储文件:
CRTPF FILE(QTEMP/JOBDETAIL) RCDLEN(256)
  1. 导出指定范围的作业信息:
DSPJOB JOB(*ALL/TARGET_USER/TARGET_JOB) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JOBDETAIL)
  • *ALL/TARGET_USER/TARGET_JOB表示筛选该用户下所有同名作业,可按需缩小范围
  1. 查询文件获取最新JOBID:
SELECT JOBNAM, USERNAM, STATUS, SBMTDATE, JOBID
FROM QTEMP/JOBDETAIL
WHERE STATUS IN ('A', 'C') -- 状态代码,A=ACTIVE,C=COMPLETED,按需调整
ORDER BY SBMTDATE DESC
FETCH FIRST 1 ROW ONLY;

方法3:针对活动作业用WRKACTJOB输出文件

如果仅需筛选活动作业,可使用WRKACTJOB导出数据:

WRKACTJOB OUTPUT(*OUTFILE) OUTFILE(QTEMP/ACTJOBS)

随后通过SQL查询该文件,过滤作业名、用户名、状态字段,按提交日期排序取最新记录即可。

注意事项

  • 作业状态取值需匹配系统定义:SQL视图用全称(如ACTIVE、COMPLETED),CL文件输出可能用缩写(如A、C)
  • 若需自动化后续处理,可将SQL查询结果写入变量或文件,供后续命令调用

内容的提问来源于stack exchange,提问作者Karthik Mohan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:15:14