日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BADI中Filter Dependent和Multiple Use

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BADI中Filter Dependent和Multiple Use 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、Filter Dependent
1、Overview
  • 如果實(shí)施一個(gè)特定功能的增強(qiáng)時(shí),有時(shí)想想基于一些參數(shù)有不同的版本(e.g. 根據(jù)國家或者公司代碼), 這時(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ù)提供的值來選擇不同的激活的Implementation

  • ??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
    • 當(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,只不過只能有一個(gè)激活的Implementation

    2、Multiple Use Business Add-INS
    • 選擇Multiple use的復(fù)選框
    • BADI可以有多個(gè)Implementation
    • 無返回值
    • 可以使用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的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。