BADI中Filter Dependent和Multiple Use
来源:互联网 发布:java导入excel进度条 编辑:程序博客网 时间:2024/06/06 12:50
一、Filter Dependent
1、Overview
2、How it works?(老BADI的Filter创建步骤,和新BADI的差不多)
新BADI的Filter和Multiple的应用:为什么一个BADI中实施多个Implementation
二、Multiple Use
1、Single Use Business Add-Ins
2、Multiple Use Business Add-INS
1、Overview
- 如果实施一个特定功能的增强时,有时想想基于一些参数有不同的版本(e.g. 根据国家或者公司代码), 这时相同的一个BADI就需要生成多个不同版本的Implementation.
- 在系统运行的时候,满足参数的特定Implementation会被执行
- 这就需要filter dependent BADI
- 那么怎样选择filter?
- Filter type必须是data element或者ABAP dictionary structure。Data element使用的domain的value table包含了implementation所需要的valid values。如果filter type使用的是structure,那么这适用于structure的每个字段。当调用enhancement method时,filter value必须传给interface。
2、How it works?(老BADI的Filter创建步骤,和新BADI的差不多)
- 当定义接口时打开Filter-dependency
- 选择合适的filter element
- 接口中所有的方法在创建时都会有一个Filter 'FLT_VAL'作为输入参数
- 应用程序提供一个filter value 给增强
- 增强根据提供的值来选择不同的激活的Implementation
新BADI的Filter和Multiple的应用:为什么一个BADI中实施多个Implementation
二、Multiple Use
1、Single Use Business Add-Ins
- 当BADI只能有一个Implementation,不要选择multiple use的复选框
- 有返回值
- 可以使用importing, changing and returning参数
- 应用程序可以直接调用这个implementation
- 即使BADI本身不支持Mulitiple Use也可以同时存在多个Implementations,只不过只能有一个激活的Implementation
2、Multiple Use Business Add-INS
- 选择Multiple use的复选框
- BADI可以有多个Implementation
- 无返回值
- 可以使用importing,changing参数
- 同时实施多个Implementation时,由于在BADI定义时,不知道哪些Implementation被激活,所有Implementation的执行顺序不能被确定
- 应用程序可以调用所有被激活的Implementations
- SE18中输入BADI名称,选择Implementation->Display,你可以查看所有的Implementation
当我在一个BADI中实施多个增强激活时,可能老是报错,即时勾了Multiple Use也还是报错,为什么呢?
这是因为我们在方法的返回参数使用了Exporting,应该使用changing参数,请参考二、2
阅读全文
1 0
- BADI中Filter Dependent和Multiple Use
- 带有filter-depend的BADI的用法
- BADI
- badi
- BADI 中错误信息的处理
- BADI 中错误信息的处理
- BADI 和BAPI 的区别
- BADI 和BAPI 的区别
- 什么是BADI,如何从SAP中查找BADI?
- 什么是BADI,如何从SAP中查找BADI?
- 什么是BADI,如何从SAP中查找BADI?
- 什么是BADI,如何从SAP中查找BADI?
- Use ResultSet repeated (multiple times)
- 如何从SAP中查找BADI
- 如何从SAP中查找BADI
- 如何从SAP中查找BADI
- 如何从SAP中查找BADI
- 转:如何从SAP中查找BADI
- C++对象的内存布局(上)
- (1)2017.8.3上-java入门
- 我自己的idea插件
- 3个数和为0 51Nod
- zstack与openstack区别
- BADI中Filter Dependent和Multiple Use
- C++用数组名作函数参数
- 认认真真的探讨一下BFC
- Android Studio Monitors详解
- Git使用方法
- Python文件操作,无缓冲写入,直接对硬盘进行操作
- Java Comparator和Comparable介绍与示例
- 做好视频营销的10个小贴士
- DAO层通用实现,结果集ResultSet转化为javaBean的反射实现,自动生成javaBean