孕味 发表于 2015-9-18 09:09:41

SAP增强以及使用Function Model Exit

SAP 增强简介
  在SAP ABAP中,其中很大一部分工作是关于增强enhancement之类的工作,这也是在所难免的,毕竟“萝卜白菜各有所爱”,相同的business于不同的公司可能会有不同的solution。同时,作为SAP,虽然能够尽量努力要求自己去满足不断变化的社会需求(所以我们的SAP系统,从自己接触的几个版本,无论是R/3、ECC、BW、CRM等都是在不断的增强),但是,正如人无完人的道理一样,客户的需求实在是太多太”奇怪”,所以,SAP 增强对于我们ABAP developer来说,是一项必需能熟练使用的skill,也是对项目对客户负责全面地提供solution的一项保证。
  目前的版本来说,SAP增强主要有如: Function model exit、Menu exit、Screen exit、BADI等。SAP有一项专门enhancement的training隶属于BC系列。
  本文暂就自己总结的Function model Exit作例。
Function Model Exit简介
  Function model exit,也是我们平常最常听到以及最常使用的“出口”。一般而言,我们对一个SAP现正在run的业务进行一些customizing大部分是属于这一范畴(当然,作为ABAP developer,我们不能视EXIT为万能,在做EXIT开始之前,需要知道是否现存的模块中的customizing是否满足,这需要我们Developer具有一定的业务知识,如果无consultant在旁的话)。
使用Function Model Exit
  以下使用一个例程详细地记述FM exit的过程。作为测试,不给出具体的需求,仅要求对Tcode: MIGO进行增强。
1.查找FM Exit
  我们要对MIGO进行增强。
  找到MIGO的程序名:System–>Status:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/127.jpg
  可以得到:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/224.jpg
  SE80中去global搜索,以Call Customer-function作为Key word:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/317.jpg
  结果:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/412.jpg
  OK,得出它要用到的FM Exit : EXIT_SAPLMIGO_001(名称的组成: exit_程序名_得到的ID)。
  http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/510.jpg
  现在去寻找该FM Exit所对应的enhancement name:
  Tcode: SMOD
  (注意,展开all selection)
  然后利用我们的FM Exit去搜索:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/69.jpg
  
  结果:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/76.jpg
  得到了enhancement name: MBCF0006
  点击进去我们可以发现:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/83.jpg
  MIGO中的这个FM Exit是用来控制wbs的。
2.创建enhancement Project
  (1) Tcode: CMOD创建project
  注意:如果在本系统中,已有他人/或者自己已经创建并激活过了该exit,那么我们不能再创建并激活它了。所以,我们一般的操作是:为防止这种情况,我们会集中管理exit的task,然后,在实现代码中进行处理(如添加user指明who作了哪些工作)。
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/91.jpg
  点击Create:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/10.jpg
  点击Enhancemnet Assignment:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/1110.jpg
  (2) 对enhancement进行实现
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/128.jpg
  进入我们的FM Exit: EXIT_SAPLMIGO_001
  使用Display –>Edit
  它的FM Group: XMBC
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/131.jpg
  Import:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/141.jpg
  Export:无
  Changing:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/151.jpg
  Source:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/161.jpg
  增强这个include,双击:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/171.jpg
  Yes来Create:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/181.jpg
3.激活enhancement Project
  点击激活:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/191.jpg
  最后我们的enhancement project:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/20.jpg
4.测试enhancement Project
  MIGO进入,并尝试一次post。
  注意:
  这里因为必须要对具有WBS的行项目才能做该enhancement。SAPLMIGO中代码
  如下:
http://scnblogs.techweb.com.cn/tcsapbw/files/2010/11/2110.jpg
  而Q就是代表着project的类型。
  要做这个测试,我们需要在MIGO选择special Movement type为’Q‘:我们可以使用PS模块中先创建如WBS,然后再与MM模块的PO等联系,再来测试。
  这是一个业务流程,有兴趣可以尝试去操作。
  转载于:http://scnblogs.techweb.com.cn/tcsapbw/archives/573.html
页: [1]
查看完整版本: SAP增强以及使用Function Model Exit