三代增强BADI总结

这里对sap三代增强做一下总结,虽然已经是过时的技术了.

  • 三代BADI的创建
  • 三代BADI的实施
  • 三代BADI的调用
  • 三代BADI的包及相关表
  • 三代BADI的运行原理
  • 三代BADI的屏幕增强
  1. 三代BADI的创建

事务代码:SE18

由于三代增强已经是过时的技术了,现在提倡用4代增强NEW BADI.所有三代增强的创建入口被隐藏在实用程序下边.

入口 SE18--Utilities--Create classic BAdi.

填写必要字段

  

注意一下系统自动生成的类 ZCL_EX_TEST_OLD_BADI2.这个类是BADI运行的关键.后面会讲到.

Multiple Use 如果打勾了,那么这个Badi可以同时存在多个激活的实例.但实例执行的顺序是没有规律的.

如果Multiple Use打勾了,则该BADI定义就不能有按键增强和子屏幕增强了.

Filter-Depend如果打勾了,需要填写一个过滤器类型,过滤器类型有如下限制: 是char类型的数据元素;长度不能超过30位;具有搜索帮助;有一个具有固定值或者值表的域.

如果启用了过滤器,则所有BADI接口的方法的参数中会自动(也必须)包含一个输入参数(importing):FLT_VAL.

如果Filter-Depend打勾了,则该BAID就不能有按键增强.

在创建BADI时系统会自动根据BADI的名称建议一个接口名称,该名称和自动生成的BADI类只是前缀不同.当然接口名称可以修改.

双击接口名称就可以创建该接口,在接口创建界面定义方法和属性值.

如果启用了过滤器,则所有BADI接口的方法的参数中会自动(也必须)包含一个输入参数(importing):FLT_VAL.

此处创建的接口将作为BADI实施类的接口.

当激活BAID时,系统将会根据接口生成有一个上边提到的BADI类ZCL_EX_TEST_OLD_BADI2,自然该类将包含接口中的所有方法及属性.

关于按键增强(状态栏增强)及子屏幕增强将在后边讲.

     2.     三代BADI的实施  

               事务码:SE19.

              

                在Create Implementation 框中,选择Classic BAdI.输入BADI名称,点击Create按键创建BADI实施.

               

              指定BADI实施名称,继续.

             如果BADI包含实施过滤器FILTER.则在BADI实施的属性页中必须指定过滤值Filter value(可以是多值).只用在在调用BADI的类的接口方法时,传入给参数FLT_VAL的值等于该实施的

             Filter value 时,该实施对应的方法才会被调用.详情见BADI的调用.

            

            然后可以在interface页中重写所有BADI接口的方法了. 没有问题后激活,则badi实施就完成了.

       3. BADI的调用.

           稍后更新

  

              

               

 

猜你喜欢

转载自www.cnblogs.com/weixiaopeng/p/old_badi.html