收货MIGO_weixin_34290000的博客-程序员秘密

FUNCTION zrfc_mm003.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(CALLNO) TYPE  ZCALLNO
*"     VALUE(BUDAT) LIKE  BAPI2017_GM_HEAD_01-PSTNG_DATE DEFAULT
*"       SY-DATUM
*"     VALUE(BLDAT) LIKE  BAPI2017_GM_HEAD_01-DOC_DATE DEFAULT SY-DATUM
*"  EXPORTING
*"     VALUE(FLAG) LIKE  BAPIRET2-TYPE
*"     VALUE(MESSAGE) LIKE  BAPIRET2-MESSAGE
*"  TABLES
*"      ZGOODSMVT STRUCTURE  ZGOODSMVT
*"      ZMSEG STRUCTURE  ZMSEG
*"----------------------------------------------------------------------
DATA:ls_goodsmvt_header LIKE bapi2017_gm_head_01,
     ls_goodsmvt_code   LIKE bapi2017_gm_code VALUE '01',
     lt_goodsmvt_item   LIKE TABLE OF bapi2017_gm_item_create,
     ls_goodsmvt_item   LIKE LINE  OF lt_goodsmvt_item,
     lt_zgoodsmvt       LIKE TABLE OF zgoodsmvt,
     ls_zgoodsmvt       LIKE LINE  OF lt_zgoodsmvt,
     ls_mvt_ind         LIKE bapi2017_gm_item_create-mvt_ind VALUE 'B', "采购订单收货
     ls_ex_headret      LIKE bapi2017_gm_head_ret,
     lv_mat_doc         LIKE bapi2017_gm_head_ret-mat_doc,
     lv_doc_year        LIKE bapi2017_gm_head_ret-doc_year,
     lv_message         LIKE bapiret2-message,
     lv_bwart           LIKE mseg-bwart VALUE '101'.
DATA: entry_qnt(16),
      lv_datano         TYPE zdatano,
      lt_zmms003        TYPE TABLE OF zmms003,
      ls_zmms003        TYPE zmms003.

DATA: lt_zmmt002        TYPE TABLE OF zmmt002,                          "记录会计凭证
      ls_zmmt002        TYPE zmmt002,
      lv_awkey          TYPE awkey,
      lv_bukrs          TYPE bkpf-bukrs,                                "公司代码
      lv_belnr          TYPE bkpf-belnr,                                "会计凭证号
      lv_gjahrs         TYPE bkpf-gjahr,                                "会计年度号
      lv_blart          TYPE bkpf-blart.                                "会计凭证类型

     ls_goodsmvt_header-pstng_date = budat.                             "过账日期
     ls_goodsmvt_header-doc_date   = bldat.                             "凭证日期

     lt_zgoodsmvt = zgoodsmvt[].
     LOOP AT lt_zgoodsmvt INTO ls_zgoodsmvt.
      ls_goodsmvt_item-move_type = lv_bwart .                           "移动类型
      ls_goodsmvt_item-entry_qnt = ls_zgoodsmvt-entry_qnt.              "收货数量
      ls_goodsmvt_item-po_number = ls_zgoodsmvt-po_number.              "采购订单编号
      ls_goodsmvt_item-po_item   = ls_zgoodsmvt-po_item.                "采购订单项目
      ls_goodsmvt_item-mvt_ind   = ls_mvt_ind.                          "
      ls_goodsmvt_item-item_text = ls_zgoodsmvt-sgtxt.                  "项目文本,这边传输的是预算号
      APPEND ls_goodsmvt_item TO lt_goodsmvt_item.

      ls_zmms003-bstnr           = ls_zgoodsmvt-po_number.              "采购订单编号
      ls_zmms003-ebelp           = ls_zgoodsmvt-po_item.                "采购订单项目
      ls_zmms003-xref2           = ls_zgoodsmvt-xref2.                  "参考码2(预算号)
      ls_zmms003-zuonr           = ls_zgoodsmvt-zuonr.                  "分配(ECM单号+username)
      APPEND ls_zmms003 TO lt_zmms003.
      CLEAR: ls_goodsmvt_item,ls_zmms003.
     ENDLOOP.

*--内存传输参考码2 和ECM单号
EXPORT  zrfc_mm003 = lt_zmms003  TO  MEMORY ID 'ZRFC_MM003'.

*收货过账
CLEAR:gt_return,ls_ex_headret,lv_mat_doc,lv_doc_year.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
  EXPORTING
    goodsmvt_header               = ls_goodsmvt_header
    goodsmvt_code                 = ls_goodsmvt_code
 IMPORTING
   goodsmvt_headret               = ls_ex_headret
   materialdocument               = lv_mat_doc
   matdocumentyear                = lv_doc_year
  TABLES
    goodsmvt_item                 = lt_goodsmvt_item
    return                        = gt_return.

  READ TABLE gt_return INTO gs_return WITH KEY type = 'E'.
  IF sy-subrc NE 0.
    flag = 'S'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.

