0
点赞
收藏
分享

微信扫一扫

BAPIBAPI_GOODSMVT_CREATE_SA

boomwu 2022-10-12 阅读 188


BAPI_GOODSMVT_CREATE

物料移动,比如MB1B

'343' "unblock

'344' "block



参考代码


*&BAPI

  DATA: goodsmvt_header   LIKE  bapi2017_gm_head_01,

        goodsmvt_code     LIKE  bapi2017_gm_code.

  DATA: goodsmvt_headret  LIKE  bapi2017_gm_head_ret,

        materialdocument  TYPE  bapi2017_gm_head_ret-mat_doc,

        matdocumentyear   TYPE  bapi2017_gm_head_ret-doc_year.


  DATA:goodsmvt_item         LIKE TABLE OF bapi2017_gm_item_create  WITH HEADER LINE,

       goodsmvt_serialnumber LIKE TABLE OF bapi2017_gm_serialnumber WITH HEADER LINE,

       return                LIKE TABLE OF bapiret2                 WITH HEADER LINE.


  FIELD-SYMBOLS LIKE LINE OF goodsmvt_item.

  DATA:lv_item_line            TYPE int4.



  CHECK it_data[] IS NOT INITIAL.


*抬头部分给值:

  CLEAR: goodsmvt_item[],goodsmvt_header.

  REFRESH: goodsmvt_item.


  IF is_post_date-budat IS NOT INITIAL.

    goodsmvt_header-pstng_date = is_post_date-budat.

  ELSE.

    goodsmvt_header-pstng_date = sy-datum.

  ENDIF.


  IF is_post_date-bldat IS NOT INITIAL.

    goodsmvt_header-doc_date = is_post_date-bldat.

  ELSE.

    goodsmvt_header-doc_date = sy-datum.

  ENDIF.


  goodsmvt_header-pr_uname = sy-uname.

  goodsmvt_code = '04'.


*行项目部分给值


  LOOP AT it_data INTO ls_data .



      goodsmvt_item-material    = ls_data-matnr.

      goodsmvt_item-plant       = ls_data-werks.

      goodsmvt_item-stge_loc    = ls_data-lgort.

      goodsmvt_item-move_type   = iv_move_type.

      goodsmvt_item-move_plant  = ls_data-werks.

      goodsmvt_item-move_stloc  = ls_data-lgort.

      goodsmvt_item-entry_qnt   = 1.            "gearbox  ,only 1



      READ TABLE goodsmvt_item ASSIGNING

        WITH KEY  material    = ls_data-matnr

                  plant       = ls_data-werks

                  stge_loc    = ls_data-lgort

                  move_type   = iv_move_type

                  move_plant  = ls_data-werks

                  move_stloc  = ls_data-lgort.


      IF sy-subrc = 0.

        -entry_qnt = -entry_qnt 1.

      ELSE.

        APPEND goodsmvt_item.

      ENDIF.


      DESCRIBE TABLE goodsmvt_item LINES lv_item_line.

      goodsmvt_serialnumber-matdoc_itm = lv_item_line.

      goodsmvt_serialnumber-serialno   = ls_data-sernr. "序列号

      APPEND goodsmvt_serialnumber.

…………………………

endloop。

* call bapi

      CLEAR lv_mblnr.

      CLEAR lv_msg.

      CLEAR lv_block.

      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'

        EXPORTING

          goodsmvt_header       = goodsmvt_header

          goodsmvt_code         = '04'       "#EC * "goodsmvt_code mb1b

        IMPORTING

          materialdocument      = materialdocument

          matdocumentyear       = matdocumentyear

        TABLES

          goodsmvt_item         = goodsmvt_item[]

          goodsmvt_serialnumber = goodsmvt_serialnumber

          return                = return[].


      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

        EXPORTING

          wait = 'X'.


      READ TABLE return WITH KEY type = 'E'.

      IF sy-subrc = 0.

        CALL FUNCTION 'MESSAGE_TEXT_BUILD'

          EXPORTING

            msgid               = return-id

            msgnr               = return-number

            msgv1               = return-message_v1

            msgv2               = return-message_v2

            msgv3               = return-message_v3

            msgv4               = return-message_v4

          IMPORTING

            message_text_output = lv_msg.


      ELSE.

        lv_mblnr = materialdocument.

      ENDIF.

欢迎加入交流群

群号:775662808

​​​​

举报

相关推荐

0 条评论