关于SAP函数组包含程序修改及对象类型差异的技术问询
SAP函数组包含程序修改相关问题解答
咱们针对你提出的两个问题逐一拆解,结合你提到的SMODILOG日志表和测试数据来分析:
问题1:为何函数组的L_TOP、L_UXX包含程序与L_NNN包含程序的对象类型、程序ID存在差异?
这本质是SAP对函数组下不同类型包含程序的对象目录定义逻辑不同:
- L_TOP(如LV07ATOP)和L_UXX(如LV07AU01)类包含程序:属于独立的程序对象(PROG类型),它们在SAP对象目录里有自己独立的条目(
R3TR PROG)。这类包含程序要么存放函数组的全局数据(L_TOP),要么是预留的用户自定义扩展包含(L_UXX),本身可以单独在SE38中编辑,所以系统会将其识别为独立的程序对象,而非依附于函数组。 - L_NNN(如LV07A014)类包含程序:是函数组生成时自动创建的子包含程序,专门用于存放函数模块的代码逻辑。这类包含程序没有独立的对象目录条目,它们的属性完全依附于所属的函数组,所以在查询对象信息时,系统会直接返回其所属函数组的目录条目(
R3TR FUGR)。但实际上,这类包含程序的底层类型依然是PROG,只是在对象目录里没有单独注册,而是作为函数组的一部分存在。
问题2:在哪里可查询系统中所有SAP标准修改信息,以及这些修改对象对应的真实对象类型、程序ID?
给你推荐几个实用的查询途径,既能覆盖所有修改信息,又能获取真实对象属性:
1. 事务码SE95(修改浏览器)
这是SAP官方推荐的客户修改查询工具,功能非常全面:
- 可以按修改时间、用户、对象类型、开发类等多维度筛选所有SAP标准对象的客户修改;
- 对于函数组下的L_NNN包含程序修改,这里会直接显示其真实的对象类型(PROG)和程序ID(包含程序名),而不是只显示所属的函数组FUGR;
- 还能直接关联查看修改前后的代码对比、对应的传输请求等信息。
2. 核心数据表查询
如果需要批量导出或更深入的分析,可以直接查询以下表:
TADIR(对象目录表):这是SAP所有对象的核心目录表,输入包含程序名作为OBJ_NAME,就能查到它的真实OBJECT类型(比如PROG)和对应的DEVCLASS(开发类),不管是独立包含还是函数组下的子包含,都能在这里找到最准确的对象属性;SMODILOG(客户修改日志表):你已经提到过这个表,它记录了所有客户修改的日志,但如果里面显示的是FUGR类型,可以通过关联TADIR表,用包含程序名反向查找真实的PROG对象;E071(传输请求对象条目表):如果修改是通过传输请求记录的,这里会存储每个修改对象的真实类型和ID,结合E070表可以关联到对应的传输请求详情;TRDIR(程序目录表):所有PROG类型的程序都在这里,可以查看程序的类型(比如I=包含程序)、创建时间等基础信息。
3. SE80函数组详情查看
在SE80中打开目标函数组,展开「包含程序」节点:
- 双击对应的L_NNN包含程序,进入编辑界面后点击「属性」按钮;
- 在属性窗口中可以直接看到该包含程序的真实对象类型(程序)和程序ID,同时也会显示其所属的函数组信息。
内容的提问来源于stack exchange,提问作者Ela
相关产品推荐
相关产品推荐

