sap增强小总结

来源:互联网 发布:淘宝怎么批量上传图片 编辑:程序博客网 时间:2024/05/18 02:22

一、            表增强

SAP 提供了两种方法为表和结构增加字段  全部在se11中选择表

• 追加结构---追加结构只是向表内增加字段而不是修改结构,另外追加结构只能属于一个表。

• 定制包含(CI 包含)  在上面的“编辑”选择“包括”再选择“插入”组件

• 文本元素增强(CMOD-转到-全局增强-数据元素)

使用追加结构时注意下面几点:

ü  不能为池表或簇表创建追加结构。

ü   如果表包含长字段(例如数据类型LCHR 或LRAW),就不能为表扩展追加结构。这是因为这种类型的长字段必须是相关表的最后字段。从追加结构中的字段不能被添加到它们后 面。

ü   如果使用追加结构来扩展一个SAP 表,追加结构中的字段名 必须在客户命名空间中,就是用YY 或ZZ 开头。这可以避免 SAP 将来插入新字段时发生命名冲突。

     

二、            事务变式、屏幕变式

使用事务码FB50选中‘项目的屏幕变式’,(在菜单栏“编辑”下面选择“屏幕变式”----再到“创建屏幕变式”)点击右键选择屏幕变式->创建屏幕变式(也可以直接使用t-code:SHD0(零)进入屏幕变式创建)

在事务代码中输入需要定制屏幕变式的T-code:FB50

Screen variant:属于以Z开头的自定义屏幕变式的名称(必须以Z开头

Program:输入要用到的程序SAPLFSKB

Screen:输入要定义的屏幕编号100

然后点击 创建

根据需要进行凭证字段的选择:

只输出:表示只读不能修改

不可见:表示隐藏

强制:  表示必须输入

编写屏幕变式的文本说明:如图所示‘省公司的屏幕变式’

选择完成后点击‘Exit and Save’

   点击 ,然后在小对话框中点击‘本地对象’,则屏蔽变式建立并保存成功

回到FB50凭证输入的界面,选中‘项目的屏幕变式’,点击右键选择屏幕变式->添加屏幕变式

输入刚才建立的变式名称,点击‘继续’。刚才创建的屏蔽变式就会加入到变式的树形列表中,双击该变式就可使用

删除屏幕变式:对于不使用的屏幕变式可以选中该变式后点击右键,选择屏幕变式->搬移屏幕变式

 

 

                    

 

 

三、            程序增强(程序、屏幕)

1、 用户出口---user exit,

通过修改助手修改标准程序,修改时必须有相应修改key,实际中使用不是太多

修改助手(修正助手会自动生成注释行框架来描述操作。 注释还包含 了变更请求 号和内部管 理所用的编号。):

• 插入:系统生成一个注释行框架,可以在其中输入自己的源代码。

• 替换:把光标放在一行上,选择“替换”。相应的行就被注释,其他行出现,可以输入代码。如果想要替换多行,就先标记这一块。

• 删除:选择一行或多行,这些行会被注释。

• 撤销修正:这会撤销对该对象做出的全部修正。

• 显示修正概览:选择这个功能来显示所有属于这个对象的修正的概览。

查找方法:

IMG(SPRO)、源程序中查找perform userexit、小功能程序等

SAP Notes一般由SAP写好相应的notes,用户升级时打上相应的notes

 

2、 客户化定制出口---customerexit(可以进行程序增强、屏幕增强、菜单增强)

SAP 应用程序调用的一个特殊出口函数模块。这个函数模块 是系统为特殊意图处理的函数组的一部分。

步骤:

首先,(事务码CMOD) 创建一个增强项目,然后选择想要使用的SAP 增强。

然后,(事务码SMOD) 使用项目管理功能编辑各个组件。

最后,激活增强项目。这会激活项目的所有组件部分。

查找方法:

IMG(SPRO)、SE80(EXIT_<prgram_name>*)、se81、源程序中查找CALL CUSTOMER-FUNCTION、小功能程序等

 

 

3、 业务附加---BADI(可以进行程序增强,屏幕增强。菜单增强)

   业务附加(business add-ins),应用程序调用某个类或类的实例的方法。这个类在客户命名空间中。BADI增强技术和其它增强技术不同的是,它只能被实施一次并且可以被任何数量的用户同时调用.此外,BADI可以被按照过滤值定义, 这就允许你控制BADI的实施以及使它基于特殊的条件

程序增强:在业务附加里,程序增强的接口以接口方法的形 式定义。这个接口用来实现增强。SAP 程序调用生成的业务 附加类的接口方法。

菜单增强:跟客户出口一样,可以在业务附加里输入功能码。 这些菜单条目就能在GUI 定义中获得,并且在业务附加被实 现后可见。

屏幕增强:跟客户出口一样,可以在业务附加里定义屏幕增强,然后实现它。

步骤:

首先、使用事务码SE18 查看BADI增强,显示BADI

其次、使用事务码SE19 创建BADI执行,或者通过SE18菜单创建BDAI执行

第三、在BADI执行的方法上添加程序代码(程序增强、屏幕增强、菜单增强等)

 

先找到BADI,先通过SPRO找到BADI,再通过se18查看,创建badi的执行,然后再在里面写代码

查找badi的方法

(1)通过SE24,输入CL_EXITHANDLER,然后在方法GET_INSTANCE中设置断点,然后运行事务代码判断 exit_name的值,操作过程如下:
输入se24,然后输入cl_exithandler


进去双击get_instance设置断点查看exit_name的值:



(2)通过st05跟踪,badi对应的数据表为 SXS_INTER, SXC_EXIT, SXC_CLASS SXC_ATTR,而这些表都是通过视图V_EXT_IMP V_EXT_ACT来查询的。

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

2activate trace(开始跟踪)

3、运行事务码:me21n

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

5deactivate trace(结束跟踪)

6、点击display trace,在出来的选择条件中: objects中输入:V_EXT_IMPV_EXT_ACT;在 operations中输入“OPEN”

7、查询

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

 

 

4、 业务事件---BTE

   Bte就是业务交易事件(businesstransaction events),是SAP 应用程序动态调用客户命名空间的函数模块。

实现bte步骤:

首先、找到要增强的BTE,为此我们通过spro 或者通过BF03找BTE,并将找到的BTE事件对应的函数copy一个以“Z”开头的函数

其次、在BF24中创建产品Product,并激活;

第三、需要在事务码BF34中通过“新词条”按钮添加已经选择的事件和产品关联;

第四、在copy的函数里增加所需要的功能代码

  

 

5、 增强点

   在标准程序中增加客户化定义及代码

   首先、一般先调试程序,跟踪到所要增强代码的位置(一般在SAP某个标准函数中)

其次、打开要创建增强点的程序或者函数,点击增强点创建按钮(圈圈)

,后选择菜单->EXIT—>Enhancement Operations->Show implicit EnhancementOperationsàCreate(Undo\change\replace) Enhancement,在里面写自己的代码即可。

 

 

6、 IMG(后台配置)

 通过后台配置定制屏幕,可以和其他增强结合使用,要求对后台配置很熟悉

1)  可以通过后台查找user exit,customer exit,BADI,BTE等增强

