查找表的入口:屏幕字段的技术信息
查找路线图:
查找方法
方法一:直接查找到透明表或者视图
如果在技术信息中直接查找到的就是透明表,那么查找结束;如果找到的是视图,那么可以在视图中查找到视图由哪些表关联而成,从而找到表。
方法二:结构中INCLUDE透明表
如果在技术信息中查找到的是结构,那么就需要进一步查找了。对表的查找最麻烦的也就是这种情况,而不幸的是大多数情况我们在技术信息中都只能查找到结构。
如果查找的字段在结构中是被INCLUDE进来的,那么就有必要查看该INCLUDE是否是一个透明表,如果是一个透明表,那么查找结束。
例如:结构T352R_D中INCLUDE了T352R,我们发现T352R是一个透明表,因此查找结束。
方法三:利用现有报表
对于系统中的大多数对象,系统都提供了清单编辑和显示的功能。在这些报表的选择屏幕中,通常都更容易查找到相应字段所在的表。因为这里系统通常会使用相对扁平和集成的结构或视图。
例如:通知单清单编辑报表IW28,该报表选择屏幕上的字段都使用了视图或者可很容易查找到透明表的结构。
方法四:通过Search help查找基本对象的抬头表
SAP中的基本对象(如物料主数据、供应商、通知单、工作中心等)通常都由抬头表和明细表构成。因此查找到一个基本对象的抬头表是了解该对象的底层存储表的入手点。同时查找到该抬头表后,你可能会发现你正在查找的其他某个字段正好在该表中。
通常情况下,基本对象都会有唯一的编码(主键),而该唯一的编码通常情况下都会有Search Help。根据Search Help将能很容易查找到抬头表。
例如:我们想知道物料主数据存在哪张表中。进入MM03,屏幕中仅有物料号一个字段,如果使用F1查看技术信息的方法,会发现是结构RMMG1,用这种方法继续查找会很麻烦。这时可考虑使用Search Help,使用Search Help主要有三种方式可查找到表:
- 在Search Help上的查询条件上使用F1
- 在命中列表中使用F1
- 在命中列表中右键点击”Technical Info”,查找Search Help
然后双击Search Help,通过Search Help找到相应的视图:
以上三种方式都可以直接找到视图,最终很容易确定物料号存储在表MARA中(MAKT是其文本表)
方法五:值表(Value Table)
在方法四中描述的场景下,还有一种方法可以定位到相应的透明表。对某些数据元素,定义了值表,可根据值表来确定透明表(值表通常是透明表,在数据元素的DOMAIN的值范围标签中)。
例如:对数据元素QMNUM,其值表为QMEL
备注:方法四(Search Help)和方法五(Value Table)的方式主要用于查找一个基本对象存储在哪里,并不完全是查找屏幕上的字段存储在哪里。比如使用这两种方法查找公司代码存储在哪个表中是完全没问题的,但是在不同的业务应用中,公司代码显然存储在不同的表中。
方法六:视图(View)
通过上述方法找到基本对象的抬头表后,需要想办法找到明细表和相关表了。这样基本上能够找出一个基本对象的主要存储表。在明确了一个对象的主要存储表后,对于与该对象相关的屏幕上的字段,有较大可能是存储在这些表中的,可以到这些表中找找看。
查找相关表的方法是通过所用处清单查出抬头表、或者某个字段列出相应的视图。
例如:通知单通知单抬头表所有用到的视图有:
方法七:所用处清单(Where-Used List)
通常情况下,系统中相同的字段不论在结构还是透明表中都具有相同的数据元素(但也不总是)。因此可以使用数据元素的所用处清单来查找出系统中所有使用该数据元素的表。如下图,针对一个数据元素,仅选择Table Fields
系统列出所有用到该数据元素的透明表:
但需要注意的,这种方式可能列出的表非常多。例如上面例子中的公司代码,系统列出了3683个透明表,要从这里找出正确的表是非常困难的。但对于一些用得不是很多的数据元素,列出的表不太多的情况,可使用该方法找到正确的表。例如数据元素REVNI就只有9个使用到的表,完全可以从中找到正确的表:
方法八:变更文档(Change Document)
对字段值的修改,系统通常(取决于数据元素定义上是否勾选了记录变更文档)都会记录在变更文档中。变更文档记录了透明表及透明表中具体字段的修改,因此可以通过修改一个字段值后查询变更文档来查找表。
查看变更文档的方法主要有两种:
- 在基本对象中通过目录栏中的功能查看。通常该功能在“附加”或者“环境”中。
- 直接查表
表CDHDR和表CDPOS记录了变更文档信息。其中CDHDR是抬头表,CDPOS是明细表。抬头表中一行数据表示一个变更文档,一个变更文档中可能包含多行变更,即涉及到多个表的变更。
另外,表TCDOB中记录了所有的Object Class.
方法九:运行时分析(Runtime Analysis)
运行时间分析SE30记录一个程序运行过程中访问的表及其访问时间。可以利用该分析工具来查找表。
例如:需要查找业务伙伴存储的表,可运行SE30,在SE30中运行事务代码BP:
在分析中,可以使用过滤器过滤出与表相关的记录,同时结合程序名(即在屏幕上对需查找的字段F1得到的程序名)来缩写确定表的范围,如下图:
方法十:SQL跟踪(SQL Trace)
SQL跟踪ST05会记录程序所有的表操作,因此可以用SQL跟踪来查找表。可使用搜索方式来搜索需要查找的字段;与运行时分析类似,程序名可缩小查找范围。