第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > SAP的增强(enhancement)

SAP的增强(enhancement)

时间:2024-02-29 14:25:57

相关推荐

SAP的增强(enhancement)

文章目录

1、增强概念2、SAP四种用户出口的类型3、应用案例4.通过spro找到增强的方法5、增强的发展5.1.第一代,基于源代码的增强5.2.找到第一代增强的方法5.3.第二代,基于函数模块的增强出口5.4 第三代,基于面向对象概念的增强BADI

1、增强概念

在SAP中,除了自开发,就是增强,ABAP开发的增强主要指的是标准系统事先预留好的接口,根据不同业务需求,进行开发,这种开发称为增强,又叫出口,如果增强满足不了,就只能修正。

标准功能修改(后台配置(业务顾问来做),增强,修改)

2、SAP四种用户出口的类型

1.菜单出口(Menu exits)

2.屏幕出口(Screen exits)

3.功能模块出口(function Module EXITS)(这个用的最多)

4.表/结构出口(structure exits)

3、应用案例

4.通过spro找到增强的方法

通过配置找到物料主数据找到增强

第二代增强

第三代增强

5、增强的发展

5.1.第一代,基于源代码的增强

提供了子例程来增加自己的代码。

屏幕增强以客户屏幕形式发布。

表/结构 :append structure.

通过SPRO可以找源代码增强和屏幕增强的相关模块的路径。

集中在一些名称倒数第二个字符为Z 的include程序中,所有的程序的全局数据都可以使用。

When the order type is AA ,I must input CUST reference

Enhancement Document

Find Enhancement point

一股是以userexit_开头的子例程.

如果在代码中该表了全局全量,还可能破坏系统原有的逻辑,因而现在很少使用.

要在SAP官方网站中申请ACCESS KEY。

在include种的最后两位为ZZ 程序,在子例程种以 USEREXIT包含的名称

vmod (SD程序的第一代增强)

5.2.找到第一代增强的方法

VA03(标准程序代码)

include

子例程

5.3.第二代,基于函数模块的增强出口

以函数的模块形式的发布,在SAP的发行版本中,使用CALL CUSTOMER-FUNCTION调用这些函数模块,它们在发布时只有一句代码

include xxxxx.

1.功能模块增强(以EXIT_打头的函数)

2、子屏幕增强,子屏幕需要自己创建

3.GUI status

4. include structure

增强相关的函数肯表格

Function:

1.dynp_values_read

2.modx_all_active_menuentries(菜单增强)

3.modx_function_active_check(出口函数增强)

4.modx_menuentry_active_check(菜单增强)

5.modx_subscreen_active_check(屏幕增强)

Table:

5. TFDIR->function module table

6. modsap->sap enhancement table

7. tsdir->dynpro areas call customer subscreen(屏幕增强)

8. CUATEXTS-> GUI INTERFACE : MENU TEXTS CHANGED (GUI 菜单文本增强)

MODSAP, 这个表里最重要的字段增强名(Name),组件类型(typ: E C S T),组件功能模块名(Member): 里面记录了所有enhancement的增强。

TFDIR,所有的函数表,重要字段funcname(函数名), MAND(功能模块激活状态如果是C代表此函数模块激活)。

EXIT实现方法

Enhancement exits实现方法

SMOD:查看增强组件, CMOD:实现增强

1 T_CODE: CMOD中创建一个Project,添加所要使用的Enhancement,激活目标Components

2 在目标Function module中编写功能代码

SUBscreens实现方法

1 T-CODE: CMOD中创建一个Project,添加所要使用的Enhancement,激活目标Components

2 通过SMOD定位到目标程序,创建与其对应的屏幕号,屏幕属性为Subscreen,并编写功能代码。

以下是第二代增强中的三个,分别是函数,屏幕,还有结构增强

必须在以下的地方右键创建才可以使用

查看增强的方法

1.代码找增强

2.利用函数(MODX_FUNCTION_ACTIVE_CHECK)寻找增强

5.4 第三代,基于面向对象概念的增强BADI

第三代增强(基于面向对象概念的增强BADI(business add-in)),源代码发布以接哗啦啦 方式,通过接口的方法调用来实现使用的。用户增强实际上是实现一个或多个基于这个接口的实现类,因为接类实际上是一个抽象类,所以对同一个增强会出现不同的源代码,这些不同的尖代码是通过过滤器(adapter)来区别用于不同的业务场景的。这种增强是用SE18 SE19来实现的。

badi 和exit的区别: Exit中一个Enhancement只能使用一次,BADI一个接口可以被实现多次。

SE24:类构建器

sE18:是查看BADI

SE19:是创建实例

BADI 存储

badi对象的信息存储在SXS_INTER,SXC_EXIT,SXC_CLASS和SXC_ATTR这四个表中(参见SECE包).

SAP程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表肯他们的视图(V_EXT_IMP 和V_EXT_ACT)进行查询肯搜索。

基于这个机理,我查用ST05来监控一个TCDOE来跟踪,然后选择查找有关上述几个表和视图的操作,就可以获得相关BADI.

通过ST05跟踪,BADI对应的数据表为SXS_INTER,SXC_EXIT, SXC_CLASS和 SXC_ATTR,而这些表

都是通过视图V_EXT_IMP和V_EXT_ACT来查询的。

1)打开运行事物码:ST05选择“table buffer trace”而不是常用的"SQL trace"

2)activate trace(开始跟踪)

3)运行事物代码: me21n

4)创建一个采购订单,保存

5) deactivate trace(结束跟踪)

6)点击display trace, 在出来的选择条件中:objects中输入: V_EXT_IMP和V_EXT_ACT; 在operations中输入"OPEN"

7) 查询 通过查询的结果可以看出,视图V_EXT_IMP的BADI的接口类名字都是以if_ex_ 开头的,其中if_ex之后的就是对应的badi接口的定义

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。