Abap 以编程方式检索整个包的对象名称和传输请求

Abap 以编程方式检索整个包的对象名称和传输请求,abap,transport,sap-basis,Abap,Transport,Sap Basis,我有两个独立的系统(开发和测试),我需要检查我的所有对象(程序和所有包含)的开发中的版本是否与开发中的版本匹配。我可以手动执行此操作,方法是为每个对象转到SE80->Utilities->version Management,但对于数百/数千个对象,这非常耗时 有没有办法通过编程检索对象名和TR,以便将它们输出到表或电子表格 编辑。(Vwgert在我看来,这是可行的——如果不行,你能再解释一下为什么不行吗?谢谢) 因此,使用以下连接,我相信我能够检索系统中的所有对象、类型和最新TR SELECT

我有两个独立的系统(开发和测试),我需要检查我的所有对象(程序和所有包含)的开发中的版本是否与开发中的版本匹配。我可以手动执行此操作,方法是为每个对象转到SE80->Utilities->version Management,但对于数百/数千个对象,这非常耗时

有没有办法通过编程检索对象名和TR,以便将它们输出到表或电子表格

编辑。(Vwgert在我看来,这是可行的——如果不行,你能再解释一下为什么不行吗?谢谢)

因此,使用以下连接,我相信我能够检索系统中的所有对象、类型和最新TR

SELECT a~obj_name b~korrnum c~object b~datum b~zeit
  FROM tadir AS a
  INNER JOIN vrsd AS b
  ON a~obj_name = b~objname
  INNER JOIN e071 AS c
  ON a~obj_name = c~obj_name
  AND a~pgmid = c~pgmid
  AND a~object = c~object
  INTO TABLE gt_obj_tr
  WHERE a~devclass IN s_pkg.

SORT gt_obj_tr BY object ASCENDING obj_name ASCENDING korrnum DESCENDING datum DESCENDING zeit DESCENDING.
DELETE ADJACENT DUPLICATES FROM gt_obj_tr COMPARING object obj_name.

您可以在表
TADIR
中找到大多数对象标题。请求和任务头存储在
E070
中,
E071
中的条目-只要看一下内容,如果您知道传输是什么样子,这是相当不言自明的。请注意,某些对象类型可以部分传输(
R3TR CLAS
是整个类,
LIMU METH
只是一个方法)-这使得直接连接变得不可能。

可能最简单的方法(尽管不是很漂亮)是使用表REPOSRC并将其链接到VSRD。REPOSRC是包含系统中所有源代码(方法、程序、函数)的表,因此您可以确保不会遗漏任何内容。您可能会执行以下操作(粗略的伪代码):


这当然只是源代码,但听起来这就是你所需要的。如果需要从报表名称获取真实的abap对象(方法、类、函数模块),请使用函数模块SEO_class_get_name_BY_INCLUDE,对于函数,请在表TFDIR中查找。

据我所知,使用SAP Solution Manager可以比较对象,但您必须进行设置。您好,vwgert,我试图用你的答案解决我的问题,但还有一个小问题,所以我编辑了上面的问题。这与部分运输有关吗?
SELECT name FROM reposrc
       WHERE name LIKE 'Z%'
          OR name LIKE 'SAPLZ%'  
          OR name LIKE 'SAPMZ%'

SELECT objtype objname FROM vrsd
       WHERE objname = reposrc-name
         AND objtype IN ('CINC', 'REPS')  "Class include & reports