如何查询今日及近期变更的ABAP对象?开发系统故障排查
针对你提到的两个ABAP对象变更查询的问题,我整理了几个靠谱的方案,完美避开VRSD表的局限性,直接解决你的需求:
问题1:查询今日发生变更的ABAP对象
有三种快速有效的方式:
通过传输请求表查询(适用于已生成请求的对象)
用SE16N打开表E070,筛选字段AS4DATE等于今日日期,然后关联表E071(通过TRKORR字段关联),就能获取所有今日激活并生成传输请求的ABAP对象。这个方法能精准定位到已纳入传输流程的变更。通过TADIR表查询(覆盖本地未请求的对象)
打开TADIR表,筛选LASTCHANGED等于今日,同时加上STATUS = 'A'(激活状态)的条件,还可以通过DEVCLASS(包名)缩小范围。这里能查到所有今日激活修改的对象,包括那些没生成传输请求的本地对象。用SE80可视化筛选
打开SE80的对象目录浏览器,点击工具栏的「筛选」按钮,在弹出的窗口中设置「修改日期」为今日,就能直观看到所有今日修改过的激活对象,操作简单不用写筛选条件。
问题2:故障排查时查询近期变更的ABAP对象
当开发系统功能突然故障,且数小时前正常时,重点从传输请求、修改日志、版本管理三个方向入手:
步骤1:定位时间范围内的传输请求
打开SE09/SE10切换到「显示」模式,在选择条件里设置「激活日期」为故障发生前数小时到当前的时间段,再加上项目相关的DEVCLASS(包名)筛选,快速锁定项目相关的近期变更请求。如果是本地未请求的修改,直接查TADIR表的LASTCHANGED和LASTCHANGED_AT(时间字段),同样结合包名缩小范围。步骤2:用SE03查找对象修改记录
运行事务码SE03,选择「对象目录」下的「查找对象的修改记录」,输入项目对应的包名,设置好修改时间范围,就能列出该包内所有近期修改过的对象——不管有没有生成传输请求,只要对象被激活修改,这里都会有记录,完全避开VRSD的局限性。步骤3:检查对象的版本管理(针对类/方法等对象)
如果故障和类、方法相关,直接用SE24打开对应的类,切换到「版本」标签页,这里会显示每一次修改的时间、修改人以及修改内容对比,能快速定位到可疑的变更。步骤4:跨系统传输的情况查STMS日志
如果故障是在传输请求导入后出现的,用STMS登录开发系统,查看导入队列的日志,找到近期导入的请求,再关联到对应的对象即可。
内容的提问来源于stack exchange,提问作者Gerd Castan




