SAP中找表-几种经典的方法
坚持下去才是最最难得的事情。在你看不到路的情况下,如何抹黑的走下去
黑暗的莫个角落有个我一直默默的在SAP学习的路上
期待那天有个伯乐能发现我的存在
SAP中找表-几种经典的方法
在SAP系统中,用户在进行日常业务的过程时,经常会因为操作不方便,或者需要某些归类的数据集合,提出对系统的更改需求,包括程序的更改和报表的开发。用户在操作业务的时候,看到的只是前台界面,因此只能把自己需要的数据告诉开发人员,指出数据在前台的显示位置,开发人员还需要找到相关的数据在后台的存储位置,这样才能进行开发。由于系统的复杂性,大部分显示在前台的数据都是经过系统程序的处理,并不能够直接找到与后台数据表之间的映射关系,这也是所有大型ERP系统的共有特点。那应该如何把前台界面显示的数据,关联到后台的数据表中呢?从简单到复杂,一步步深入,有以下几种方法:
1.F1(帮助?按钮) -最常用最简单的
SAP系统在前台操作界面,提供了一个很好的操作方式,点击自己需要跟踪的数据 例如 Base Unit Measure ,按F1键或者按帮助(? 图片),然后选择“技术信息”,会出现如下图所示界面:
可以看到,我要跟踪的数据是存储在表名为 MARA的表中,字段的名称是MEINS,我们可以去后台查看这个数据表,1.Transparent table 2.视图 table(View )3.Table (Structure),如图所示看到如果是Transparent table 说明已找到我们已经成功了,找到了前台数据和后台表的关系,而一般情况下,你会发现我们找到的所谓的表,并不是一个真正的数据表,他可能是一个视图(View),也可能只是一个结构(Structure),这时候,我们就必须进行下一步操作了。
2.根据元素查找
如果我们在第一步中,发现的是Structure ,相对来讲就比较麻烦。因为Structure只是用来临时存储程序运行时的实时数据,我们在里面无法得到我们需要的数据。这时,我们就需要用到第一步中查找到的数据元素(Data Element)。
直接双击数据元素 同过实用程序点击Where-used List (或者三叉图标)或者进入T-code SE11,在Data Type栏输入要查找的数据元素按Ctrl+Shift+F4,可以调出数据元素查找界面(Where-used List),我们在这里选择查找表,就可以得到所有使用过这个数据元素的Table清单。这个清单的数量一般会比较大,在20-30个左右,我们需要根据经验做出选择,排除一些不常用的和非关键数据表,再结合表的描述字段,分析我们所需要的数据的位置。再用T-code SE16 验证下
3. 如果我们在第一步中,发现的是view,这种情况比较简单,我们可以通过T-code(操作代码,对应于系统的操作界面)SE11,进入ABAP Dictionary,查看这个View所关联的表:
我们可以看到在左边一栏,显示了这个View涉及到的table,右边显示的是这些table中那些字段进行了相互的连接(Join),这样我们就可以很方便的从这些table找到我们需要的数据。
4.经过前2步的操作,我们可以找到70%左右数据所在数据表的位置,但是有一部分数据,在后台隐藏的非常深,并不能够通过这些方法找到。对于这些数据,我们只有通过最原始的方式去查找,就是程序跟踪。SAP系统提供了两种跟踪的方法:
(1)在T-codeST05进行跟踪,这里跟踪的是系统所进行的所有SQL语言操作。我们首先激活跟踪器,然后进行一步关于所查找数据的操作,关闭跟踪器,最后显示跟踪列表。这里就可以看到在我们进行操作时,系统通过SQL语言进行的所有数据库操作,并显示SQL所设计到的表名,字段名,查询条件。我们可以根据相关的字段名,查询条件,筛选涉及到的数据表,从而判断数据在后台表中的位置。如果这种跟踪方法还不行,就只能通过代码级的跟踪了。
(2)代码跟踪的方法很简单,在进行业务的时候,输入/h打开中断,之后的业务操作就会直接进入代码跟踪器,一条一条的运行代码,这样可以很清楚的看到系统的逻辑。理论上,这种方法是肯定可以找到我们想要的数据表的。但是实际情况却并不如此,在大型的SAP系统中进行代码级的跟踪,谈何容易。由于系统的复杂性,可能一个操作涉及到的Function有几十个,涉及到的Table有上百个,涉及到的代码有上千行,从这里面找到我们需要的数据表,真的犹如大海捞针。就好像锋利的宝剑只有在真正的剑客手里才能显示出威力一样,代码跟踪这种方法也只有在真正的高手手里,才能真正发挥作用
ST05性能跟踪
实例:还是查找T-codeQS23界面的短文本字段对应的表格。
1、运行事务ST05,进入性能跟踪界面。
2、
3、
4、
5、
跟踪列表界面如下:
这个界面显示的就是刚刚对于QS23操作所涉及的所有数据库表信息,即QS23事务运行过程中屏幕上的数据来源,这里可以看到对象名一列所列的都是透明表名称,可以去SE11查看相关表格,对比过后,发现所需要的字段在表QPMT中,则QPMT即所需要的表。
四、通过SM12查看
实例:查找QS23所涉及到的表
由于事务QS23是可编辑状态,对于可编辑状态的事务,进入到屏幕之后系统会锁定相关的后台表,这样通过SM12就可以查看到该事务所对应的一些表了。
1、QS23进入屏幕
2、
点击清单:
这里可以看到,对于刚刚进入QS23的操作,系统将表QPMK进行锁定,即QS23屏幕上某些字段是位于这个表中的,通过检验即可发现屏幕上的工厂、搜索字段等字段都是在表QPMK中。
但这个方法有些缺陷,就是不能将所有的表都罗列出来,例如前面的短文本所对应的表QPMT就不能通过这种方法查找到。
五、通过字段对应的搜索帮助进行查找
实例:查找QS23界面的等级特性字段所对应的表
1、进入QS23
2、
通过字段对比即可发现,QS23屏幕上的等级特性值即搜索帮助屏幕上的特征名称值。
3、将光标定位于搜索帮助屏幕上的特征名称,按F1帮助
可以发现字段ATNAM对应的表格为视图M_MERKB,进入视图M_MERKB,找到视图对应的基本数据库表,则字段肯定会在这几个基本表中的一个。
4、进入视图M_MERKB
可以发现视图M_MERKB有基本表CABN和CABNT联合而成,进一步查看这两个基本表,会在表CABN中发现需要的字段ATNAM。
即QS23屏幕上等级特性字段所在的表是CABN。
在SAP中找表,对于一般水平的顾问用的最好方法是将光标点在所要查找的字段上,按F1,如果是VIEW用SE11如果是结构就用ST05,当然有的是要有权限的。等等共有18种查表得方法