- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAPABAPBADI入门enhancementpoint
SAP ABAP/4 BADI 入门篇
1.1????? BADIs
BADI Name /KJEPS/BADI2 Description BADI for change visibility of EPS fields Dev. Class /KJEPS/JD
1.1.1???? Method SET_SCREEN_COND_VBAP
Overview:
Method Name SET_SCREEN_COND_VBAP Description Change field visibility for Sales order item screen Function Called from PBO module of SAPMV45A 8450 and return EX_SCREEN_VISIBLE
Interface:
Importing Parameters
Field Name Reference Description Mandatory IN_VBAK VBAK Sales Order Header X IN_VBAP VBAP Processing Sales Order Item IN_TRTYP TRTYP Transaction type IN_XVBAP VA_VBAPVB_T Document Structure for XVBAP/YVBAP (Sales order item) IN_XVBEP VA_VBEPVB_T Structure of Document for XVBEP/YVBEP (schedule line) IN_XVBKD VA_VBKDVB_T Reference structure for XVBKD/YVBKD (business data) IN_XVBPA VA_VBPAVB_T (partner function)
Changing Parameters
Field Name Reference Description Mandatory EX_SCREEN_VISIBLE C ‘X’ = EPS screen is visible
Space = EPS screen is not visible
以上一个是BADI的定义, 那么什么是BADI呢, 说土点就是现在你定义个接口类,但是这个接口
类有一些方法,但是这些方法都是空的,这些方法也有都自己的IMPORTING ,EXPORTING,
CHANING参数.但是这些方法没有被实现, 而你却还要在自己当前写的程序中去调用这个
没有被实现的方法, 这里就出现了一堆问题,
为什么要调用它?
为什么这个BADI是空的?
为什么要做这样的一个空的东西?
下面将回答这些问题, 因为比较偷懒所以没找到比较好的例子, 以下是一个SAP的业务场景:
SALES ORDER的ITEM数据行的DETAIL信息, SAP系统给客户留了一个BADI, 这个
BADI被系统的标准程序调用过, 显示一个SUBSCREEN, 里面包含一些信息, 如下:
?
?
如果某个用户实施了SAP的产品,不希望出现这个SUBSCREEN的话, 客户想把这个屏幕给隐藏掉, 所以给客户预留了一个BADI的DEFINITION. 也就是最上面的那个表.使用SE18可以看到这个定义.
这三个方法在标准的程序中是怎么被调用的.
以下是系统标准程序************************************************************************************
*Define class load
class cl_exithandler definition load.
*Define the Sales Order Control Table instance
data: lds_soctrl type /kjeps/soctrl,
ldf_screen_visible(1) type C value space,
ldf_pre_existing type c,
exit type ref to /KJEPS/IF_EX_BADI2,
ldf_badi_name type exit_def value /KJEPS/BADI2.
*Check the BADI whether was implemented.*检查BADI是否被用户给实现过了,传入BADI的定义名字和接口类名
CALL M
文档评论(0)