需求:
Restrict line item quantity and amount of a SO in spectial sales area, sales district and data&time period.
解决过程备案
1. 自定义表结构和创建Maintain Screen
2. 修改 USEREXIT_SAVE_DOCUMENT_PREPARE
DATA: LV_UNIT_LIMIT LIKE ZSDLIMIT-UNIT_LIMIT,
LV_LINE_LIMIT LIKE ZSDLIMIT-LINE_LIMIT,
LV_LINE_AMT TYPE I VALUE 0.
* Get line item unit limit and line limit.
SELECT SINGLE UNIT_LIMIT LINE_LIMIT
INTO (LV_UNIT_LIMIT, LV_LINE_LIMIT)
FROM ZSDLIMIT
WHERE VKORG = XVBAK-VKORG
AND VTWEG = XVBAK-VTWEG
AND SPART = XVBAK-SPART
AND BZIRK = XVBKD-BZIRK
AND ( DATAB <= SY-DATUM )
AND ( TIMAB <= SY-UZEIT )
AND ( DATBI >= SY-DATUM OR DATBI = 0 )
AND ( TIMBI >= SY-UZEIT OR TIMBI <= 0 ).
* Unit limit check
IF LV_UNIT_LIMIT NE SPACE.
LOOP AT XVBAP
WHERE UPDKZ NE 'D'
AND ABGRU = SPACE.
AND KWMENG > LV_UNIT_LIMIT.
FCODE = FCODE_GLEICHE_SEITE. "=ENT1: continue
* PERFORM FCODE_BEARBEITEN.
MESSAGE E013(ZEDI) WITH LV_UNIT_LIMIT.
ENDLOOP.
ENDIF.
* Line limit check
IF LV_LINE_LIMIT NE SPACE.
LOOP AT XVBAP TRANSPORTING NO FIELDS
WHERE UPDKZ NE 'D'
AND ABGRU = SPACE.
ADD 1 TO LV_LINE_AMT.
ENDLOOP.
IF LV_LINE_AMT > LV_LINE_LIMIT.
FCODE = FCODE_GLEICHE_SEITE. "=ENT1: continue
MESSAGE E014(ZEDI) WITH LV_LINE_LIMIT.
ENDIF.
ENDIF.
这里要感谢下SAP砍刀的帮忙, 没想到要用 TIMBI <= 0 的形式来判断一个时间类型的字段是否为initial。我试了TIMBI = SPACE / '' / '000000' / IS NULL / 0 均未得到正确结果,原因是Open SQL => Native SQL时参数值解析出的值 ( ' ' 会被解析成'00000', 0 / SPACE=>'000000') 和数据库中的值不一致,ABAP Dictionary TIMS类型的字段在DB (Oracle / SQL Server)中默认值为空字符串。
3. 在 USEREXIT_SAVE_DOCUMENT_PREPARED 中如果用MESSAGE EXXX报错时,需要加这样写:
FCODE = FCODE_GLEICHE_SEITE. "=ENT1: continue
MESSAGE E013(ZEDI) WITH LV_UNIT_LIMIT.
要不然在出现Error Message后,回车,SO line item中值不可修改,具体原因我也没深究,只是在Debug的时候发现FCODE_GLEICHE_SEITE的值为ENT1, 通过 t-code VFBS 可以知道它是Continue的意思,在报完Message后,系统会根据这个FCODE做一些操作。
4. 修改 USEREXIT_CHECK_XVBAP
在VA01 / VA02中系统每接受一个ITEM, 都会调用这个User Exit来check其中的数据,这里要注意的是要用这样的语句来获得当前的有效行数:
LOOP AT XVBAP TRANSPORTING NO FIELDS
WHERE UPDKZ NE 'D'
AND ABGRU = SPACE.
ADD 1 TO LV_LINE_AMT.
ENDLOOP.
这里报Message时Message Type要用 "I", 要不对于Bundle/BOM物料就会因得不到后续处理而产生问题 另这里不需要修改FCODE.
参考
http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/content.htm
分享到:
相关推荐
在SAP系统中,BAPI(Business Application Programming Interface)是一种标准接口,允许外部应用程序与SAP系统进行交互,包括创建、更改和查询业务数据。在本案例中,我们需要利用BAPI_SALESORDER_CHANGE来修改销售...
8. 通过e-mail(sales@eurotech.it)和官方网站(***)可以联系Eurotech S.p.A.获取更多关于该模块的信息。 综上所述,知识点主要围绕EuroTech COM-1286模块的技术规格、硬件组成、通信能力、应用领域以及配置选项...
在调用BAPI_SALESORDER_CREATEFROMDAT2接口时,需要传入订单头信息、项目信息、伙伴信息和计划信息等参数。在本例中,我们首先定义了订单头信息、项目信息、伙伴信息和计划信息的结构字段,然后将这些字段赋值。最后...
ERP系统信息化资料:SAP专业培训教材SD+SALES+ORDER+PROCESS-en.ppt
培训文件提供了从2010-02到2011-02各个商店和部门的每周销售数据。 对于每折,目标是根据当时的可用销售数据预测未来8周的销售数据(即,预测范围为2个月)。 这是通过调用mypredict()函数完成的。 然后,将与...
摘要信息中,我们可以了解到HCS-Pre-sales-IP 2021的考试大纲和考试题目,涵盖了TCP/IP网络协议、网络HCS-Pre-sales等知识点。 知识点1: 交换机的包转发率/转发能力 交换机的包转发率/转发能力是衡量交换机性能的...
MerchantSalesOrderMerchantUserGui模块 MerchantSalesOrderMerchantUserGui提供Zed UI界面用于商家销售订单管理。...composer require spryker/merchant-sales-order-merchant-user-gui 文献资料
Matlab和Python均可使用实现 入门 要使用代码,请使用以下命令: git clone https://github.com/Moh-Joshaghani/The-Sales-Person-Problem-TSP-SOM-Self-Organizing-MAP.git 运行Python实现 要运行,只需运行main.py...
8. **Vice-President of Marketing/Sales** - 市场/销售副总裁,负责制定和执行公司的市场与销售战略。 ### 工作经验与职位描述 1. **Work Experience/History** - 工作经验/历史,记录个人职业生涯中的工作经历。...
git clone https://github.com/colinbut/sales-order-system.git 进行本地构建 mvn clean package ...将编译源代码,打包战争文件 运行应用程序 进入在线应用程序目录并执行以下命令: mvn tomcat7:run-war 使用...
商店的销售受到许多因素的影响,包括促销,竞争,学校和州假期,季节性和地区性。成千上万的个人经理根据他们的独特情况预测销售额,结果的准确性可能会大相径庭。 test.csv sample_submission.csv store.csv ...
HCS-Pre-sales-数通L2安全题库,去考试一定要背题库
截屏安装打开文件path/to/magento/app/design/frontend/default/default/template/sales/order/info.phtml和第 52 行,在 div order-info添加代码<?php echo $this->getLayout()->createBlock('core/template')->...
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact ...
61. TAM (Total Available Market) - 总可用市场:某一产品或服务的最大潜在市场规模。 62. TT (Telegraphic Transfer) - 电汇:通过电子方式转账资金。 63. UTS (Units to Stock) - 存货单位:用于库存管理的计量...
https://stacksocial.com/sales/the-complete-computer-vision-course-with-python Have you ever wondered how things like self-driving cars, Google image searches, Snapchat and Instagram filters are ...
总的来说,"Predict Future Sales"项目涉及了从数据预处理到模型构建、评估和部署的完整流程,是学习和实践数据科学与机器学习的绝佳案例。通过Python强大的数据处理和分析工具,我们可以有效地解决这一实际问题,为...
IBM ^ Certified Specialist - pSeries Solution Sales IBM Certified Specialist - RS/6000 Solution Sales IBM Certified Specialist - RS/6000 SP and PSSP V3 RS/6000 SP - Sales Qualification IBM ...