Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10570
  • 博文数量: 3
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-12 12:59
文章分类

全部博文(3)

文章存档

2009年(3)

我的朋友
最近访客

分类:

2009-03-27 13:12:49

简介

有多种方法可用于查找BadIs,我最喜欢的一种是使用性能跟踪(通常称为SQL跟踪)——ST05

该分析技术基于一个事实:所有的ABdIs都在SAP数据库表中被注册。因此对于每个BAdI调用,都会访问一下这些数据库表。BAdI数据库表为SXS_INTERSXC_EXITSXC_CLASSSXC_ATTR。这些表总是通过视图V_EXT_IMPV_EXT_ACT来访问。因此这两个ABAP视图(TSE11)将是跟踪的基础。

本文没有描述如何实现BAdIs

通过性能跟踪查找BAdIs的过程将在下面用例子加以解释。

示例

我想要知道在事务“维护商业伙伴”(BP)中调用那个BAdIs

预先检查

·  检查是否没有其他用户(TSM04)或批处理作业(TSM50)与你使用同一用户。

跟踪

启动性能跟踪

·  启动事务ST05(性能分析)

·  设置flag字段“缓冲区跟踪”

注意:需要跟踪缓冲调用,因为BAdI数据库表被缓冲(特别是视图V_EXT_IMPV_EXT_ACT

·  按下“开始跟踪”

执行业务事务

·  在新的GUI会话中启动事务BP

·  按下按钮“组织”

·  填入你的测试数据

Name

NL4B

Street

Olympia

House number

1a/1b

Postal code

1213 NS

City

Hilversum

Country

NL

·  按下按钮保存

性能跟踪

·  回到性能跟踪会话

·  按下“结束跟踪”

分析跟踪列表

显示跟踪列表

·  按下按钮“跟踪列表”

显示弹出屏幕“为显示跟踪设置限制条件”

现在我们过滤跟踪到对象:V_EXT_IMPV_EXT_ACT

·  在字段“表”之后按下“多选”按钮

·  填入V_EXT_IMPV_EXT_ACT

·  按下按钮“Copy(F8)

·  填入操作:OPEN

·  按下按钮“回车”

察看结果

image

跟踪列表解释

视图V_EXT_IMP中所有的接口类名用IF_EX_开头。这是BAdI类接口的标准SAP前缀。BAdI的名字在IF_EX_之后。

因此IF_EX_ADDR_LANGU_TO_VERSBAdI名为ADDR_LANGU_TO_VERS

在事务SE18中,你可以看到BAdI定义。

如果你找不到BAdI定义的名称,在表SXS_INTER中查找

输出跟踪列表

输出跟踪列表

如果想保存分析,你可以把它导出到Excel文件中

实际上文件是用Tab区分的数据格式,只是给出的文件后缀是.xls,并自动用Excel打开。

·  Start menu: List > Save > Local File

·  Select Spreadsheet

·  Push Enter

·  Fill your preferred file location and file name

image

·  Push button "Generate"

·  Open the file (in Excel)

image

·  Delete the columns and rows you don’t need and the result looks like:

 image

视图V_EXT_IMP 和V_EXT_ACT

过滤条件既包含V_EXT_IMP也包含V_EXT_ACT,是因为并非所有的BAdIs都以相同方式被实现。

例如:

V_EXT_IMP catches BAdI BPTIME_BP001.

V_EXT_ACT catches BAdI ADDRESS_SEARCH

阅读(434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~