探寻SAP表字段.docx
《探寻SAP表字段.docx》由会员分享,可在线阅读,更多相关《探寻SAP表字段.docx(21页珍藏版)》请在冰豆网上搜索。
探寻SAP表字段
查找表字段的方法:
从下图可以看到table的类型,
第一种可能,如果该字段是个表字段,就可以直接使用;
第二种可能,如果该字段是个view,查看view相关的table
第三种可能,TEXT文本字段的处理:
如果要读取的信息是文本字段,需要用read_text函数来处理:
需要指定以上参数。
通过以下方式,可以找到以上所需的参数,进入文本界面后,然后选择
其中TEXTNAME的命名规则是这个表的KEY字段值(含前置零)
AFKO的关键key为CLIENT+ORDERnumber.
例子当中的workorderheader的textname就是800+ORDER字段的值。
对于workorder工序的TEXTNAME也是同样的原理,看表AFVC的key值为:
对于salesorderitem中的文本,需要这样处理:
同一个texttype,可以创建不同的语言版本,双击或者单击放大镜后,可以显示如下的界面:
在SD的设计中,基本也是用key值来确立TEXTname,只是没有包含进client值。
第四种可能,structure中的字段,就直接包含一个被include的表当中。
图中的conditionvalue在哪个表当中?
寻找过程如下:
双击其中的fieldname,进入如下界面:
向上翻滚,可以看到这个字段是属于某一个include结构。
双击”KONV”,查看其构成:
不难发现,这里面include的是一个clustertable,KONV。
如果读数值,就直接到表KONV-KWERT中去读取了。
如果structure里面有include和append时候,这些include或者append的组件里面的字段在ECC6中是用蓝色显示出来的。
第五种可能,利用已有的report,query,infostructure来查找需要的字段信息。
第六种可能,设置观察点,用debug的方式查找。
用/h,来查找。
此种方法用在非标准的程序上比较迅速,如果用在ECC的标准程序,debug的效率非常低。
这种方法在遇到import语句的时候,找不到字段名称。
需要在import语句上面再次设置断点。
SQL跟踪的方法:
举例:
CJ30的预算值字段查找。
打开CJ30->ST05->activate->改变CJ30的值,保存->deactivatetrace->显示trace的记录。
从上面看出“Obj.name”应该包含表。
后面的update语句表明原来的表行记录值要更新。
Insert或者append语句表明原来的表需要增加行记录。
另外,用光标选中一行后,可以查看该行对应的ABAP程序源代码。
以ALV的方式显示,SQLtrace的记录。
点击”Operation”字段排序,然后用Find功能进行筛选”update”,或者”insert”。
查看对应的object,一般情况下能把表找出来。
(ALV显示方式可能和系统版本有关。
)要么使用后续的方式。
SQLTRACE记录导出EXCEL进行筛选的技巧:
也可以用包含“update”的查询,查找被更新的表信息。
图例中这一列列出了行记录被增加的表信息。
第七种可能,使用dataelement的所用处来查找。
COBL是一个结构,
双击componenttypePRCTR
点击whereused按钮进行查找。
第八种可能,通过层次结构来寻找
把下面整个package列举出来,通过数据字典可以查询相应的表。
第九种,通过变化来寻找对应字段的值
在下图,对销售订单的orderquantity做了变化并保存
可以查到表VBEP的值发生了变化。
另外一种通过变化,即查询CDHDR和CDPOS表。
通过SE16查询改变表的用户名和时间,如下,得到changedocumentnumber。
同样可以查询到对应的表为VBEP。
第十种,逻辑数据库
LBD的事务代码是SE36和SLDB。
第十一种,上网查找看别人的经验。
第十二种,使用runtimeanalysis分析程度调用到的程序和函数等。
SE30->
点击F5