MV50AFZ1   这个程序里面找个FORM 用户出口,
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
 
用户出口如下:

例:需求:

开发要求:制作交货单的人员,需要同一张单的交货仓位保持一致,设计成在保存前将所有行都改为和第一行项的仓位一致。

在发货过时会检查如发现不一致,不于过账。

*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT_PREPARE *
*---------------------------------------------------------------------*
* This userexit can be used for changes or checks, before a *
* document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at the beginning of form BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM userexit_save_document_prepare. IF sy-uname = 'HS014'.
BREAK-POINT.
ENDIF. "只处理对客户发货,公司间交易不处理.
IF ( tcode = 'VL02N' OR tcode = 'VL02' OR tcode = 'VL01N' OR tcode = 'VL01' ) and ( xlikp-VKORG = '' or xlikp-VKORG = '' ). "DATA: XLIPS_C LIKE LIPSVB OCCURS 0 WITH HEADER LINE.
"DATA: I_LIPS LIKE LIPSVB OCCURS 0 WITH HEADER LINE.
data: c_lgort like xlips-lgort , i_idx type i,i_Cnt type i, msg type string. IF sy-ucomm = 'WABU_T'. "过账 需要检查 如果有不同仓位,则报错.
c_lgort = ''.
i_idx = .
loop at xlips .
if i_idx = . "取得第一行的库位
i_idx = i_idx + .
c_lgort = c_lgort = xlips-lgort.
endif.
if c_lgort <> xlips-lgort.
message '交货单内存在不同的交货仓位,请通知销售助理修改正确后再过账.' type 'E'.
endif.
clear xlips.
endloop.
endif. IF sy-ucomm = 'SICH_T' or sy-ucomm = 'YES' . "如果是保存(或退出提示保存) ,则统一更新仓位.
c_lgort = ''.
i_idx = .
i_Cnt = .
loop at xlips .
if i_idx = . "取得第一行的仓位
i_idx = i_idx + .
c_lgort = c_lgort = xlips-lgort.
if c_lgort = ''.
message '在保存交货单前请填写第一行项的交货仓位' type 'E'.
else.
concatenate '你在第一行项输入的仓是' c_lgort ',增强系统将按此仓位更新所有行项' into msg.
message msg type 'I'.
endif.
endif. if c_lgort <> xlips-lgort.
"更新仓位
xlips-lgort = c_lgort. "更新标识 U 表示该纪录被修改,需要更新,D表示删除,I表示新增
if xlips-updkz = ' '.
xlips-updkz = 'U'.
endif.
modify xlips.
i_Cnt = i_Cnt + . endif.
clear xlips.
endloop.
if i_Cnt > .
msg = i_Cnt .
concatenate '更新了' msg '个行项的仓位' into msg.
message msg type 'I'.
endif.
endif.
ENDIF.
ENDFORM. "USEREXIT_SAVE_DOCUMENT_PREPARE
*eject

20170228 交货单过账增强 MV50AFZ1的更多相关文章

  1. SAP交货单过账自动生产采购订单、采购订单自动收货入库

    公司间需要买卖操作,由于发货和收货都是同一批人在操作,为了减少业务人员的工作量,提高工作效率,特实现以上功能 1.增强实现:增强点为交货单过账成功时触发,在提交前触发,如果遇到不可预知问题,可能造成数 ...

  2. SAP 公司间STO场景中外向交货单过账后自动触发内向交货单功能的实现

    SAP 公司间STO场景中外向交货单过账后自动触发内向交货单功能的实现 如下STO,是从公司代码SZSP转入CSAS, 如下图示的内向交货单180018660.该内向交货单是在外向交货单8001632 ...

  3. 【MM系列】SAP 交货单屏幕增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 交货单屏幕增强   前言部分 ...

  4. SAP交货单增强MV50AFZ1问题

    在MV50AFZ1这个出口的子程序FORM USEREXIT_SAVE_DOCUMENT_PREPARE.中进行了一些控制 当VL01N创建交货单点击保存的时候检查行项目的信息,如果有问题给出TYPE ...

  5. 读取交货单拣配数量PIKMG(转)

    原文链接:https://www.591sap.com/thread-953-1-1.html SAP交货单交货数量在lips中直接读取,但是拣配数量lfimg,只存在vbfa中,且如果基本计量单位和 ...

  6. VL01N发货过账无法冲销

    1业务场景 SD和EWM在使用BAPI:BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后,发现外向交货单无法被冲销,后来发现是在发货过账后,有一个字段VLSTK声明仓库被维护上了 ...

  7. SAP模块常用增强总结{转载}

    MM模块: 采购订单增强: BADI :ME_GUI_PO_CUST ME_PROCESS_PO_CUST 物料凭证增强: BADI:MB_DOCUMENT_BADI USER-EXIT:MBCF00 ...

  8. SAP模块常用增强总结(转)

    转自:http://blog.sina.com.cn/s/blog_4298a2c80102x40c.html MM模块: 采购订单增强: BADI :ME_GUI_PO_CUST ME_PROCES ...

  9. 【ABAP系列】SAP 关于出口(user-exit)MV50AFZ1的一些问题

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 关于出口(user-ex ...

随机推荐

  1. LNMP 之 Nginx负载均衡服务器

    Nginx负载均衡服务器 参考教程:[千峰教育] 准备工作: 三台服务器,每台服务器都需要安装nginx. 1.关闭防火墙 service iptables stop2.关闭Selinux seten ...

  2. 猴子都能懂的git教程链接

    http://backlogtool.com/git-guide/cn/intro/intro1_1.html

  3. Codeforces Round #321 (Div. 2) Kefa and Company 二分

    原题链接:http://codeforces.com/contest/580/problem/B 题意: 给你一个集合,集合中的每个元素有两个属性,$m_i,s_i$,让你求个子集合,使得集合中的最大 ...

  4. QBXT T15565 Day4上午道路分组

    有向并查集维护连通性 优化: vis数组表示能被节点1到达的点 显然,已经分在一个联通块中的点就没必要在用该点扩展了. #include<cstdio> #include<algor ...

  5. [置顶] vue-cli的webpack模板项目配置文件分析

    2017-09-11更新:更新到webpack 2.6.1所对应的配置,完善部分代码注释. 由于最近在vue-cli生成的webpack模板项目的基础上写一个小东西,开发过程中需要改动到build和c ...

  6. IOS_DatePicker_PickerView_SegmentControl_键盘处理

    H:/0712/01_UIController_MJViewController.m // MJViewController.m // 01-总结复习 // Created by apple on 1 ...

  7. ubuntu 安装后的配置

    osx 下用 vmware 安装了一个 ubuntu 虚拟机,版本是 14.04 server.安装完之后要做一系列配置,记录如下. 配置 Android 编译环境 sudo apt-get inst ...

  8. 使用openssl 生成RSA pem格式的公钥私钥

    1.生存私钥 openssl genrsa -des3 -out private_key.pem 1024 2.生成公钥 openssl rsa -in private_key.pem -pubout ...

  9. java线程中断[interrupt()函数] (转载)

    一个正常的线程中断: 从运行到真正的结束,应该有三个阶段: 正常运行. 处理结束前的工作,也就是准备结束. 结束退出. Java曾经提供过抢占式限制中断,但问题多多,例如的Thread.stop.另一 ...

  10. 《TCP/IP具体解释卷2:实现》笔记--UDP:用户数据报协议

    用户数据报协议.即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作仅仅产生一个UDP数据报,从而发送 一个IP数据报. 进程通过创建一个Internet域内的SOCK_DGRAM类型的插口 ...