Differences Between Classic and New BAdIs

本文深入探讨了经典与新型BAdI在创建对象、过滤比较值、调用方法等方面的区别,指出自动迁移无法实现的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Classic and new BAdIs differ in a number of features that are important for migration:

  1. BAdI object

                            a.      With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a reference variable of the type of the BAdI interface.

                            b.      With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle for the calls of BAdI methods, and referenced via a reference variable of the type of the BAdI. A BAdI object is an instance of an internal BAdI class, which otherwise is invisible to the outside.

  1. Passing comparison values for the filter

                            a.      With the classical BAdIs, the filter values are stored in a structure and passed with the call of the BAdI methods.

                            b.      With the new BAdIs, the comparison values for the filters used to search for implementations are passed when the BAdI object is created with the GET BADIstatement.

There is no way of migrating the call of the factory method one-to-one into the ABAP statement, because GET BADI can also return an existing BAdI object, which is not possible with the factory method.

  1. Calling BAdI methods

                            a.      A classic BAdI can be called only once and the call positions are registered centrally.

                            b.      With new BAdIs, multiple calls are possible and the call positions are not registered centrally.

For the above reasons, an automatic call migration is not possible.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值