天天看點

KO01 BAPI_INTERNALORDER_CREATE 建立内部訂單

function zfm_erp_011.

*"----------------------------------------------------------------------

*"*"本地接口:

*"  TABLES

*"      T_DATA STRUCTURE  ZFM_ERP_011_DATA

*"----------------------------------------------------------------------

  loop at t_data.

    data i_master_data type bapi2075_7.

    data testrun       type bapi0012_gen-testrun.

    data i_master_datb type bapi2075_7b.

    data e_master_data type bapi2075_2.

    data orderid       type bapi2075_2-order.

    data e_master_datb type bapi2075_7b.

    data srules        type standard table of bapi2075_6.

    data lt_return        type standard table of bapiret2 with header line.

    data extensionin   type standard table of bapiparex with header line.

    i_master_data-order_type = t_data-auart.

    i_master_data-order_name = t_data-ktext. "訂單描述

    i_master_data-co_area = t_data-kokrs. "控制範圍

    i_master_data-order = t_data-aufnr.

    i_master_data-comp_code = t_data-bukrs.

    i_master_data-bus_area = t_data-gsber. "業務範圍

    i_master_data-func_area = t_data-func_area.

    i_master_data-plant = t_data-werks.

    i_master_data-profit_ctr = t_data-prctr.

    i_master_data-respcctr = t_data-kostv. "負責的成本中心

    i_master_data-in_charge_user = t_data-veraa_user. "CO 内部訂單的負責人

    i_master_data-request_cctr = t_data-akstl. "請求成本中心

    i_master_data-currency = t_data-waers.

    i_master_data-applicant = t_data-user0. "申請人

    i_master_data-application_date = t_data-user5. "申請日期

    i_master_data-department = t_data-user6. "部門

*    aktiv

    i_master_datb-objectclass = t_data-scope. "對象類

    i_master_datb-inv_reason = t_data-izwek. "投資原因

    i_master_datb-objectclass = t_data-scope. "對象類

    call function 'BAPI_INTERNALORDER_CREATE'

      exporting

        i_master_data = i_master_data

        testrun       = testrun

        i_master_datb = i_master_datb

      importing

        e_master_data = e_master_data

        orderid       = orderid

        e_master_datb = e_master_datb

      tables

        srules        = srules

        return        = lt_return

        extensionin   = extensionin.

    loop at lt_return where type ca 'AEX'.

      message id lt_return-id type lt_return-type number lt_return-number

      with lt_return-message_v1 lt_return-message_v2

       lt_return-message_v3 lt_return-message_v4

       into  data(lv_msg).

      t_data-rtmsg = t_data-rtmsg && lv_msg && ';'.

    endloop.

    if sy-subrc = 0.

      call function 'BAPI_TRANSACTION_ROLLBACK'.

      t_data-rtype = 'E'.

    else.

      call function 'BAPI_TRANSACTION_COMMIT'

        exporting

          wait = 'X'.

      t_data-rtype = 'S'.

      t_data-rtmsg = '成功'.

    endif.

    modify t_data.

  endloop.

endfunction.