SD bapi

1、SO创建

  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' "#EC CI_USAGE_OK[2438131]
    EXPORTING
      ORDER_HEADER_IN     U_W_HEADER_IN
      ORDER_HEADER_INX    U_W_HEADER_INX
    IMPORTING
      SALESDOCUMENT       LV_VBELN
    TABLES
      RETURN              LIT_RETURN
      ORDER_ITEMS_IN      U_IT_ORDER_ITEMS_IN
      ORDER_ITEMS_INX     U_IT_ORDER_ITEMS_INX
      ORDER_PARTNERS      U_IT_ORDER_PARTNERS
      ORDER_TEXT          U_IT_ORDER_TEXT
      ORDER_SCHEDULES_IN  U_IT_SCHDL
      ORDER_SCHEDULES_INX U_IT_SCHDLX
      EXTENSIONIN         U_IT_IN_EXTENSIONIN.

2、Service order 修改

   LOOP AT U_IT_MDLTAB ASSIGNING <LW_MDLTAB>


      WHERE ZSTA_SO  <> CNS_STAS_1                         "指図更新ステータス
        AND ZVBELN_R U_W_AUFK-KDAUF.                     "受注伝票

    CLEAR:
          LW_METHOD,
          LW_COMPONENT.

*   Get Characteristic Values
    READ TABLE U_IT_AUSP ASSIGNING FIELD-SYMBOL(<LW_AUSP>"#EC CI_STDSEQ
    WITH KEY ATWRT <LW_MDLTAB>-ATWRT.  "#EC CI_SUBRC

    IF <LW_AUSP> IS ASSIGNED.
*     Get Batches
      READ TABLE U_IT_MCH1 ASSIGNING FIELD-SYMBOL(<LW_MCH1>"#EC CI_STDSEQ
      WITH KEY MATNR <LW_MDLTAB>-ZMATNR
               CUOBJ_BM <LW_AUSP>-CUOBJ"#EC CI_SUBRC
    ENDIF.

*   Get Plant from Delivery Order
    READ TABLE U_IT_VBAP1 ASSIGNING FIELD-SYMBOL(<LW_VBAP1>"#EC CI_STDSEQ
    WITH KEY ZZSCWN <LW_MDLTAB>-ZZSCWN
             MATNR <LW_MDLTAB>-ZMATNR"#EC CI_SUBRC

    IF <LW_VBAP1> IS ASSIGNED.
      READ TABLE U_IT_LIPS ASSIGNING FIELD-SYMBOL(<LW_LIPS>"#EC CI_STDSEQ
      WITH KEY VGBEL <LW_VBAP1>-VBELN
               VGPOS <LW_VBAP1>-POSNR"#EC CI_SUBRC
    ENDIF.

    READ TABLE LIT_AFVC ASSIGNING <LW_AFVC>  "#EC CI_STDSEQ
    WITH KEY AUFNR U_W_AUFK-AUFNR"#EC CI_SUBRC

    IF SY-SUBRC 0.

      <LW_AFVC>-VORNR <LW_AFVC>-VORNR + 10.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT         <LW_AFVC>-VORNR
       IMPORTING
         OUTPUT        LW_OPERATION-ACTIVITY
                .

      ELSE.

      <LW_AFVC>-VORNR CNS_0010.
      <LW_AFVC>-AUFNR U_W_AUFK-AUFNR.

      APPEND <LW_AFVC> TO C_IT_AFVC.

    ENDIF.


    LW_OPERATION-CONTROL_KEY CNS_SM01.
    LW_OPERATION-DESCRIPTION U_V_LTXA1.

    APPEND LW_OPERATION TO LIT_OPERATION.

*   退避対象データ
    APPEND  <LW_MDLTAB> TO LIT_MDLTAB.
    LV_REFNO LV_REFNO + 1.
*   BAPI処理方法
    LW_METHOD-REFNUMBER   LV_REFNO.                      "リンク対象方法の参照番号
    LW_METHOD-OBJECTTYPE  CNS_COMPONENT.                 "オブジェクトタイプ
    LW_METHOD-METHOD      CNS_CREATE.                    "メソッド
    LW_METHOD-OBJECTKEY   U_W_AUFK-AUFNR.                "指図番号
    APPEND LW_METHOD TO LIT_METHOD.


    CLEAR LW_METHOD.
    LW_METHOD-REFNUMBER  LV_REFNO.
    LW_METHOD-OBJECTTYPE CNS_OPERATION.
    LW_METHOD-METHOD     CNS_CREATE.
    LW_METHOD-OBJECTKEY  U_W_AUFK-AUFNR.
    APPEND LW_METHOD TO LIT_METHOD.

*   指図構成品目
    LW_COMPONENT-MATERIAL_LONG  <LW_MDLTAB>-ZMATNR.      "品目コード
    IF <LW_MCH1> IS ASSIGNED.
      LW_COMPONENT-BATCH          <LW_MCH1>-CHARG.          "Batch Number
    ENDIF.
    LW_COMPONENT-ITEM_CAT       U_V_POSTP.               "変数明細カテゴリ
    LW_COMPONENT-ACTIVITY       LW_OPERATION-ACTIVITY.   "Operation Number
    LW_COMPONENT-REQUIREMENT_QUANTITY
                                <LW_MDLTAB>-ZKWMENG.     "累積受注数量 (販売単位)
    LW_COMPONENT-REQUIREMENT_QUANTITY_UNIT
                                <LW_MDLTAB>-ZVRKME.      "販売単位
    IF <LW_LIPS> IS ASSIGNED.
    LW_COMPONENT-PLANT         <LW_LIPS>-WERKS.          "Plant
    ENDIF.


    APPEND LW_COMPONENT TO LIT_COMPONENT.

  ENDLOOP.

* 退避対象データ
  IF LIT_MDLTAB IS INITIAL.
    RETURN.
  ENDIF.

* BAPI処理方法
  CLEAR LW_METHOD.
  LW_METHOD-REFNUMBER   0.                               "リンク対象方法の参照番号
  LW_METHOD-METHOD      CNS_SAVE.                        "メソッド
  LW_METHOD-OBJECTKEY   U_W_AUFK-AUFNR.                  "指図番号
  APPEND LW_METHOD TO LIT_METHOD.

* Process Maintenance/Service Order
  CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'                  "#EC CI_USAGE_OK[2669857]
    TABLES                                                 "#EC CI_USAGE_OK[2438131]
      IT_METHODS       LIT_METHOD                          "BAPI構造
      IT_COMPONENT     LIT_COMPONENT                       "指図構成品目
      IT_OPERATION     LIT_OPERATION                       "Input Structure for PM/CS BAPIs Operations
      RETURN           LIT_RETURN.                         "リターンパラメータ

3、PO创建

 DATA:
    LW_PO_HEADER      TYPE BAPIMEPOHEADER,
    "Structure [PO Header]
    LW_PO_HEADERX     TYPE BAPIMEPOHEADERX,
    "Structure [Header Data (Change Parameter)]
    LIT_ITEM          TYPE STANDARD TABLE OF BAPIMEPOITEM,
    "Internal table [Item Data]
    LW_ITEM           TYPE BAPIMEPOITEM,
    "Structure [Item Data]
    LIT_ITEMX         TYPE STANDARD TABLE OF BAPIMEPOITEMX,
    "Internal table [Item Data (Change Parameter)]
    LW_ITEMX          TYPE BAPIMEPOITEMX,
    "Structure[Item Data (Change Parameter)]
    LW_ACCOUN         TYPE BAPIMEPOACCOUNT,
    "Structure [Account Assignment Fields]
    LIT_ACCOUN        TYPE STANDARD TABLE OF BAPIMEPOACCOUNT,
    "Internal table [Account Assignment Fields]
    LW_ACCOUNX        TYPE BAPIMEPOACCOUNTX,
    "Structure[Account Assignment Fields (Change Parameter)]
    LIT_ACCOUNX       TYPE STANDARD TABLE OF BAPIMEPOACCOUNTX,
    "Internal table [Account Assignment Fields (Change Parameter)]
    LW_DELIVE_SCHED   TYPE BAPIMEPOSCHEDULE,
    "Structure [Delivery Schedule]
    LIT_DELIVE_SCHED  TYPE STANDARD TABLE OF BAPIMEPOSCHEDULE,
    "Internal table [Delivery Schedule]
    LW_DELIVE_SCHEDX  TYPE BAPIMEPOSCHEDULX,
    "Structure [Delivery Schedule (Change Parameter)]
    LIT_DELIVE_SCHEDX TYPE STANDARD TABLE OF BAPIMEPOSCHEDULX,
    "Internal table [Delivery Schedule (Change Parameter)]
    LW_FOR_UPDATE     TYPE TYP_W_FOR_UPDATE,
    "Structure[For update]
    LIT_FOR_UPDATE    TYPE TYP_IT_FOR_UPDATE,
    "Internal table [For update]
    LV_ITEMNUM        TYPE NUM5,
    "Variable[Item Number]
    LW_DATA_ADDON     TYPE TYP_BAPI_TE_MEPOITEM,
    "Structure [Item Data_addon]
    LW_DATA_ADDONX    TYPE BAPI_TE_MEPOITEMX,
    "Structure [Item Data_addon(Change Parameter)]
    LW_HEAD_ADDON     TYPE BAPI_TE_MEPOHEADER,
    "Structure [PO Header_addon]
    LW_HEAD_ADDONX    TYPE BAPI_TE_MEPOHEADERX,
    "Structure [PO Header_addonx]
    LIT_EXTEN         TYPE STANDARD TABLE OF BAPIPAREX,
    "Internal table「EXTENSIONIN」
    LW_EXTEN          TYPE BAPIPAREX,
    "Structure「EXTENSIONIN」
    LIT_PARTN         TYPE TYP_IT_PARTN,
    "Internal table「PARTNER」
    LW_PARTN          TYPE BAPIEKKOP,
    "Structure「PARTNER」
    LV_DATUM          TYPE SY-DATUM,
    LV_BSART          TYPE EKKO-BSART,
    LV_LIFNR          TYPE EKKO-LIFNR,
    LV_ZZPRRZ         TYPE EKKO-ZZPRRZ,
    LV_ZZSREN         TYPE EKKO-ZZSREN,
    LV_ZZCBENO        TYPE EKKO-ZZCBENO,
    LV_ZZOPZZ         TYPE EKPO-ZZOPZZ.

* Read po data from fixed value
  PERFORM F_READ_PO_FIX
    CHANGING
      LV_BSART
      LV_LIFNR
      LV_ZZPRRZ
      LV_ZZSREN
      LV_ZZCBENO
      LV_ZZOPZZ.                                          "#EC CI_SUBRC


  LOOP AT U_IT_PODATA ASSIGNING FIELD-SYMBOL(<LW_PODATA>)
  GROUP BY EKORG  <LW_PODATA>-EKORG
             LGORT  <LW_PODATA>-LGORT
             C_DATE <LW_PODATA>-C_DATE
             C_TIME <LW_PODATA>-C_TIME ).
    CLEAR:
    LW_PO_HEADER,      "Structure [PO Header]
    LW_PO_HEADERX,     "Structure [Header Data(Change Parameter)]
    LIT_ITEM,          "Internal table [Item Data]
    LIT_ITEMX,         "Internal table[Item Data(Change Parameter)]
    LV_ITEMNUM,        "Variable[Item Number]
    LW_HEAD_ADDON,     "Structure [PO Header_addon]
    LW_HEAD_ADDONX,    "Structure [PO Header_addonx]
    LIT_PARTN,         "Internal table「PARTNER」
    LIT_EXTEN.         "Internal table「EXTENSIONIN」

*   Edit the structure [PO Header]
    LW_PO_HEADER-DOC_TYPE  LV_BSART.
    LW_PO_HEADER-VENDOR  LV_LIFNR.
    LW_PO_HEADER-COMP_CODE <LW_PODATA>-BUKRS.
    LW_PO_HEADER-DOC_DATE  GV_DATUM.
    LW_PO_HEADER-PURCH_ORG <LW_PODATA>-EKORG.
    LW_PO_HEADER-PUR_GROUP <LW_PODATA>-EKGRP.

*   Edit the structure [Header Data (Change Parameter)]
    LW_PO_HEADERX-DOC_TYPE  CNS_CONSX.
    LW_PO_HEADERX-VENDOR    CNS_CONSX.
    LW_PO_HEADERX-COMP_CODE CNS_CONSX.
    LW_PO_HEADERX-DOC_DATE  CNS_CONSX.
    LW_PO_HEADERX-PURCH_ORG CNS_CONSX.
    LW_PO_HEADERX-PUR_GROUP CNS_CONSX.

*   Edit the structure [PO Header_addon]
    LW_HEAD_ADDON-ZZPRRZ LV_ZZPRRZ.
    LW_HEAD_ADDON-ZZSREN LV_ZZSREN.
    LW_HEAD_ADDON-ZZCBENO LV_ZZCBENO.

*   Edit the internal table「EXTENSIONIN」
    FIELD-SYMBOLS<LW_ANY> TYPE ANY.
    CLEAR LW_EXTEN.          "Structure「EXTENSIONIN」
    LW_EXTEN-STRUCTURE    CNS_MEPOHEADER.
    CALL METHOD CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
      EXPORTING
        IM_VALUE     LW_HEAD_ADDON
      IMPORTING
        EX_CONTAINER LW_EXTEN+30.
    APPEND LW_EXTEN TO LIT_EXTEN.

*   Edit the structure [PO Header_addonx]
    LW_HEAD_ADDONX-ZZPRRZ   CNS_CONSX.
    LW_HEAD_ADDONX-ZZSREN   CNS_CONSX.
    LW_HEAD_ADDONX-ZZCBENO  CNS_CONSX.

*   Edit the internal table「EXTENSIONIN」
    CLEAR LW_EXTEN.          "Structure「EXTENSIONIN」
    LW_EXTEN-STRUCTURE    CNS_MEPOHEADERX.
    ASSIGN LW_EXTEN-VALUEPART1 TO <LW_ANY>
    CASTING TYPE BAPI_TE_MEPOHEADERX.
    <LW_ANY> LW_HEAD_ADDONX.
    APPEND LW_EXTEN TO LIT_EXTEN.
    CLEAR <LW_ANY>.

*   Edit the Internal Table [LIT_PARTN]
    IF <LW_PODATA>-LIFN2 IS NOT INITIAL.
      LW_PARTN-PARTNERDESC CNS_Z9.             "Partner Function
      LW_PARTN-LANGU SY-LANGU.
      LW_PARTN-BUSPARTNO <LW_PODATA>-LIFN2.
      APPEND LW_PARTN TO LIT_PARTN.
    ENDIF.

    LOOP AT GROUP <LW_PODATA> ASSIGNING FIELD-SYMBOL(<LW_GROUP>).

      CLEAR:
      LW_ITEM,       "Structure [Item Data]
      LW_DATA_ADDON"Structure [Item Data_addon]
      LW_DATA_ADDONX,"Structure [Item Data_addon(Change Parameter)]
      LW_ITEMX,      "Structure[Item Data (Change Parameter)]
      LW_ACCOUN,     "Structure [Account Assignment Fields]
      LW_ACCOUNX,    "Structure[Account(Change Parameter)]
      LW_FOR_UPDATE"Structure[For update]

*     Purchase Order Item Data edit
*     Variable edit
      LV_ITEMNUM  =  LV_ITEMNUM + 1.

*     Purchase Order Item Data
*     Edit the internal table [Item Data]
      LW_ITEM-PO_ITEM  LV_ITEMNUM.
      LW_ITEM-MATERIAL_LONG <LW_GROUP>-MATNR.
      TRY .
        LW_ITEM-QUANTITY <LW_GROUP>-BDMNG.
      CATCH CX_ROOT.
        LW_ITEM-QUANTITY 0.
      ENDTRY.
      LW_ITEM-PO_UNIT  <LW_GROUP>-MEINS.
      LW_ITEM-PLANT    <LW_GROUP>-WERKS.
      LW_ITEM-STGE_LOC <LW_GROUP>-LGORT.
      APPEND LW_ITEM TO LIT_ITEM.

*     Edit the internal table [Item Data (Change Parameter)]
      LW_ITEMX-PO_ITEM  LV_ITEMNUM.
      LW_ITEMX-MATERIAL_LONG CNS_CONSX.
      LW_ITEMX-QUANTITY CNS_CONSX.
      LW_ITEMX-PO_UNIT  CNS_CONSX.
      LW_ITEMX-PLANT    CNS_CONSX.
      LW_ITEMX-STGE_LOC CNS_CONSX.
      APPEND LW_ITEMX TO LIT_ITEMX.


*     Edit the structure [Item Data_addon]
      LW_DATA_ADDON-PO_ITEM LV_ITEMNUM.
      LW_DATA_ADDON-ZZOPZZ  LV_ZZOPZZ.

*     Edit the internal table「EXTENSIONIN」
      CLEAR LW_EXTEN.          "Structure「EXTENSIONIN」
      LW_EXTEN-STRUCTURE  CNS_MEPOITEM.
      CALL METHOD CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
        EXPORTING
          IM_VALUE     LW_DATA_ADDON
        IMPORTING
          EX_CONTAINER LW_EXTEN+30.
      APPEND LW_EXTEN TO LIT_EXTEN.


*     Edit the structure [Item Data_addonx]
      LW_DATA_ADDONX-PO_ITEM LV_ITEMNUM.
      LW_DATA_ADDONX-ZZOPZZ  CNS_CONSX.

*     Edit the internal table「EXTENSIONIN」
      CLEAR LW_EXTEN.          "Structure「EXTENSIONIN」
      LW_EXTEN-STRUCTURE  CNS_MEPOITEMX.
      ASSIGN LW_EXTEN-VALUEPART1 TO <LW_ANY>
      CASTING TYPE BAPI_TE_MEPOITEMX.
      <LW_ANY> LW_DATA_ADDONX.
      APPEND LW_EXTEN TO LIT_EXTEN.
      CLEAR <LW_ANY>.

*     Edit the internal table [Account Assignment Fields]
      LW_ACCOUN-PO_ITEM LV_ITEMNUM.
      LW_ACCOUN-PROFIT_CTR <LW_GROUP>-PRCTR.
      APPEND LW_ACCOUN TO LIT_ACCOUN.

*     Edit the internal table [Account Assignment Fields (Change Parameter)]
      LW_ACCOUNX-PO_ITEM LV_ITEMNUM.
      LW_ACCOUNX-PROFIT_CTR CNS_CONSX.
      APPEND LW_ACCOUNX TO LIT_ACCOUNX.

*     Edit the internal table [Delivery Schedule]
      LW_DELIVE_SCHED-PO_ITEM LV_ITEMNUM.
      LV_DATUM GV_DATUM + 14.
      LW_DELIVE_SCHED-DELIVERY_DATE LV_DATUM.
      APPEND LW_DELIVE_SCHED TO LIT_DELIVE_SCHED.

*     Edit the internal table [Delivery Schedule (Change Parameter)]
      LW_DELIVE_SCHEDX-PO_ITEM LV_ITEMNUM.
      LW_DELIVE_SCHEDX-DELIVERY_DATE CNS_CONSX.
      APPEND LW_DELIVE_SCHEDX TO LIT_DELIVE_SCHEDX.

*     Edit the internal table [For update]
      LW_FOR_UPDATE-SEQNO   <LW_GROUP>-SEQNO.
      APPEND LW_FOR_UPDATE TO LIT_FOR_UPDATE.

    ENDLOOP.

  DATA:
    LW_FOR_UPDATE TYPE TYP_W_FOR_UPDATE ##NEEDED,
    LV_NUM        TYPE BAPIMEPOHEADER-PO_NUMBER,
    "Variable[po_number]
    LIT_RETURN    TYPE TYP_IT_RETURN,
    "Internal table [Return]
    LV_STATUS     TYPE CHAR1,
    "variable[status]
    LV_FLG_UPD    TYPE CHAR1.
  "variable[status]

  CALL FUNCTION 'BAPI_PO_CREATE1'  "#EC CI_USAGE_OK[2438131]
    EXPORTING
      POHEADER         U_W_PO_HEADER
      POHEADERX        U_W_PO_HEADERX
    IMPORTING
      EXPPURCHASEORDER LV_NUM
    TABLES
      RETURN           LIT_RETURN
      POITEM           U_IT_ITEM
      POITEMX          U_IT_ITEMX
      POSCHEDULE       U_IT_DELIVE_SCHED
      POSCHEDULEX      U_IT_DELIVE_SCHEDX
      EXTENSIONIN      C_IT_EXTEN
      POACCOUNT        U_IT_ACCOUN
      POACCOUNTX       U_IT_ACCOUNX
      POPARTNER        U_IT_PARTN.

                                                         "#EC CI_STDSEQ
  LOOP AT LIT_RETURN TRANSPORTING NO FIELDS
    WHERE TYPE CNS_E
       OR TYPE CNS_A.
  ENDLOOP.

 

  LOOP AT U_IT_MDLTAB ASSIGNING <LW_MDLTAB>

      WHERE ZSTA_SO  <> CNS_STAS_1                         "指図更新ステータス
        AND ZVBELN_R U_W_AUFK-KDAUF.                     "受注伝票

    CLEAR:
          LW_METHOD,
          LW_COMPONENT.

*> Start INS R2 Modification 2020/12/30--------------------------------*
*   Get Characteristic Values
    READ TABLE U_IT_AUSP ASSIGNING FIELD-SYMBOL(<LW_AUSP>"#EC CI_STDSEQ
    WITH KEY ATWRT <LW_MDLTAB>-ATWRT.  "#EC CI_SUBRC

    IF <LW_AUSP> IS ASSIGNED.
*     Get Batches
      READ TABLE U_IT_MCH1 ASSIGNING FIELD-SYMBOL(<LW_MCH1>"#EC CI_STDSEQ
      WITH KEY MATNR <LW_MDLTAB>-ZMATNR
               CUOBJ_BM <LW_AUSP>-CUOBJ"#EC CI_SUBRC
    ENDIF.

*   Get Plant from Delivery Order
    READ TABLE U_IT_VBAP1 ASSIGNING FIELD-SYMBOL(<LW_VBAP1>"#EC CI_STDSEQ
    WITH KEY ZZSCWN <LW_MDLTAB>-ZZSCWN
             MATNR <LW_MDLTAB>-ZMATNR"#EC CI_SUBRC

    IF <LW_VBAP1> IS ASSIGNED.
      READ TABLE U_IT_LIPS ASSIGNING FIELD-SYMBOL(<LW_LIPS>"#EC CI_STDSEQ
      WITH KEY VGBEL <LW_VBAP1>-VBELN
               VGPOS <LW_VBAP1>-POSNR"#EC CI_SUBRC
    ENDIF.

    READ TABLE LIT_AFVC ASSIGNING <LW_AFVC>  "#EC CI_STDSEQ
    WITH KEY AUFNR U_W_AUFK-AUFNR"#EC CI_SUBRC

    IF SY-SUBRC 0.

      <LW_AFVC>-VORNR <LW_AFVC>-VORNR + 10.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT         <LW_AFVC>-VORNR
       IMPORTING
         OUTPUT        LW_OPERATION-ACTIVITY
                .

      ELSE.

      <LW_AFVC>-VORNR CNS_0010.
      <LW_AFVC>-AUFNR U_W_AUFK-AUFNR.

      APPEND <LW_AFVC> TO C_IT_AFVC.

    ENDIF.


    LW_OPERATION-CONTROL_KEY CNS_SM01.
    LW_OPERATION-DESCRIPTION U_V_LTXA1.

    APPEND LW_OPERATION TO LIT_OPERATION.

*< End INS R2 Modification 2020/12/30----------------------------------*

*   退避対象データ
    APPEND  <LW_MDLTAB> TO LIT_MDLTAB.
    LV_REFNO LV_REFNO + 1.
*   BAPI処理方法
    LW_METHOD-REFNUMBER   LV_REFNO.                      "リンク対象方法の参照番号
    LW_METHOD-OBJECTTYPE  CNS_COMPONENT.                 "オブジェクトタイプ
    LW_METHOD-METHOD      CNS_CREATE.                    "メソッド
    LW_METHOD-OBJECTKEY   U_W_AUFK-AUFNR.                "指図番号
    APPEND LW_METHOD TO LIT_METHOD.

*> Start INS R2 Modification 2020/12/30--------------------------------*
    CLEAR LW_METHOD.
    LW_METHOD-REFNUMBER  LV_REFNO.
    LW_METHOD-OBJECTTYPE CNS_OPERATION.
    LW_METHOD-METHOD     CNS_CREATE.
    LW_METHOD-OBJECTKEY  U_W_AUFK-AUFNR.
    APPEND LW_METHOD TO LIT_METHOD.

*< End INS R2 Modification 2020/12/30----------------------------------*

*   指図構成品目
    LW_COMPONENT-MATERIAL_LONG  <LW_MDLTAB>-ZMATNR.      "品目コード
*> Start REP R2 Modification 2020/12/30--------------------------------*
*    LW_COMPONENT-BATCH          = <LW_MDLTAB>-ZCHARG.      "ロット番号
    IF <LW_MCH1> IS ASSIGNED.
      LW_COMPONENT-BATCH          <LW_MCH1>-CHARG.          "Batch Number
    ENDIF.
*< End REP R2 Modification 2020/12/30----------------------------------*
    LW_COMPONENT-ITEM_CAT       U_V_POSTP.               "変数明細カテゴリ
*> Start REP R2 Modification 2020/12/30--------------------------------*
*    LW_COMPONENT-ACTIVITY       = U_V_POSNR.               "変数作業/活動番号
     LW_COMPONENT-ACTIVITY       LW_OPERATION-ACTIVITY.   "Operation Number
*< End REP R2 Modification 2020/12/30----------------------------------*
    LW_COMPONENT-REQUIREMENT_QUANTITY
                                <LW_MDLTAB>-ZKWMENG.     "累積受注数量 (販売単位)
    LW_COMPONENT-REQUIREMENT_QUANTITY_UNIT
                                <LW_MDLTAB>-ZVRKME.      "販売単位

*> Start INS R2 Modification 2020/12/30--------------------------------*
    IF <LW_LIPS> IS ASSIGNED.
    LW_COMPONENT-PLANT         <LW_LIPS>-WERKS.          "Plant
    ENDIF.
*< End INS R2 Modification 2020/12/30----------------------------------*

    APPEND LW_COMPONENT TO LIT_COMPONENT.

  ENDLOOP.

* 退避対象データ
  IF LIT_MDLTAB IS INITIAL.
    RETURN.
  ENDIF.

* BAPI処理方法
  CLEAR LW_METHOD.
  LW_METHOD-REFNUMBER   0.                               "リンク対象方法の参照番号
  LW_METHOD-METHOD      CNS_SAVE.                        "メソッド
  LW_METHOD-OBJECTKEY   U_W_AUFK-AUFNR.                  "指図番号
  APPEND LW_METHOD TO LIT_METHOD.

* Process Maintenance/Service Order
  CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'                  "#EC CI_USAGE_OK[2669857]
    TABLES                                                 "#EC CI_USAGE_OK[2438131]
      IT_METHODS       LIT_METHOD                          "BAPI構造
      IT_COMPONENT     LIT_COMPONENT                       "指図構成品目
*> Start INS R2 Modification 2020/12/30--------------------------------*
      IT_OPERATION     LIT_OPERATION                       "Input Structure for PM/CS BAPIs Operations
*< End INS R2 Modification 2020/12/30----------------------------------*
      RETURN           LIT_RETURN.                         "リターンパラメータ

原文地址:https://www.cnblogs.com/lingxiaoj/p/14498085.html