2)  利用SAP提供的标准功能创建增强屏幕,和其他增强方式配合使用,完成屏幕增强的功能

 

 

四、            菜单增强

菜单增强允许向SAP 标准菜单添加附加菜单条目。

SAP系统提供两个选择:、

• 客户增强

• 业务附加

附加菜单条目会合并到GUI 接口中。

创建一个菜单增强,按以下步骤操作:

  1. 创建一个插件并定义它的接口类.
  2. 从标签栏选择Fcodes
  3. 输入你的程序的名字,功能代码,和描述.

  1. 调用菜单制作器或者双击你的程序名或功能代码进入菜单制作器里的用户接口维护.在合适的菜单列表种输入你的功能代码.如果你已经在插件定义时直接执行了菜单制作器,你也可以通过点击调用菜单列表Goto® Object lists ® Menu list

从一个应用程序中调用一个菜单增强

你可以象这样编程:

(…)
casefcode.
  when 'SAP'.
    (…)
  when '+CUS'
    call method …

实施一个菜单增强

实施菜单增强,按以下步骤操作:

  1. 创建一个实施并点击Fcodes.所有从BADI定义继承过来的数据在这里显示.你可以在右边建立实施的条目.你也可以双击第一个输入框.下面的对话框会出现:

这里,你可以为你的功能代码键入文本,一个图标的名字和文本,以及一个提示文本.

你想让系统在被选中的按钮以后执行的动作必须在合适的方法中编写,也可以手工的或使用已经提供给你的默认源代码.

菜单增强只在实施被激活并且调用BADI的应用程序已经执行时显示.

 

 

 

原创粉丝点击