*    mat_doc  = lv_mat_doc.                                              "物料凭证
*    doc_year = lv_doc_year.                                             "年度
    CONCATENATE '生成凭证号:' lv_mat_doc '年度:' lv_doc_year INTO message.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    LOOP AT gt_return INTO gs_return WHERE type CA 'AEX'.
        MESSAGE ID     gs_return-id
                TYPE   gs_return-type
                NUMBER gs_return-number
                WITH   gs_return-message_v1 gs_return-message_v2
                       gs_return-message_v3 gs_return-message_v4
                       INTO lv_message.
        CONCATENATE message lv_message INTO message SEPARATED BY ''.
    ENDLOOP.
    SHIFT message LEFT DELETING LEADING  ''.
    flag = 'E'.
  ENDIF.

*--产生的物料凭证项目信息
  IF flag = 'S'.
     SELECT mblnr  mjahr  zeile INTO TABLE zmseg[] FROM mseg
       WHERE mblnr = lv_mat_doc
        AND  mjahr = lv_doc_year.
  ENDIF.

*---记录暂估会计凭证
  CLEAR: lv_awkey,lv_bukrs,lv_belnr,lv_gjahrs,lv_blart.
  CONCATENATE lv_mat_doc lv_doc_year INTO lv_awkey.

IF lv_awkey IS NOT INITIAL.
SELECT SINGLE bukrs belnr gjahr blart INTO (lv_bukrs,lv_belnr,lv_gjahrs,lv_blart)
  FROM bkpf WHERE awtyp = 'MKPF'
             AND  awkey = lv_awkey.
ENDIF.

SELECT  bukrs belnr gjahr buzei zuonr sgtxt xref1 xref2 xref3
  INTO CORRESPONDING FIELDS OF TABLE lt_zmmt002
  FROM bseg
  WHERE bukrs  = lv_bukrs
  AND   belnr  = lv_belnr
  AND   gjahr  = lv_gjahrs.

  ls_zmmt002-blart = lv_blart.
  MODIFY lt_zmmt002 FROM  ls_zmmt002 TRANSPORTING blart WHERE blart IS INITIAL .

  INSERT zmmt002 FROM TABLE lt_zmmt002.
  IF sy-subrc = 0.
     COMMIT WORK AND WAIT.
  ELSE.
     ROLLBACK WORK.
  ENDIF.


*----记录日志
  CLEAR:gt_log,gs_log,ls_zgoodsmvt,entry_qnt.

  LOOP AT lt_zgoodsmvt INTO ls_zgoodsmvt.
   lv_datano     = lv_datano + 1.
   gs_log-datano = lv_datano.
   gs_log-name   = 'ZRFC_MM003'.
   gs_log-cdate  = sy-datum.
   GET TIME.
   gs_log-ctime  = sy-uzeit.
   gs_log-callno = callno.
   gs_log-flag   = flag.
   gs_log-log    = message.
   entry_qnt = ls_zgoodsmvt-entry_qnt.
   CONCATENATE budat bldat
     entry_qnt  ls_zgoodsmvt-po_number ls_zgoodsmvt-po_item
     ls_zgoodsmvt-sgtxt
     ls_zgoodsmvt-xref2
     ls_zgoodsmvt-zuonr
   INTO gs_log-content SEPARATED BY '|'.

   CLEAR ls_goodsmvt_item.
   CONDENSE gs_log-content NO-GAPS.
   gs_log-length = STRLEN( gs_log-content ).
   APPEND gs_log TO gt_log.
   CLEAR:gs_log,ls_zgoodsmvt,entry_qnt.
  ENDLOOP.

 IF gt_log IS NOT INITIAL.
   INSERT zrfc_mm01in_log FROM TABLE gt_log.
   IF sy-subrc = 0.
     COMMIT WORK.
   ENDIF.
 ENDIF.


ENDFUNCTION.

 

转载于:https://www.cnblogs.com/caizjian/p/6074203.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34290000/article/details/93240627

智能推荐

PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略_Type_C_Ken的博客-程序员秘密_ps186芯片

PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略两年前谱瑞(Parade)收购睿思科技(Fresco Logic)的时候,没有人会想到,扩展坞行业老大已经准备好主动发起价格战了。

(二)Nginx安装配置、部署前端项目_韩亮老师的博客-程序员秘密_nginx 配置前端

