SAP ENHANCEMENT

本文介绍了SAP系统的三代用户出口技术,包括直接修改标准代码的第一代用户出口、通过SMOD和CMOD实现的第二代CUSTOMER-FUNCTION以及第三代的BADI。文章还提供了查找和激活这些用户出口的具体方法。

sap的用户出口总共有三代:
1、第一代
sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强都需要修改sap的标准代码。
示例:USEREXIT.. in SAPMV45A

2、第二代
sap提供的是CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现。

3、第三代
sap提供的第三代的用户出口就是BADI,他的调用方式是CALL METHOD (instance),(相关的TCODE是SE18和SE19),可以通过EXIT_HANDLER这个单词查找BADI。

对于第一代增强,可以用以下方法查找增强:
打开欲增强的程序,点击工具栏上的“Display Object List”按钮,选择Subroutines,查找以“UserExit”开头的子程序,根据子程序前面的注释文档来查找用户出口

对于第二代增强,可以用以下方法查找增强

用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).
1.E Enhancement exits :就是常说User_exit (用户出口)
使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头
的程序. SE16查询TFDIR(函数表)输入EXIT*也可.
2.C GUI codes( GUI接口增强)
3. S Subscreens (屏幕增强)
Enhancement在表MODSAP可看到,而TFDIR字段 MAND(值为C表示此出口函数被激活).使用SMOD(CMOD)当然可激活exit function,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活.

REPORT Zactexitfun .
data ztfdir like tfdir .
* select single * from tfdir into ztfdir
* where FUNCNAME =
* 'EXIT_SAPMM06E_013'.
* ztfdir-MAND = 'C' .
* update tfdir from ztfdir.
* 将EXIT_SAPMM06E_013换成实际所需exit函数名
update tfdir set MAND = 'C'.
where FUNcname = 'EXIT_SAPMM06E_013'.

***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancement name MM06E005后使用SMOD测试激活exit函数.
增强相关函数和表格
Function:
[1].DYNP_VALUES_READ
[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)
[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)
由于读者可能接触user exit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode如其有exit就会调用此函数.
[4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)
[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)
Table:
[1]. TFDIR->function module table
[2]. MODSAP->sap enhancement table
[3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强)
[4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强)

***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.

你还在狡辩,再给你完整SAP note 1854763: Symptom Material number or Quantity is not updated in FI document because you have set up summarization procedure from the documents coming from MM module. Environment Financial Accounting (FI) SAP ERP SAP ERP Central Component SAP enhancement package for SAP ERP SAP enhancement package for SAP ERP, version for SAP HANA SAP R/3 SAP R/3 Enterprise SAP S/4HANA Finance SAP S/4HANA Reproducing the Issue Create MM document BSEG-MATNR or BSEG-MENGE in accounting document is not updated Cause Please have a look at the reference procedure of the affected FI document (-> BKPF-AWTYP), and have a look at transaction OBCY, whether a summarization is defined in FI for this reference procedure (AWTYP). If field BSEG-MATNR, BSEG-MENGE etc. is contained in transaction OBCY for this reference procedure (AWTYP), the content in field BSEG-MATNR is deleted in FI for summarization reasons. Please refer to note 36353 which has very good information about summarisation. If you have summarization activated, the contents of the field are deleted in every document for the respective reference procedure and the document line items are summarized. Resolution Please check table TTYPV (in transaction OBCY): if you want to get the field material, quantity etc. in the accounting document, this field must NOT be in the table TTYPV, because FI is deleting all fields of TTYPV to make the summarization. First please remove the material field from the table TTYPV so that it can pass from MM to FI. For the historical data, please first add a document change rule to make the field BSEG-MATNR, BSEG-MENGE etc. modifiable by path SPRO -> FI ->Global Settings -> Document -> Line item -> Controls -> Document change rule. Then make sure it is visible in the line item and add it to the posted documents.
最新发布
08-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值