二维码

[三代] BADI中Filter Dependent和Multiple Use

Twilight发表于 2015-07-03 16:13jiapengsan 最后回复于 2020-11-02 11:06 [复制链接] 8945 23

一、Filter Dependent
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

  1.   CALL METHOD exit->method
  2.     EXPORTING
  3.       flt_val   = flt
  4.     CHANGING
  5.       parameter = word.
复制代码

新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也还是报错,为什么呢?
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

ratg0626
过来学习下
回复 支持 反对

使用道具 举报

qshiou
学习学习,努力学习
回复 支持 反对

使用道具 举报

teyun2222
感謝無私分享,學習了,謝謝!!
回复 支持 反对

使用道具 举报

mckz8888
学习 学习 感谢分享
回复 支持 反对

使用道具 举报

晓月之影
楼主强大不错
回复 支持 反对

使用道具 举报

glb1197531
学习学习!
回复

使用道具 举报

64789491
学习下支持楼主,支持SAP顾问圈,以后经常来!
回复 支持 反对

使用道具 举报

uniqueanswer
学习 学习 感谢分享
回复 支持 反对

使用道具 举报

scofield1106
hello world!!!
回复 支持 反对

使用道具 举报

JasonGu

RE: BADI中Filter Dependent和Multiple Use

值得学习。。。。。。。。。。。
回复

使用道具 举报

bobo520

RE: BADI中Filter Dependent和Multiple Use

过来学习下 看看
回复

使用道具 举报

slayer

RE: BADI中Filter Dependent和Multiple Use


学习学习,努力学习
回复

使用道具 举报

TaKeThat
学习学习,努力学习
回复

使用道具 举报

494939637

RE: BADI中Filter Dependent和Multiple Use

学习一下  谢谢分享
回复 支持 反对

使用道具 举报

heqin
感谢楼主分享
回复

使用道具 举报

zll

RE: BADI中Filter Dependent和Multiple Use

Filter, Multiple, BADI, BADI, BADI
回复 支持 反对

使用道具 举报

xwq
学习学习,。。。。。
回复

使用道具 举报

wangfancool

RE: BADI中Filter Dependent和Multiple Use

谢谢!!!
回复

使用道具 举报

zhongguomao
感谢无私奉献,但是这一块快一直搞不懂啊。。。
回复 支持 反对

使用道具 举报

12下一页

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表