BADI中Filter Dependent和Multiple Use
生活随笔
收集整理的這篇文章主要介紹了
BADI中Filter Dependent和Multiple Use
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、Filter Dependent
1、Overview
2、How it works?(老BADI的Filter創(chuàng)建步驟,和新BADI的差不多)
??CALL METHOD exit->method
? ? EXPORTING
? ?? ?flt_val? ?= flt
? ? CHANGING
? ?? ?parameter = word. 復(fù)制代碼
新BADI的Filter和Multiple的應(yīng)用: 為什么一個(gè)BADI中實(shí)施多個(gè)Implementation
二、Multiple Use
1、Single Use Business Add-Ins
2、Multiple Use Business Add-INS
1、Overview
- 如果實(shí)施一個(gè)特定功能的增強(qiáng)時(shí),有時(shí)想想基于一些參數(shù)有不同的版本(e.g. 根據(jù)國(guó)家或者公司代碼), 這時(shí)相同的一個(gè)BADI就需要生成多個(gè)不同版本的Implementation.
- 在系統(tǒng)運(yùn)行的時(shí)候,滿足參數(shù)的特定Implementation會(huì)被執(zhí)行
- 這就需要filter dependent BADI
- 那么怎樣選擇filter?
- Filter type必須是data element或者ABAP?dictionary structure。Data element使用的domain的value table包含了implementation所需要的valid values。如果filter type使用的是structure,那么這適用于structure的每個(gè)字段。當(dāng)調(diào)用enhancement method時(shí),filter value必須傳給interface。
2、How it works?(老BADI的Filter創(chuàng)建步驟,和新BADI的差不多)
- 當(dāng)定義接口時(shí)打開Filter-dependency
- 選擇合適的filter element
- 接口中所有的方法在創(chuàng)建時(shí)都會(huì)有一個(gè)Filter 'FLT_VAL'作為輸入?yún)?shù)
- 應(yīng)用程序提供一個(gè)filter value 給增強(qiáng)
- 增強(qiáng)根據(jù)提供的值來(lái)選擇不同的激活的Implementation
新BADI的Filter和Multiple的應(yīng)用: 為什么一個(gè)BADI中實(shí)施多個(gè)Implementation
二、Multiple Use
1、Single Use Business Add-Ins
- 當(dāng)BADI只能有一個(gè)Implementation,不要選擇multiple use的復(fù)選框
- 有返回值
- 可以使用importing, changing and returning參數(shù)
- 應(yīng)用程序可以直接調(diào)用這個(gè)implementation
- 即使BADI本身不支持Mulitiple Use也可以同時(shí)存在多個(gè)Implementations,只不過(guò)只能有一個(gè)激活的Implementation
2、Multiple Use Business Add-INS
- 選擇Multiple use的復(fù)選框
- BADI可以有多個(gè)Implementation
- 無(wú)返回值
- 可以使用importing,changing參數(shù)
- 同時(shí)實(shí)施多個(gè)Implementation時(shí),由于在BADI定義時(shí),不知道哪些Implementation被激活,所有Implementation的執(zhí)行順序不能被確定
- 應(yīng)用程序可以調(diào)用所有被激活的Implementations
- SE18中輸入BADI名稱,選擇Implementation->Display,你可以查看所有的Implementation
當(dāng)我在一個(gè)BADI中實(shí)施多個(gè)增強(qiáng)激活時(shí),可能老是報(bào)錯(cuò),即時(shí)勾了Multiple Use也還是報(bào)錯(cuò),為什么呢?
這是因?yàn)槲覀冊(cè)诜椒ǖ姆祷貐?shù)使用了Exporting,應(yīng)該使用changing參數(shù),請(qǐng)參考二、2
總結(jié)
以上是生活随笔為你收集整理的BADI中Filter Dependent和Multiple Use的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一个功能非常全面的增强出口查找工具
- 下一篇: 可手工拖拽alv行记录的实例