如何在HP ALM 12.53.193中查询指定时段内处理的工单?
刚好之前帮同事处理过HP ALM 12.5x版本的类似报表需求,给你整理个直接能用的SQL方案,完全匹配你要的两种场景——Editors字段加了你,以及你标记为Fixed/Closed的工单,都是基于AUDIT_LOG表来做的,毕竟ALM的关键变更都存在这里。
核心SQL查询(兼容HP ALM 12.53.193)
这个查询会合并两种场景的结果,去重后返回工单的关键信息,同时保留变更时间和操作类型:
SELECT DISTINCT b.BUG_ID AS 工单ID, b.SUMMARY AS 工单标题, b.STATUS AS 当前状态, al.CREATION_TIME AS 变更时间, CASE WHEN al.COLUMN_NAME = 'EDITION' THEN '添加至编辑者列表' WHEN al.COLUMN_NAME = 'STATUS' AND al.NEW_VALUE IN ('Fixed', 'Closed') THEN '标记为Fixed/Closed' END AS 操作类型, al.USER_NAME AS 操作人 FROM AUDIT_LOG al JOIN BUG b ON al.ENTITY_ID = b.BUG_ID WHERE al.USER_NAME = '你的ALM用户名' -- 替换成你的实际账号 AND al.CREATION_TIME >= SYSDATE - 30 -- 过去30天,可按需调整 AND ( -- 场景1:你被添加到Editors字段(ALM里字段名是EDITION) (al.COLUMN_NAME = 'EDITION' AND INSTR(al.NEW_VALUE, '你的ALM用户名') > 0) OR -- 场景2:你把工单标记为Fixed或Closed (al.COLUMN_NAME = 'STATUS' AND al.NEW_VALUE IN ('Fixed', 'Closed')) ) ORDER BY al.CREATION_TIME DESC;
注意事项
- 👉 记得把两处
'你的ALM用户名'替换成你在ALM系统里的实际账号(区分大小写,要和系统内显示一致) - 如果需要查询当月的数据,把
SYSDATE - 30改成TRUNC(SYSDATE, 'MM') - ALM的缺陷表默认是
BUG,如果你的工单是其他类型(比如需求、任务),要换成对应的表名,比如REQ(需求)、TEST(测试用例)
生成Excel报表的拓展思路
如果要直接生成可导出的Excel报表,你可以基于上面的查询结果做以下操作:
- 手动导出:在ALM的Site Administration里执行这个SQL,然后把查询结果直接复制到Excel中(ALM查询结果支持一键复制)
- 脚本自动化:如果要定期生成报表,可以把查询逻辑嵌入脚本——比如Oracle环境用
UTL_FILE生成CSV格式(Excel可直接打开),或者用SQL*Plus的SPOOL命令导出;如果是SQL Server环境,用bcp命令导出到本地文件。
内容的提问来源于stack exchange,提问作者O. R. Mapper
相关产品推荐
相关产品推荐

