需求:S4在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’。

判断流程:是否有入库凭证

     如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能新增一条PBXX的条件,这里判断时

             还要判断有没有PBXX或者只有PB00.

找增强的位置SMOD,然后搜索包ME包含的增强点,这个增强的位置就在

CMOD创建一个项目,填入增强点用于管理。双击ZXM06U43创建就行,直接在这里写代码。

最后附上代码

注意:使用的是S4环境,获取采购订单条件的表不一样,S4的是PRCD_ELEMENTS,ecc的好像是KONV.

*&---------------------------------------------------------------------*
*& 包含 ZXM06U43
*&---------------------------------------------------------------------* data: sum_menge type ekbe-menge. if sy-tcode = 'ME22N' or sy-tcode = 'ME22'. loop at tekpo. "判断是否有入库记录
select menge,shkzg into table @data(lt_ekbe)
from ekbe
where ebeln = @tekpo-ebeln
and ebelp = @tekpo-ebelp
and bewtp = 'E'. loop at lt_ekbe assigning field-symbol(<ls_ekbe>).
if <ls_ekbe>-shkzg = 'S'.
sum_menge = sum_menge + <ls_ekbe>-menge.
else.
sum_menge = sum_menge - <ls_ekbe>-menge.
endif.
endloop. check sum_menge > ."有入库记录
sum_menge = . select kposn, "项目
kschl, "条件类型
kbetr "价格
into table @data(lt_price)
from prcd_elements
where knumv = @i_ekko-knumv
and kposn = @tekpo-ebelp. read table lt_price assigning field-symbol(<ls_price>) with key kposn = tekpo-ebelp "是否有新增条件
kschl = 'PBXX'.
if sy-subrc = . read table tkomv assigning field-symbol(<ls_komv>) with key kschl = 'PBXX'.
if sy-subrc = .
if <ls_price>-kbetr <> <ls_komv>-kbetr. "修改了价格
message e899(mm) with tekpo-ebeln tekpo-ebelp '由于已经收货,不允许修改价格。'.
endif. else. "删除了价格
message e899(mm) with tekpo-ebeln tekpo-ebelp '由于已经收货,不允许修改价格。'.
endif. else."原po没有新增条件价格, read table tkomv with key kschl = 'PBXX' transporting no fields.
if sy-subrc = . "新增了价格
message e899(mm) with tekpo-ebeln tekpo-ebelp '由于已经收货,不允许修改价格。'.
endif.
endif.
endloop. endif.

在CMOD激活这个增强就行了。

作者:明光烁亮
出处:http://www.cnblogs.com/hezhongxun/

微信号:HEme922 欢迎加好友一起交流SAP! 视频资料共享。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

SAP采购订单入库后不允许修改单价增强的更多相关文章

  1. 【MM系列】SAP 采购订单收货后不能修改价格的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...

  2. 【MM系列】SAP 采购订单的批量修改

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改   前言 ...

  3. 【ABAP系列】SAP 销售订单的行项目里条件的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 销售订单的行项目里条件的 ...

  4. SAP采购订单历史明细报表源代码(自己收藏)

    SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } ...

  5. SAP采购订单审批记录增强

    采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...

  6. SAP采购订单屏幕增强

    转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...

  7. SAP 采购订单收货时报错:对于采购订单xxxx无收货可能

    因为这个问题查了挺长时间,所以写在博客里记录下. 报错详细: 每个公司的配置不同,我公司遇到的这个问题原因是这里的确认控制是从信息记录带过来的,问题解决方法是,修改下确认控制的选项: 修改确认控制的后 ...

  8. SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0

    1.sm30 维护 视图 TCVIEW 修改对应字段的显示长度

  9. U811.1接口EAI系列之三--采购订单生成--VB语言

    采购订单业务,下面是具体代码与参数说明: 下面调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html 作者:王春天 2013-10-31 ...

随机推荐

  1. 前端之jQuery基础篇02-事件

    什么是事件: 在元素上移动鼠标. 选取单选按钮 点击元素 常见的DOM事件: 鼠标事件:click() 当鼠标单击发生click事件 : <!DOCTYPE html> <html& ...

  2. css过渡和2d详解及案例

    css过渡和2d详解及案例(案例在下方,不要着急) 本文重点: 1.在2D变化使用过程中,有些需求需要两种或两种以上的变化同时使用, 值得注意的是尽量把位移变化放在最前面,把其他变化放在最后面,属性值 ...

  3. Educational Codeforces Round 83 (Rated for Div. 2)

    A. Two Regular Polygons 题意:给你一个 正n边形,问你能否以这个 n 的其中一些顶点组成一个 m边形, 思路 :如果 n % m == 0 ,就可 收获:边均分 B. Bogo ...

  4. A. Remainder Codeforces Round #560 (Div. 3)

    A. Remainder Codeforces Round #560 (Div. 3) You are given a huge decimal number consisting of nn dig ...

  5. 【Java技术系列】爱情36技之Bug大战

    1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...

  6. C++中的map

    c++中的map类型变量不能为const类型 示例 struct INST{ string name; string type; string func; }; map<string, INST ...

  7. input radio点击选中再点击取消

    这里主要说一下这个jquery中的data()方法,个人感觉这个方法平时挺少用到的,所以说一说,按照官方的解释就是 向元素附加数据,然后取回该数据; 嗯,是的,就是这么简单. 那这里说一下这个方法的使 ...

  8. 页面静态化--Thymeleaf

    1.Thymeleaf简介 官方网站:https://www.thymeleaf.org/index.html Thymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎. Thy ...

  9. Vulnhub DC-2靶机渗透

    信息搜集 nmap扫描端口 nmap -sV 192.168.146.140 -p1-10000 开了80端口,那就直接访问一下把.(7744端口是ssh端口,之后会用到) 输入ip,发现url处变成 ...

  10. flask 入门 之 Python Shell (一)

    1.安装插件: pip install flask_script 2.代码: #encoding:utf-8 from flask_sqlalchemy import SQLAlchemy from ...