打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SAP ERP系统SD模块常用增强之二:创建和修改交货单的检查校验
userphoto

2023.05.03 广东

关注

在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:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里
【SAP技术】SAP不能修改一个已经分配给交货单的HU
ERP 打油诗SAP版
SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查
SAP软件 拆分出具销售发票 VF01
SAP MM 公司间STO里交货单PGI之后自动触发内向交货单功能的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服