我有两个独立的系统(开发和测试),我需要检查所有我的对象(程序和所有包含),开发中的版本与开发中的版本相匹配。我可以通过转到SE80 - >手动完成此操作实用程序 - >每个对象的版本管理,但对于数百/数千个对象,这非常耗时。
有没有办法以编程方式检索对象名称和TR,以便将它们输出到表格或电子表格中?
EDIT。 (Vwgert在我看来这样有用 - 如果它不能解释一下为什么它不会?谢谢)
所以使用以下JOIN我相信我能够检索系统中的所有对象,类型和最新的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.
答案 0 :(得分:1)
您可以在表TADIR
中找到大多数对象标题。请求和任务标头存储在E070
中,E071
中的条目 - 只需查看内容,如果您知道传输的外观,则相当不言自明。请注意,某些对象类型可以部分传输(R3TR CLAS
是整个类,LIMU METH
只是一个方法) - 这使得直接连接成为不可能。
答案 1 :(得分:1)
可能最简单的(尽管不是很漂亮)是使用表REPOSRC并将其链接到VSRD。 REPOSRC是包含系统中所有源代码(方法,程序,函数)的表,因此您可以确保不会遗漏任何内容。您可能会执行类似(粗略伪代码)的操作:
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
这当然只是源代码,但听起来就像你需要的那样。如果你需要从报告名称到实际的abap对象(方法,类,功能模块),请使用功能模块SEO_CLASS_GET_NAME_BY_INCLUDE,并且对于函数,请在表TFDIR上查找。