MIGO过账

      BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码

      创建物料凭证项目字段 XSTOB  使用冲销移动类型标识符 ,这个字段赋值X:比如数据移动类型261MIGO过账之后可以显示在262,不赋值的话不会改变移动类型  

 

DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC.      "物料凭证编号

  DATA: GMHEAD LIKE BAPI2017_GM_HEAD_01.

  DATA: BEGIN OF GMCODE.
          INCLUDE STRUCTURE BAPI2017_GM_CODE.
  DATA: END OF GMCODE.

  GMCODE-GM_CODE = '04'.    

  ***********gmcode-gm_code取值含义*******
  ********01     MB01
  ********02     MB31
  ********03     MB1A
  ********04     MB1B
  ********05     MB1C
  ********06     MB11
  ********07     MB04
                   

  DATA: BEGIN OF MTHEAD.
          INCLUDE STRUCTURE BAPI2017_GM_HEAD_RET.
  DATA: END OF MTHEAD.

  DATA: BEGIN OF ITAB OCCURS 100.
          INCLUDE STRUCTURE BAPI2017_GM_ITEM_CREATE.
  DATA: END OF ITAB.

  DATA: BEGIN OF ERRMSG OCCURS 10.
          INCLUDE STRUCTURE BAPIRET2.
  DATA: END OF ERRMSG.

  "CLEAR: MAT_DOC, GMHEAD, GMCODE, MTHEAD, ITAB[], ERRMSG[].

  GMHEAD-PSTNG_DATE = SY-DATUM.                 "凭证中的过帐日期  
  GMHEAD-DOC_DATE = SY-DATUM.                   "凭证中的凭证日期
  GMHEAD-PR_UNAME = SY-UNAME.

  LOOP AT SHOW_TAB WHERE SEL_COL = 'X'.
*    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*      EXPORTING
*        INPUT  = SHOW_TAB-MATNR
*      IMPORTING
*        OUTPUT = SHOW_TAB-MATNR.
*    IF SY-SUBRC = 0..
*
*    ENDIF.

    ITAB-MATERIAL = SHOW_TAB-MATNR.          "物料号
    ITAB-PLANT = SHOW_TAB-WERKS.             "工厂
    ITAB-STGE_LOC = SHOW_TAB-ZLGORTO.        "库存地点
    "ITAB-COSTCENTER = '1000'.       "成本中心
    ITAB-BATCH = SHOW_TAB-CHARG.             "批次
    ITAB-ENTRY_QNT = SHOW_TAB-MENGE.         "实领数量
    ITAB-ENTRY_UOM = SHOW_TAB-MEINS.         "单位
    "ITAB-MOVE_TYPE = SHOW_TAB-ZLLTYPE.        "移动类型
    ITAB-MOVE_TYPE = '311'.        "移动类型
*  ITAB-mvt_ind = 'O'.
    ITAB-MOVE_MAT = SHOW_TAB-MATNR.            "收货/发货物料号
    ITAB-MOVE_PLANT = SHOW_TAB-WERKS.          "收货/发货工厂
    ITAB-MOVE_STLOC = SHOW_TAB-ZLGORTI.        "收货/发货物料仓库
*  ITAB-no_more_gr = 'X'.        "交货完成标识
    APPEND ITAB.
  ENDLOOP.


  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      GOODSMVT_HEADER  = GMHEAD
      GOODSMVT_CODE    = GMCODE
*     TESTRUN          = ' '
*     GOODSMVT_REF_EWM =
    IMPORTING
      GOODSMVT_HEADRET = MTHEAD
      MATERIALDOCUMENT = MAT_DOC                                   "所产生的物料凭证号    但是必须经过BAPI_TRANSACTION_COMMIT才能查询到该凭证号
*     MATDOCUMENTYEAR  =
    TABLES
      GOODSMVT_ITEM    = ITAB                               "关键表  必须填写正确
*     GOODSMVT_SERIALNUMBER         =
      RETURN           = ERRMSG                                               "报错信息表
*     GOODSMVT_SERV_PART_DATA       =
*     EXTENSIONIN      =
    .

*  IF ERRMSG[] IS INITIAL.
*    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*      EXPORTING
*        WAIT = 'X'
**      IMPORTING
**       RETURN        =
*      .
*    DATA: L_MESS(100).
*    CONCATENATE '过账成功,凭证号:' MAT_DOC INTO L_MESS.
*    MESSAGE L_MESS TYPE 'S' .
*  ELSE.
*    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
**     IMPORTING
**       RETURN        =
*      .
*  ENDIF.

  READ TABLE ERRMSG WITH KEY TYPE = 'E'.
  IF  SY-SUBRC = 0.
    MESSAGE ERRMSG-MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
    "SHOW_TAB-POST = ''.
  ELSE.   
   "必须成功执行 BAPI_GOODSMVT_CREATE    不然会在MIGO查不到  生成的凭证号  MAT_DOC
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT = 'X'.
    DATA: L_MESS(100).
    CONCATENATE '过账成功,凭证号:' MAT_DOC INTO L_MESS.
    MESSAGE L_MESS TYPE 'S' .
    "SHOW_TAB-POST = 'X'.
  ENDIF.

好文要顶 关注我 收藏该文 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值