lf_young

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年3月18日

摘要: BADIs对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中。SAP程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。SE18 查找接口,SE19 实现接口就可以实现用户增强。方法一:通过SE24,输入CL_EXITHANDLER然后双击方法GET_ 阅读全文
posted @ 2013-03-18 10:03 lf_young 阅读(192) 评论(0) 推荐(0) 编辑

2013年3月14日

摘要: 转贴地址:http://jgtang82.iteye.com/blog/114737在SAP系统中 BAdI 相关类的 类图 如下:下面能过代码分析 BAdI 机制背后的一些设计问题:1. 定义指向BAdI interface的Reference DATA: exit_ref TYPE REF TO ZIF_EX_BADI.2. 获得继承BAdI interface的子类实例 CALL METHOD cl_exithandler=>get_instance CHANGING instance = exit_ref.这里的cl_exithandler=>get_instance方法是 阅读全文
posted @ 2013-03-14 15:18 lf_young 阅读(209) 评论(0) 推荐(0) 编辑

摘要: Filter DependentOverview如果实施一个特定功能的增强时,有时想想基于一些参数有不同的版本(e.g. 根据国家或者公司代码), 这时相同的一个BADI就需要生成多个不同版本的Implementation.在系统运行的时候,满足参数的特定Implementation会被执行这就需要filter dependent BADI那么怎样选择filter?Filter type必须是data element或者ABAP dictionary structure。Data element使用的domain的value table包含了implementation所需要的valid va 阅读全文
posted @ 2013-03-14 14:27 lf_young 阅读(357) 评论(0) 推荐(0) 编辑

2013年3月13日

摘要: 调用创建的BADI-当一个BADI被创建时,增强管理器会自动产生一个类来实施接口-为了能够调用静态方法,你必须使用ABAP面向对象'class ... definition load'的声明-你可以写一个调用BADI的函数,如下:-声明一个BADI接口的参考引用变量 DATA exit_ref TYPE REF TO zif_ex_****.-调用call method cl_exithandler ...',在此使用接口的参考引用变量和BADI,实例化一个请求对象.SAP提供BADI的实现-找到SAP相应事务代码的BADI-创建该BADI的Implementation 阅读全文
posted @ 2013-03-13 14:52 lf_young 阅读(222) 评论(0) 推荐(0) 编辑

摘要: BADIs是Business Add-Ins的缩写,BADIs是基于ABAP面向对象的SAP增强的新技术,它可以插入到SAP系统中,以实现用户个性化的需求,而此类需求由于过于特殊,以至于SAP标准系统无法实现。BADIs应该被当作为广义的函数模块,这单个函数模块捆绑了程序,菜单,屏幕增强。每一个BADIs包括:至少一个BADIs的定义一个BADIs接口一个BADIs接口的实施类BADIs特性:使用面向对象的方法包括两部分:定义和实施,定义既可以由SAP提供也可以用户自己创造不再假定双层系统架构(SAP / 客户)允许多层次的程序开发 ( SAP, partners, customers, an 阅读全文
posted @ 2013-03-13 14:18 lf_young 阅读(293) 评论(0) 推荐(0) 编辑