SAP-ABAP开发-第二代增强示例
CUSTOMER EXIT
以VA01为例
目录
一、查找出口
二、出口对象
三、销售订单的增强
一、查找出口
①查找事务代码的主程序
②搜索CALL CUSTOMER-FUNCTION SE37下查看函数
函数名称命名规则:EXIT_<程序名>_<序号>
③使用函数查找:MODX_FUNCTION_ACTIVE_CHECK(系统中哪些增强被激活了!!)
二、出口对象
出口对象(是否激活) --- 函数(表:MODSAP)
NAME:出口对象的名称
TYPE:出口对象的类型(E:功能退出/S:屏幕/T:表/C:GUI代码) MEMBER:函数
顺序 PROJECT---->出口对象---->函数 这几个都是一对多的关系
查看出口对象(T-code:SMOD)
SAP有四种基本用户出口的类型
菜单出口-Menu Exits 定义自己的菜单
屏幕出口-Screen Exits 定义自己的屏幕
功能模块出口-Function Module Exits SAP应用程序中添加功能
关键字出口-Keyword Exits 在ABAP/4字典中的关键字数据元素添加文档。结果是你在使用这些数据元素的字段处按F1后会出现你自定义的说明文档 不需要开发
三、增强的实现
创建一个项目对象(Project)事务代码:CMOD 先创建,分配增强中的组件对象 注意:一个组件,只能被一个增强项目引用
查看Components,列出组件中函数功能 绿灯:激活 红灯:非激活
激活在项目层激活:
三、销售订单的增强
业务逻辑: 如果订单类型为ZUSS,则必须输入关联采购订单编号
出口:EXIT_SAPMV45A_003
字段: 销售订单类型XVBAK-AUART 客户参考XVBKD-BSTKD
查看VA包里的所有增强: SMOD--->查找按钮---->Package=VA
创建写代码:
DATA LS_XVBKD LIKE LINE OF XVBKD.
IF XVBAK-AUART = 'AA'.
LOOP AT XVBKD INTO LS_XVBKD.
IF LS_XVBKD-BSTKD IS INITIAL.
MESSAGE E000(ZHQ) WITH '必须输入采购订单编号'.
LVF_SUBRC = '2'.
ENDIF.
ENDLOOP.
ENDIF.
最后在CMOD里面激活。