​1、官网下载nginx安装文件,并上传 master节点的 /mnt/tools/文件夹下下载地址:[https://nginx.org/download/nginx-1.18.0.tar.gz](https://nginx.org/download/nginx-1.18.0.tar.gz)​2、解压tar -zvxf /mnt/tools/nginx-1.18.0.tar.gz -C /mnt/training/3、配置安装模块:#进入/mnt/training/nginx-1.18

MLAG与vPC之间有什么区别?_audrey-luo的博客-程序员秘密_mlag

如今,越来越多的企业开始利用数据中心虚拟化来降低成本和简化数据流,而为了确保数据可以在数据中心和业务位置之间实现无缝传输,网络容量需求将会大大增加。为了适应这种趋势发展,业界正在寻找通过连接尽可能多的网络设备来增强网络容量的方法,例如,MLAG和vPC,这两种链路聚合技术可连接多台以太网交换机,增加网络容量。那么您了解它们吗?两者之间有何不同?本文将对此展开全面的介绍。MLAG是什么?MLAG(多机箱链路聚合)是一种启用来自主机的二层多路径以获得额外的带宽或链路弹性的非标准协议,由于该协议是一种公共

CISCO数据中心虚拟化之vPC技术和配置_achejq的博客-程序员秘密

最近在研究数据中心功能时发现CISCO有一个虚拟化技术叫vPC的技术,今天就把我研究的成果分享出来。什么是vPC(virtual port channel)?研究了大半天,其实它就是一个可以跨不同设备的port-channel技术。它的作用:可以实现网络冗余,可以跨设备进行端口聚合,增加链路带宽,当链路故障时比生成树协议收敛时间还快。下面我们就说说为什么会出现vPC技术。如上图所示

h5外卖源码php_从零搭建外卖CPS平台小程序开发_m0_56783267的博客-程序员秘密

直到看到了一个好友分享到外卖 CPS,觉得这是一个机会,不仅任何地方都可以做,而且门槛相对较低。所以我最近分析了将近 30 个外卖大号,分析了他们的引流流程,总结一下他们有哪些可以值得我们借鉴的地方。希望对大家有所启发。当然最主要的还是着手去做。外卖cps带分销返利源码源代码地址http://www.mybei.cn搭建步骤下载以上源代码到本地http://www.mybei.cn成品展示截图步骤下载以上源代码到本地http://www.mybei.cn修改为你自己的微信

随便推点

网页中文本朗读功能开发实现_Flyo_x的博客-程序员秘密

作者:依韵https://blog.cdswyda.com/post/2017120914摘自微信公众:FrontDev前几天完成了一个需求,在网页中完成鼠标指向哪里,就用语音读出所指的文本。如果是按钮、链接、文本输入框,则还还要给出是什么的提醒。同时针对大段的文本,不能整段的去读,要按照标点符号进行断句处理。重点当然就是先获取到当前标签上的文本,再把文本转化成语音即可。标签朗读这个很简单了,只用...

Python pip install 常见问题处理_虫师魁拔的博客-程序员秘密

一、安装 python 第三方库超时安装失败日志中提示Read timed out 、 wait timeout 之类文字,这一般是由于网络等因素,导致下载等待超时。可以修改下载源,或者是延长下载等待超时时间1、修改下载源(针对部分由于国外下载源)阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/豆瓣 http://pypi.dou.

python class和class(object)用法区别-(转)_小白笑苍的博客-程序员秘密

# -*- coding: utf-8 -*-# 经典类或者旧试类class A: passa = A()# 新式类class B(object): passb = B()# python2不支持# print(A.__class__)print(a.__class__)print(type(A))print(type(a))# python2# __main__.

日语中的接打电话礼貌用语_方长存的博客-程序员秘密

1 接电话的场合& おはようございます、○○会社です。& はい、○○会社でございます。& はい、○○会社、田中がうけたまわっております。& おはようございます、○○会社、××部でございます。 2 打电话的场合& おはようございます、いつもお世话になります、○○社の铃木と申しますが。 & いつもお世话になっております、私○○社の铃木と申しますが。顾客に対して电话応

PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略_Type_C_Ken的博客-程序员秘密_ps186芯片

PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略两年前谱瑞(Parade)收购睿思科技(Fresco Logic)的时候,没有人会想到,扩展坞行业老大已经准备好主动发起价格战了。

Linux系统I/O模型和网络I/O模型_白-胖-子的博客-程序员秘密

计算机I/OI/O在计算机中指Input/Output,Linux服务器 I/O 原理和流程内核空间和用户空间数据交换具体参见:https://blog.csdn.net/timonium/article/details/117775331Linux系统I/O模型和网络I/O模型基于Linux服务器I/O原理提出的数据交换模式架构说人话:IO模型就是一种数据传递的设计方案太长不看版本同步和异步同步:使用天然气老水壶烧水,得盯着异步:使用物联网电水壶烧水,水烧开了自动停了还

推荐文章

热门文章

相关标签