公司间需要买卖操作,由于发货和收货都是同一批人在操作,为了减少业务人员的工作量,提高工作效率,特实现以上功能

1、增强实现:增强点为交货单过账成功时触发,在提交前触发,如果遇到不可预知问题,可能造成数据不一致,所以在过账成功后触发,效果更好。

2、BADI增强:DELIVERY_PUBLISH:数据库更新期间交货数据的公告,采用方法:PUBLISH_AFTER_SAVE

3、功能实现:由于该增强没有参数,所以问题的关键是业务数据的获取,采用以下方法获取,其他功能就大家自己具体去实现了,这里只是把关键的地方粘贴出来:

FIELD-SYMBOLS : <V_VBELN> TYPE LIKP-VBELN.
  FIELD-SYMBOLS : <V_LFART> TYPE LIKP-LFART.
  FIELD-SYMBOLS : <V_LFDAT> TYPE LIKP-LFDAT.
  FIELD-SYMBOLS : <V_VKBUR> TYPE LIKP-VKBUR.
  FIELD-SYMBOLS : <V_MBLNR> TYPE EMKPF-MBLNR.
  DATA : V_VAL TYPE STRING VALUE '(SAPMV50A)LIKP-VBELN'.
  DATA : V_VAL1 TYPE STRING VALUE '(SAPMV50A)LIKP-LFART'.

DATA : V_VAL2 TYPE STRING VALUE '(SAPMV50A)LIKP-WADAT_IST'.
  DATA : V_VAL3 TYPE STRING VALUE '(SAPMV50A)emkpf-MBLNR'.
  DATA : V_VAL4 TYPE STRING VALUE '(SAPMV50A)LIKP-VKBUR'.
  CLEAR:C_VBELN,C_LFART,C_BUDAT,C_MBLNR,C_YEAR,C_JZRQ,
        C_CPZH,C_WERKS,C_LGORT.
  DATA:I_LOG TYPE TABLE OF ZMDLOG,
       W_LOG TYPE ZMDLOG.
*********获取交货类型
  ASSIGN (V_VAL1) TO <V_LFART>.
  MOVE <V_LFART> TO C_LFART.
*********获取物料凭证
  ASSIGN (V_VAL3) TO <V_MBLNR>.
  MOVE <V_MBLNR> TO C_MBLNR.
*********获取交货单号
  ASSIGN (V_VAL) TO <V_VBELN>.
  MOVE <V_VBELN> TO C_VBELN.
*********销售办公室
  ASSIGN (V_VAL4) TO <V_VKBUR>.
  MOVE <V_VKBUR> TO C_VKBUR.

4、采购订单自动生产使用BAPI:BAPI_PO_CREATE1

5、采购收货使用BAPI:BAPI_GOODSMVT_CREATE

6、当需要交货单冲销时,增强点为交货过账冲销前,要先保证采购收货冲销成功并删除采购订单,才能执行过账冲销,这样才能保证数据的连续性,采购入库冲销的BAPI:BAPI_GOODSMVT_CANCEL

注意:当交货过账成功,采购订单没有生产时,我们要扑捉异常,同时冲销交货单这样才能保证数据的一致性。

SAP交货单过账自动生产采购订单、采购订单自动收货入库的更多相关文章

  1. ecshop 订单-》设置默认收货地址,或者删除

    设置位置:ecs_users标的   country字段,默认是0,默认地址是 users_address 的address_id 设置默认收货地址 /** * 设置默认地址 * * @access ...

  2. 【MM系列】SAP MM模块-分析采购收货完成标识

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-分析采购收货完成标 ...

  3. SAP MM 公司间STO发货单输出报错 - 合并工厂AUC1和存储位置6002没有货物收货地点 - 之对策

    SAP MM 公司间STO发货单输出报错 - 合并工厂AUC1和存储位置6002没有货物收货地点 - 之对策 昨天收到客户业务部门报错,说是业务对交货单0080022298做POD失败.相关交货单的输 ...

  4. 【MM系列】SAP MM模块-收货自动创建采购订单

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-收货自动创建采购订 ...

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

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

  6. SAP MM 标准采购组织的分配对于寄售采购订单收货的影响

    SAP MM 标准采购组织的分配对于寄售采购订单收货的影响 PO 4100004022 是一个寄售的采购订单, 采购组织是CSAS, 工厂代码SZSP.采购信息记录也是有的, MIGO试图对该采购订单 ...

  7. SAP MM 明明已经扩展供应商到采购组织下,采购订单里还是报错?

    SAP MM 明明已经扩展供应商到采购组织下,采购订单里还是报错? 如下的PO 4400000069,处于HELD状态.ME22N试图保存它为一个正式的采购订单,报错说供应商没有在采购组织下维护, 使 ...

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

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

  9. SAP MM已经转成PO的采购申请Item依旧可以被删除?

    SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...

随机推荐

  1. SCOI2009生日快乐

    竟然是搜索……囧 还以为是什么神题…… uses math; var x,y:extended; n:longint; function find(x,y:extended;z:longint):ex ...

  2. [swustoj 1095] 挖金子

    挖金子(1095) 题目描述 你在一个N*M的区域中,一开始在(1,1)的位置,每个位置有可能有金子,也有可能不能到达,也有可能有传送门.你只能往右或者下走,不能走出这个区域.当你位于传送门时,传送门 ...

  3. FZU1686 神龙的难题 dancing links 重复覆盖

    分析:每次可以打一个小矩阵的怪,然后把每个怪看成一列,然后每个小矩阵看成一行,枚举左上角就行 注:然后注意总共的节点数是新图的行*列的个数,不是原图 #include<cstdio> #i ...

  4. Velocity是如何工作的

    当在一个应用程序或者servlet中使用Velocity的时候,你要做如下几个工作: 初始化Velocity.Velocity提供2种使用形式,不管是单一实例模式还是单独运行实例模式,初始化过程都只做 ...

  5. C++中Const说明

    最近在看程序员面试宝典,看到const这块感觉有很大疑惑,查了很多资料,可以总结如下: 1.在C语言中 在C语言中,const修饰的变量不具有常量的特性,只是一个不可修改的变量,实质上仍然是变量,在编 ...

  6. 关于贴友的一个书本页面简单布局(html+css)的实现

    贴友需求:以html+css仿照书本的页面实现布局效果(见图) html代码: 1: <!-- 我的博客:http://www.ido321.com --> DOCTYPE HTML> ...

  7. Mysql的函数使用方法

    今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数.碰到了很多问题,为了方便一下使用,在此记录一下. 需求:一张表中,有比分,需要查询出比赛id和比赛结果. 分析:     ...

  8. Linux更改默认jdk

    RHEL默认安装Open JDK--java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64,现在要换成Oracle JDK1.7.0_51 1. (可选)删 ...

  9. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  10. 可学习的多人人脸识别程序(基于Emgu CV)

    源代码下载(需要安装Emgu CV,安装方法请百度) 很多朋友使用Emgu CV遇到CvInvoke()的报错,我找到一种解决方法. 把EmguCV目录下bin里面的所有dll复制到C:\WINDOW ...