ToB企服应用市场:ToB评测及商务社交产业平台

标题: SAP ERP体系SD模块常用增强之一:VA01/VA02创建或修改SO的输入检查 [打印本页]

作者: 锦通    时间: 2024-8-24 17:06
标题: SAP ERP体系SD模块常用增强之一:VA01/VA02创建或修改SO的输入检查
在SAP/ERP项目的实行中销售管理模块(SD)的创建和修改销售订单肯定会有输入字段校验检查的需求,来防止业务职员录入错误或少录入数据,SAP公司也考虑到这一点,以是这方面的设置功能也非常强大,通常情况下不需要写开辟代码,业务顾问通过设置不完整日志就可以非常轻易实现大部分需求,但是在现实项目中照旧会遇到一些特别的需求,不能通过设置实现,需要进行增强开辟。
下面通过一个项目案例来先容下怎样通过增强实现销售订单创建和修改的字段输入的合规性检查。
业务需求如下:
某公司销售模块的业务要求:销售构造为S010在创建ZPE范例的销售订单时间,如果销售订单行项目范例为Z001时,要求检查销售订单行项目的订单号必须输入(如下图说明)。

类似上面这样的复杂的业务需求,就无法通过不完全日志的设置来实现,只能通过增强开辟实现。
下面详细先容下实行步骤:
增强点:
USEREXIT_SAVE_DOCUMENT_PREPARE,此增强用户出口主要用来对销售订单保存前的各字段的束缚条件的检查。
实行方法:使用隐式增强方法,隐式增强点位如下:

备注:怎样查找隐式增强点不是本文重点,后续专题文章先容。
详细详细实行步骤:
上面找到隐方增强点后,继续按如下步骤利用:

点击螺旋图标后,会表现创建图表(如下)



备注:如果需要传输的,必须选择包,如果本身的学习体系,不需要传输的,包可以选择$TMP或点击本地对象保存即可。

备注:SO行项目数据被保存在内表XVBAP,可以从此内表读取到维护的行项目值。
上面位置写上增强代码后点击保存->激活。这个增强需求的实行步骤就全部完成了。
增强代码如下:
  1. IF VBAK-VKORG = 'S010' AND VBAK-AUART = 'ZPE'.
  2.    LOOP AT XVBAP.
  3.    IF XVBAP-PSTYV =  'Z001'  .   
  4.      IF XVBAP-AUFNR IS INITIAL AND XVBAP-UPDKZ  <> 'D'.  
  5.      MESSAGE '订单号必须输入!' TYPE 'E' DISPLAY LIKE 'E'.     
  6.      ENDIF.        
  7.    ENDIF.
  8.   ENDLOOP.
  9. ENDIF.
复制代码
备注:XVBAP-UPDKZ = ‘D’ 表示删除行,XVBAP-UPDKZ =’ I '表示插入行。VA01/VA02创建SO时间,当行项目维护多条数据后,删除此中的一条大概多条,被删除的行项目依在内表XVBAP中,如果没有增长这XVBAP-UPDKZ<>'D’的条件,会发现一个现象:未删除的行项目满足字段必输的条件了,体系依然给出提示:“订单号必须输入!”
现实实行结果如下图:

当上面VA01创建订单时间,如果满足销售构造S010,订单范例:ZPE,类别:Z001 时间,SO保存时间,体系报错提示。
往期相关文章荐读:
[1.SAP软件MM模块项目实行中常用增强之一:采订单收货后不能修改价格]
(https://mp.weixin.qq.com/s/LenIYYbpa_oIQYG44FunKg)
2.SAP软件MM模块项目实行中常用增强之二:MB51报表增长字段
3.SAP软件MM模块项目实行中常用增强之三:采购订单的屏幕增强
4.SAP软件FICO模块常用增强之一:固定资产的屏幕增强
5.SAP软件怎样在物料主数据上增长字段
6.通过一个例子先容SAPSmartform的应用及其技能细节和要点

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4