SAP ERP系统SD模块常用增强之二:创建和修改交货单的检查校验
在SAP/ERP项目的实施中销售管理模块(SD)的创建和修改发货单(DN)经常会遇到检查校验的需求,来防止业务人员创建错误的DN,SAP系统这方面的配置功能也非常强大,通常情况下不需要写开发代码,通过配置可以实现大部分需求,但是在实际项目中还是会遇到一些特殊的需求,不能通过配置实现,需要进行增强开发。
SAP系统这方面主要增强点有如下两点:
增强点1:
程序:MV50AFZ1
子例程(FORM):
USEREXIT_SAVE_DOCUMENT_PREPARE.
增强点2:
BADI: LE_SHP_DELIVERY_PROC
接口:IF_EX_LE_SHP_DELIVERY_PROC
方法:
IF_EX_LE_SHP_DELIVERY_PROC~DELIVERY_FINAL_CHECK
这两增强点主要用于创建或修改交货单(DN)时候保存前的各种合规性的检查和校验。
下面通过一个项目案例来介绍下如何通过BADI增强方式实现对发货单的创建和修改进行的合规性检查。
具体业务需求:
某公司的财务要求针对退货的销售订单的DN,在做发货过账时候需要检查对应SO的成本价格是否为0,如果是0不允许发货过账。
具体增强开发逻辑:
通过交货单行项目对应的SO,在表VBAK中取到SO的订单类型和价格条件记录号,然后再通过条件记录号在表KONV里面取到销售订单的成本价,然后判断成本价是否为零,如果是零报错提示。
备注:KONV价格条件记录表里面保存是SO里定价过程里各条件类型的价格,比如销售价、成本价、税、现金折扣等。
具体的增强实施步骤
1.创建BADI增强实施项目
输入实施名称点击确认,继续按如下步骤操作
如果正式开发环境需要选择包,这里是学习系统,不需要传输,所以选择本地对象即可。继续按如下步骤操作。
在下面的方法里面写上具体的增强代码
这里需要注意下:SY-UCOMM = 'WABU_T' ,这个表示点击“发货过账”图标才触发校验检查,如果是发货单创建和修改保存前检查不需要这个条件。另外如果有开发批量的交货单发货过账的功能,是捕捉不到这鼠标点击事件的,应该会跳过这条件,所以需要在批量程序或增强程序中处理下。
上面增强的具体源代码如下(供参考学习):
DATA: WA_LIPS LIKE LINE OF IT_XLIPS,
GS_LIPS LIKE LINE OF IT_XLIPS,
L_LIPS LIKE LINE OF IT_XLIPS,
XLIKP LIKE LINE OF IT_XLIKP,
LS_KWERT TYPE KONV-KWERT,
LS_KNUMV TYPE VBAK-KNUMV,
LS_VBELN TYPE VBAK-VBELN,
LS_AUART TYPE VBAK-AUART,
LS_MATNR TYPE MARA-MATNR,
GS_VBAK TYPE VBAK. DATA: LS_MESSAGE(200) TYPE C. IF SY-UCOMM = 'WABU_T'."点击发货过账时候才检查
LS_MESSAGE = ''.
READ TABLE IT_XLIKP INTO XLIKP INDEX 1.
LOOP AT IT_XLIPS INTO WA_LIPS WHERE VBELN = XLIKP-VBELN.
SELECT SINGLE AUART KNUMV INTO (LS_AUART ,LS_KNUMV) FROM VBAK WHERE VBELN = WA_LIPS-VGBEL.
IF LS_AUART = 'RE' .
SELECT SINGLE KWERT INTO LS_KWERT FROM KONV WHERE KNUMV = LS_KNUMV AND KSCHL = 'VPRS' .
IF SY-SUBRC = 0 .
IF LS_KWERT = 0 .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_LIPS-POSNR
IMPORTING
OUTPUT = WA_LIPS-POSNR.
CONCATENATE '项目:' WA_LIPS-POSNR '对应SO的成本价格(VPRS)为0,不能发货过账!' INTO LS_MESSAGE.
MESSAGE E398(00) WITH LS_MESSAGE.
ENDIF.
ENDIF.
ENDIF.
CLEAR : LS_AUART ,LS_KNUMV ,LS_MATNR.
ENDLOOP. ENDIF.
增强实施后效果如下
往期相关文章荐读:
1.SAP ERP系统SD模块常用增强之一:VA01&VA02创建或修改SO的输入检查
2.SAP ERP系统实施隐式增强中"声明"和"代码"的区别和用途介绍
3.通过一个例子介绍SAPSmartform的应用及其技术细节和要点
ABAP入门好书推荐:
手机号码识人绝技:如何通过手机号码了解你的朋友?
手机已经成为人们生活中必不可少的一部分。通过移动电话为我们所产生的磁场变得更加明显。在过去,我们承认性格,姓名对风水的影响。现在,越来越多的人已经认识到的电话号码会对人产生影响。对于知识领域不知道,有很多人喜欢不屑一顾,而正是这种态度。让你和很多机会失之交臂。站长网2023-07-27 13:36:290000居然有这种网站?还4个?
hello大家好,这里是日常爆肝更新的老Y工作。今天是高考第一天,祝所有参加高考和家里有亲戚朋友参加高考的同学,都顺利通过人生中非常重要的一场考试,祝考的都会,蒙的都对01、全球大学电台网址:/一个免费的不错在线平台,它主要是收集并免费提供世界各地大学广播电台的播放服务。同时,用户可以提交自己感兴趣的学校电台,进行收录和分享,让用户更好地了解不同国家的文化。打开后你能听懂么站长网2023-07-29 10:27:120000银行回执单不要再傻傻的手工裁剪成两张纸,用这个方法秒解决!
与30万粉丝一起学ExcelVIP学员的问题,下载的银行回执单都是A5大小,平常都是用A4纸打印,再手工裁剪成两张纸。大批量操作真的费时费力,有没方法能直接打印成两张A5纸?下载的银行回执单都是PDF格式,绝大多数的PDF软件都有裁剪的功能,跟卢子来看看。1.WPS用WPS打开PDF文件,按CtrlP打印,找到分割打印的功能。站长网2023-07-29 12:55:460000学会这2个新函数,你的水平就能超过90%的同事
VIP学员的问题,拿多少工资,才能超过90%的人?比如现在有10个人的工资,需要超过9个人。这种问题经常看到,不过就是很少在Excel里面计算。如果不懂方法,折腾很久都算不出,如果懂方法不用1分钟就解决。跟卢子来看看。=PERCENTILE(C2:C11,0.9)语法:=PERCENTILE(区域,0~1之间的数字)站长网2023-07-28 16:46:540000手机总是下载垃圾软件弹广告,教你关闭这个开关,杜绝流氓软件
今天和大家分享一下手机上的这两个设置,我们一定要去关闭,否则呀,它就会偷偷的下载一些垃圾软件,会导致我们的手机系统不安全,而且呢还会越用越卡顿,相信有不少的朋友都会发现,在我们的手机上啊,总是莫名其妙的就弹出一些广告弹窗,而且想关呢也关不掉,还会感觉手机呀特别的费电,流量跑的呢也是特别的快,这时候啊大家就一定要注意了,很有可能是手机里面安装了一些不明软件,正在窃取我们的隐私!站长网2023-07-30 08:26:000001