经典和内核Badis的混乱

2020-09-01 18:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家们,我已经签入 ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,我已经签入

http://help.sap.com/saphelp_nw04s/helpdata/en/ee /6f3b42ea85b26be10000000a155106/content.htm

上面的链接说明了经典和新巴迪舞曲之间的区别。

但是有很多困惑。

第1点:

对于经典BAdI,将通过调用工厂方法来创建BAdI对象,并通过BAdI接口类型的引用变量对其进行引用。

对于新的BAdI,将通过ABAP语句GET BADI创建BAdI对象,作为BAdI方法调用的句柄,并通过BAdI类型的引用变量进行引用。

BAdI对象是内部BAdI类的实例,否则该类对外部不可见。

当两个badis都被badi的refrence变量刷新时,有什么意义? 请解释。

`点2:

使用传统的BAdI,筛选器值存储在结构中,并通过BAdI方法的调用传递。

b。 使用新的BAdI,当使用GET BADI语句创建BAdI对象时,便会传递用于搜索实现的过滤器的比较值。

无法将工厂方法的调用一对一迁移到ABAP语句中,因为GET BADI还可以返回现有的BAdI对象,而这对于工厂方法是不可能的。

任何一个人都能用一个简单的例子来解释这个问题。

第3点:

。 经典BAdI只能调用一次,并且呼叫位置可以集中记录。

使用新的BAdI,可以进行多个呼叫,并且呼叫位置不会集中记录。

由于上述原因,无法进行自动呼叫迁移。

按中心注册是什么意思?

请帮助专家...

C

W

消息的编辑者:Suhas Saha

4条回答
派大星 ヾ
2020-09-01 19:42

经典BAdI调用:

DATA:bd TYPE REFTOif_intf。

DATA:flt TYPE flt。


CALLMETHODcl_exithandler => get_instance

导出

exit_name = BADI_NAME`

更改

instance = bd。

flt-lang =`D`。

调用方法bd->方法

导出

x = 10

flt_val = flt。


通过代理类重定向呼叫。

新BAdI

数据bd类型refto badi_name。

获取badi bdfilters lang =`D`。

调用badi bd->方法

exportingx = 10 。

选择是在请求句柄时发生的。

直接调用实现(没有代理)会减少耗时

一周热门 更多>