BAPI_GOODSMVT_CREATE创建带‘E’特殊库存标识的物料凭证

使用 BAPI_GOODSMVT_CREATE创建带“E"特殊库存标识的物料凭证时,一定要记得物料号要补齐0,废话不多说,直接上代码吧。我这里使用移动类型为561 E,所以 goodsmvt_code - gm_code  '05' .(也就是MB1C)。经过S4的测试机测试,成功产生物料凭证,仅供参考。
REPORT  ztest.


*BAPI测试
DATA:  goodsmvt_header  TYPE  bapi2017_gm_head_01,
            goodsmvt_code      TYPE  bapi2017_gm_code.

DATA:  lt_itab  TYPE  TABLE  OF  bapi2017_gm_item_create,
            ls_itab  TYPE  bapi2017_gm_item_create.

DATA:  lt_return  TYPE  TABLE  OF  bapiret2,
            ls_return  TYPE  bapiret2.
DATA:goodsmvt_headret  TYPE  bapi2017_gm_head_ret.
DATA:  ls_materialdocument  TYPE  bapi2017_gm_head_ret-mat_doc.
DATA:matdocumentyear  TYPE  bapi2017_gm_head_ret-doc_year.

START-OF-SELECTION.

    goodsmvt_header-pstng_date  sy-datum.
    goodsmvt_header-doc_date  sy-datum.
    goodsmvt_header-pr_uname  sy-uname.

    goodsmvt_code-gm_code  '05'.

*----------行项目赋值--------------------

    ls_itab-material  '820000005'.      "物料号

    CALL  FUNCTION  'CONVERSION_EXIT_MATN1_INPUT'   ”补齐物料号的前导0
        EXPORTING
            input    ls_itab-material
        IMPORTING
            output  ls_itab-material
    EXCEPTIONS
        LENGTH_ERROR              1
        OTHERS  2
        .
    IF  sy-subrc  <>  0.
Implement  suitable  error  handling  here
    ENDIF.

    ls_itab-plant  '1010'.      "工厂
    ls_itab-stge_loc  '5004'.      "库存地点

    ls_itab-move_type  '561'.      "移动类型

    ls_itab-spec_stock  'E'.    "特殊库存标识

    ls_itab-val_sales_ord  '690000055'.    "销售订单
    CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'    "补齐销售订单的前导0
        EXPORTING
            input    ls_itab-val_sales_ord
        IMPORTING
            output  ls_itab-val_sales_ord.



    ls_itab-val_s_ord_item  '10'.      "销售订单行项

    CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
            input    ls_itab-val_s_ord_item
        IMPORTING
            output  ls_itab-val_s_ord_item.


    ls_itab-entry_qnt  '1'.      "数量
  ls_itab-entry_uom  'PC'.    "单位
    SELECT  SINGLE  meins     "单位有可能和你见到的不一样,干脆直接从mara表中获取吧
        INTO  ls_itab-entry_uom
        FROM  mara
        WHERE  matnr  ls_itab-material.

    APPEND  ls_itab  TO  lt_itab.

    CALL  FUNCTION  'BAPI_GOODSMVT_CREATE'
        EXPORTING
            goodsmvt_header    goodsmvt_header
            goodsmvt_code        goodsmvt_code
        TESTRUN                    '
        GOODSMVT_REF_EWM  =
        IMPORTING
            goodsmvt_headret  goodsmvt_headret
            materialdocument  ls_materialdocument
            matdocumentyear    matdocumentyear
        TABLES
            goodsmvt_item        lt_itab
        GOODSMVT_SERIALNUMBER                  =
            return                      lt_return
        GOODSMVT_SERV_PART_DATA              =
        EXTENSIONIN            =
        .

    IF  sy-subrc  0.
        CALL  FUNCTION  'BAPI_TRANSACTION_COMMIT'
            EXPORTING
                wait  'X'
        IMPORTING
            RETURN                =
            .


        WRITE:  '成功!'.
    ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值