物料bapi

物料创建bapi,MRP,CLASSFICATION视图

***********NEW BAPI  CTF
  DATA:LV_FUN              TYPE BAPIFN,
       LW_HEAD             TYPE BAPIE1MATHEADER,
       LIT_HEAD            TYPE TABLE OF BAPIE1MATHEADER,
       LW_CLIENTDATA       TYPE BAPIE1MARA,
       LW_CLIENTDATAX      TYPE BAPIE1MARAX,
       LIT_CLIENTDATA      TYPE TABLE OF BAPIE1MARA,
       LIT_CLIENTDATAX     TYPE TABLE OF BAPIE1MARAX,
       LW_SALESDATA        TYPE BAPIE1MVKE,
       LIT_SALESDATA       TYPE TABLE OF BAPIE1MVKE,
       LW_SALESDATAX       TYPE BAPIE1MVKEX,
       LIT_SALESDATAX      TYPE TABLE OF BAPIE1MVKEX,
       LW_TAXCLASSI        TYPE BAPIE1MLAN,
       LIT_TAXCLASSI       TYPE TABLE OF BAPIE1MLAN,
       LW_PLANTDATA        TYPE BAPIE1MARC,
       LIT_PLANTDATA       TYPE TABLE OF BAPIE1MARC,
       LW_PLANTDATAX       TYPE BAPIE1MARCX,
       LIT_PLANTDATAX      TYPE TABLE OF BAPIE1MARCX,
       LW_VALUATION        TYPE BAPIE1MBEW,
       LIT_VALUATION       TYPE TABLE OF BAPIE1MBEW,
       LW_VALUATIONX       TYPE BAPIE1MBEWX,
       LIT_VALUATIONX      TYPE TABLE OF BAPIE1MBEWX,
       LW_STOLOCA          TYPE BAPIE1MARD,
       LIT_STOLOCA         TYPE TABLE OF BAPIE1MARD,
       LW_STOLOCAX         TYPE BAPIE1MARDX,
       LIT_STOLOCAX        TYPE TABLE OF BAPIE1MARDX,
       LW_METERAIL_DES     TYPE BAPIE1MAKT,
       LIT_METERAIL_DES    TYPE TABLE OF BAPIE1MAKT,
       LW_UNITSOFMEASURE   TYPE BAPIE1MARM,
       LIT_UNITSOFMEASURE  TYPE TABLE OF BAPIE1MARM,
       LW_UNITSOFMEASUREX  TYPE BAPIE1MARMX,
       LIT_UNITSOFMEASUREX TYPE TABLE OF BAPIE1MARMX,
       LW_MAT_LONGTEXT     TYPE BAPIE1MLTX,
       LIT_MAT_LONGTEXT    TYPE TABLE OF BAPIE1MLTX,
       LW_TE_MARA          TYPE BAPI_TE_E1MARA2,
       LW_TE_MARAX         TYPE BAPI_TE_E1MARA2X,
       LW_TE_MARC          TYPE BAPI_TE_E1MARC2,
       LW_TE_MARCX         TYPE BAPI_TE_E1MARC2X,
       LW_TE_MVKE          TYPE BAPI_TE_E1MVKE2,
       LW_TE_MVKEX         TYPE BAPI_TE_E1MVKE2X,
       LW_EXTENSIONIN      TYPE BAPIE1PAREX,
       LIT_EXTENSIONIN     TYPE STANDARD TABLE OF BAPIE1PAREX,
       LW_EXTENSIONINX     TYPE BAPIE1PAREXX,
       LIT_EXTENSIONINX    TYPE STANDARD TABLE OF BAPIE1PAREXX,
       LIT_RETURN          TYPE STANDARD TABLE OF BAPIRET2,
       LIT_STOR_VIEW       TYPE TYP_IT_STOR,          "Storage Location
       LIT_MRP_CRT         TYPE TYP_IT_STOR,          "MRP Area Create  "SIR228
       LW_MRP_CRT          TYPE TYP_W_STOR.          "MRP Area Create  "SIR228
  FIELD-SYMBOLS: <LW_ANY> TYPE ANY.

  DATA:
    LV_WAERS    TYPE T001-WAERS,
    LV_DATE     TYPE SYST-DATUM,
    LV_C_ZCPUPR TYPE ZMAT0010-ZCPUPR.

  DATA:
    LV_MATNR            TYPE MARA-MATNR,
    LV_PROFILE          TYPE CHAR1,
    LW_CRE_CLASSVIEW    TYPE BAPI1003_KEY.

  LIT_STOR_VIEW = GIT_STOR_VIEW.          "Storage Location

  READ TABLE U_IT_MARA_DATA TRANSPORTING NO FIELDS
    WITH KEY NS01 COMPONENTS
      MATNR = C_W_ORGA-MATNR.
  IF SY-SUBRC = 0.
    LV_FUN = CNS_UPD.
  ELSE.
    LV_FUN = CNS_INS.
  ENDIF.

* Get factory material information
  READ TABLE U_IT_MARA_R2 INTO DATA(LW_MARA_R2)
        WITH KEY NS01 COMPONENTS
        MATNR = C_W_ORGA-ZDEVI.
  IF SY-SUBRC <> 0.
    CLEAR LW_MARA_R2.
  ENDIF.

*  LW_HEAD-MATERIAL        = C_W_ORGA-MATNR.     "Material
  LW_HEAD-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_HEAD-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
  LW_HEAD-IND_SECTOR      = GV_INDUSTRY.        "Industry Sector
  LW_HEAD-MATL_TYPE       = C_W_ORGA-MTART.     "Material Type
  LW_HEAD-BASIC_VIEW      = CNS_FLG_X.          "Basic View
  LW_HEAD-SALES_VIEW      = CNS_FLG_X.          "Sales View
  LW_HEAD-PURCHASE_VIEW   = CNS_FLG_X.          "PURCHASE View
  LW_HEAD-ACCOUNT_VIEW    = CNS_FLG_X.          "Accounting View
  LW_HEAD-STORAGE_VIEW    = CNS_FLG_X.          "Storage View
  LW_HEAD-COST_VIEW       = CNS_FLG_X.          "Cost View
  LW_HEAD-MRP_VIEW        = CNS_FLG_X.          "MRPView
  APPEND LW_HEAD TO LIT_HEAD.
  CLEAR LW_HEAD.

* Edit the structure "CLIENTDATA"
  LW_CLIENTDATA-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_CLIENTDATA-MATL_GROUP      = C_W_ORGA-MATKL.     "Material Group
  LW_CLIENTDATA-BASE_UOM        = C_W_ORGA-MEINS.     "Base Unit
  LW_CLIENTDATA-NET_WEIGHT      = C_W_ORGA-NTGEW.     "Net weight
  LW_CLIENTDATA-UNIT_OF_WT      = C_W_ORGA-GEWEI.     "Weight unit
  LW_CLIENTDATA-DIVISION        = CNS_00.             "Division
  LW_CLIENTDATA-HIGH_VISC       = C_W_ORGA-IHIVI.     "FS Flag
  LW_CLIENTDATA-DOCUMENT        = C_W_ORGA-ZEINR.     "DOCUMENT
  LW_CLIENTDATA-BATCH_MGMT      = ABAP_TRUE.          "Batch management
  LW_CLIENTDATA-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material No.
  LW_CLIENTDATA-SHELF_LIFE   = LW_MARA_R2-MHDHB.     "Total shelf life
  LW_CLIENTDATA-MINREMLIFE   = LW_MARA_R2-MHDRZ.     "Min.Rem.Shelf Life
  LW_CLIENTDATA-PERIOD_IND_EXPIRATION_DATE
                               = LW_MARA_R2-IPRKZ.     "Period Ind. For SLED
  LW_CLIENTDATA-SLED_BBD     = LW_MARA_R2-SLED_BBD.  "Expiration Date

* Edit the structure "CLIENTDATAX (Register Parameter)"
  LW_CLIENTDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_CLIENTDATAX-MATL_GROUP     = CNS_FLG_X.         "Material Group
  LW_CLIENTDATAX-BASE_UOM       = CNS_FLG_X.         "Base Unit
  LW_CLIENTDATAX-NET_WEIGHT     = CNS_FLG_X.         "Net weight
  LW_CLIENTDATAX-UNIT_OF_WT     = CNS_FLG_X.         "Weight unit
  LW_CLIENTDATAX-DIVISION       = CNS_FLG_X.         "Division
  LW_CLIENTDATAX-HIGH_VISC      = CNS_FLG_X.         "FS Flag
  LW_CLIENTDATAX-DOCUMENT       = CNS_FLG_X.         "DOCUMENT
  LW_CLIENTDATAX-BATCH_MGMT     = ABAP_TRUE.         "Batch management
  LW_CLIENTDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.    "Material No.
*> Start INS R2 Modification 2021/01/29
  IF LW_MARA_R2 IS NOT INITIAL .
    LW_CLIENTDATAX-SHELF_LIFE   = CNS_FLG_X.          "Total shelf life
    LW_CLIENTDATAX-MINREMLIFE   = CNS_FLG_X.          "Min.Rem.Shelf Life
    LW_CLIENTDATAX-PERIOD_IND_EXPIRATION_DATE
                               = CNS_FLG_X.          "Period Ind. For SLED
    LW_CLIENTDATAX-SLED_BBD     = CNS_FLG_X.          "Expiration Date
  ENDIF.

* Edit the structure "SALESDATA"
  LW_SALESDATA-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_SALESDATA-SALES_ORG      = C_W_ORGA-VKORG1.     "sales organization
  LW_SALESDATA-DISTR_CHAN     = CNS_00.              "Distribution channel
  LW_SALESDATA-SAL_STATUS     = U_V_ZSSTUS.          "Sales status [sales]
  PERFORM F_ALPHA_INPUT CHANGING LW_SALESDATA-SAL_STATUS.
  LW_SALESDATA-VALID_FROM     = U_V_ZVMSTD.           "Valid from
  LW_SALESDATA-ITEM_CAT       = GV_ICAT_GRP.          "Item category Group
  LW_SALESDATA-MATL_GRP_1     = C_W_ORGA-MVGR1.       "Product Code
  LW_SALESDATA-MATL_GRP_2     = C_W_ORGA-MVGR2.       "Consumables Type
  LW_SALESDATA-DELY_UNIT      = C_W_ORGA-SCMNG.       "Delivery unit
  LW_SALESDATA-MIN_ORDER      = C_W_ORGA-AUMNG.       "Minimum  Ordering Quantity
  LW_SALESDATA-MAT_PR_GRP     = C_W_ORGA-KONDM.       "Material Price Group
  LW_SALESDATA-MATERIAL_LONG  = C_W_ORGA-MATNR.       "Material
  APPEND LW_SALESDATA TO LIT_SALESDATA.
  CLEAR LW_SALESDATA.

* Edit the structure "SALESDATAX (Register Parameter)"
  LW_SALESDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_SALESDATAX-SALES_ORG      = C_W_ORGA-VKORG1.     "sales organization
  LW_SALESDATAX-DISTR_CHAN     = CNS_00.              "Distribution channel
  LW_SALESDATAX-SAL_STATUS     = CNS_FLG_X.           "Sales status [sales]
  LW_SALESDATAX-VALID_FROM     = CNS_FLG_X.           "Valid from
  LW_SALESDATAX-ITEM_CAT       = CNS_FLG_X.           "Item category Group
  LW_SALESDATAX-MATL_GRP_1     = CNS_FLG_X.           "Product Code
  LW_SALESDATAX-MATL_GRP_2     = CNS_FLG_X.           "Consumables Type
  LW_SALESDATAX-DELY_UNIT      = CNS_FLG_X.           "Delivery unit
  LW_SALESDATAX-MIN_ORDER      = CNS_FLG_X.           "Minimum  Ordering Quantity
  LW_SALESDATAX-MAT_PR_GRP     = CNS_FLG_X.           "Material Price Group
  LW_SALESDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.      "Material
  APPEND LW_SALESDATAX TO LIT_SALESDATAX.
  CLEAR LW_SALESDATAX.

* Edit the structure " TAXCLASSIFICATIONS"

* Get tax from fixed value by sales org
   LOOP AT U_IT_FIXED_VAL ASSIGNING FIELD-SYMBOL(<FS_FIXED>)
     WHERE KEY1 = C_W_ORGA-VKORG1 AND
           KEY2 = CNS_TAX.

      LW_TAXCLASSI-FUNCTION        = LV_FUN.             "Function of BAPI
      LW_TAXCLASSI-DEPCOUNTRY      = <FS_FIXED>-VALUE1.  "Departure country
      LW_TAXCLASSI-DEPCOUNTRY_ISO  = <FS_FIXED>-VALUE2.  "Departure country in ISO code
      LW_TAXCLASSI-TAX_TYPE_1      = <FS_FIXED>-VALUE3.  "Tax category
      LW_TAXCLASSI-TAXCLASS_1      = <FS_FIXED>-VALUE4.  "Tax classification material
      LW_TAXCLASSI-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
      APPEND LW_TAXCLASSI TO LIT_TAXCLASSI.
      CLEAR LW_TAXCLASSI.

   ENDLOOP.

  LOOP AT U_IT_PLANT_DATA ASSIGNING FIELD-SYMBOL(<LW_PLANT_DATA>)
    WHERE KUNNR = C_W_ORGA-KUNNR.

    READ TABLE U_IT_INFOR_GEN WITH TABLE KEY NS01
    COMPONENTS MATNR = C_W_ORGA-MATNR
               WERKS = <LW_PLANT_DATA>-WERKS
      INTO DATA(LW_INFORE_GEN).                                "#EC CI_SUBRC

* Edit the structure "PLANTDATA"
  LW_PLANTDATA-FUNCTION         = LV_FUN.             "Function of BAPI
*  LW_PLANTDATA-PLANT            = C_W_ORGA-WERKS1.     "Plant
  LW_PLANTDATA-PLANT            = <LW_PLANT_DATA>-WERKS.     "Plant
  LW_PLANTDATA-COUNTRYORI       = C_W_ORGA-HERKL.      "Country of origin
  LW_PLANTDATA-MRP_TYPE         = U_V_MRP_TYP.         " mrp typ
  LW_PLANTDATA-AVAILCHECK       = U_V_AVAI_CHK.        "Availability check
  LW_PLANTDATA-PUR_STATUS       = U_V_ZMSTUS.          "Material status [plant]
  PERFORM F_ALPHA_INPUT CHANGING LW_PLANTDATA-PUR_STATUS.
*  LW_PLANTDATA-PVALIDFROM       = U_V_ZMMSTD.          "Valid from
  LW_PLANTDATA-PVALIDFROM       = LW_INFORE_GEN-ZMMSTD. "Valid from
  LW_PLANTDATA-NO_COSTING       = SPACE.               "No cost calculations
  LW_PLANTDATA-LOT_SIZE         = CNS_VALUE_1.         "Costing Lot Size
  LW_PLANTDATA-PROFIT_CTR       = U_V_ZZPRCTR.         "Profit Center
  LW_PLANTDATA-MATERIAL_LONG    = C_W_ORGA-MATNR.         "Material
  READ TABLE U_IT_FIXED_VAL INTO DATA(LW_FIXED_VAL)
    WITH KEY KEY1 = CNS_EKGRP
             KEY2 = CNS_MATERIAL.                         "#EC CI_SUBRC
  LW_PLANTDATA-PUR_GROUP     = LW_FIXED_VAL-VALUE1.

* Edit the structure "PLANTDATAX (Register Parameter)"
  LW_PLANTDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
*  LW_PLANTDATAX-PLANT          = C_W_ORGA-WERKS1.   "Plant
  LW_PLANTDATAX-PLANT          = <LW_PLANT_DATA>-WERKS.   "Plant
  LW_PLANTDATAX-COUNTRYORI     = CNS_FLG_X.         "Country of origin
  LW_PLANTDATAX-MRP_TYPE       = CNS_FLG_X.         "mrp typ
  LW_PLANTDATAX-AVAILCHECK     = CNS_FLG_X.         "Availability check
  LW_PLANTDATAX-PUR_STATUS     = CNS_FLG_X.         "Material status [plant]
  LW_PLANTDATAX-PVALIDFROM     = CNS_FLG_X.         "Valid from
  LW_PLANTDATAX-NO_COSTING     = CNS_FLG_X.         "No cost calculations
  LW_PLANTDATAX-LOT_SIZE       = CNS_FLG_X.         "Costing Lot Size
  LW_PLANTDATAX-PROFIT_CTR     = CNS_FLG_X.         "Profit Center
  LW_PLANTDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  LW_PLANTDATAX-PUR_GROUP      = CNS_FLG_X.
  APPEND LW_PLANTDATAX TO LIT_PLANTDATAX.
  CLEAR LW_PLANTDATAX.

*< End INS R2 Modification 2021/01/29
  APPEND LW_PLANTDATA TO LIT_PLANTDATA.
  CLEAR LW_PLANTDATA.

* 'Edit the structure for " EXTENSIONIN" (for MARC)
  LW_TE_MARC-MATERIAL   = C_W_ORGA-MATNR.
*  LW_TE_MARC-PLANT      = C_W_ORGA-WERKS1.
  LW_TE_MARC-PLANT      = <LW_PLANT_DATA>-WERKS.
  LW_TE_MARC-ZZSAAVA    = C_W_ORGA-ZSAAVA.
  LW_TE_MARC-ZZINTF     = C_W_ORGA-ZINTF.
  LW_TE_MARC-ZZDPFG     = C_W_ORGA-ZDPFG.
  LW_TE_MARC-ZZLABC     = C_W_ORGA-ZLABC.
  LW_TE_MARC-ZZSABC     = C_W_ORGA-ZSABC.
  LW_TE_MARC-ZZLBCA     = C_W_ORGA-ZLBCA.
  LW_TE_MARC-ZZFRUF     = C_W_ORGA-ZFRUF.
  IF LW_INFORE_GEN-MARC_INITIAL   = CNS_FLG_X.
    LW_TE_MARC-ZZASOP  = U_V_ZZASOP.
    LW_TE_MARC-ZZADERP = U_V_ZZADERP.
    LW_TE_MARC-ZZAPOP  = U_V_ZZAPOP.
    LW_TE_MARC-ZZAAUT  = U_V_ZZAAUT.
  ENDIF.
  LW_TE_MARC-ZZSLTR        = C_W_ORGA-ZSLTR.     "shijj add
  LW_TE_MARC-ZZSLTO        = C_W_ORGA-ZSLTO.     "shijj add
  LW_EXTENSIONIN-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE = CNS_BAPI_MARC.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)       =  LW_TE_MARC.
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

  LW_TE_MARCX-MATERIAL   = C_W_ORGA-MATNR.
*  LW_TE_MARCX-PLANT      = C_W_ORGA-WERKS1.
  LW_TE_MARCX-PLANT      = <LW_PLANT_DATA>-WERKS.
  LW_TE_MARCX-ZZSAAVA    = CNS_FLG_X.
  LW_TE_MARCX-ZZINTF     = CNS_FLG_X.
  LW_TE_MARCX-ZZDPFG     = CNS_FLG_X.
  LW_TE_MARCX-ZZLABC     = CNS_FLG_X.
  LW_TE_MARCX-ZZSABC     = CNS_FLG_X.
  LW_TE_MARCX-ZZLBCA     = CNS_FLG_X.
  LW_TE_MARCX-ZZFRUF     = CNS_FLG_X.
  IF LW_INFORE_GEN-MARC_INITIAL    = CNS_FLG_X.
    LW_TE_MARCX-ZZASOP   = CNS_FLG_X.
    LW_TE_MARCX-ZZADERP  = CNS_FLG_X.
    LW_TE_MARCX-ZZAPOP   = CNS_FLG_X.
    LW_TE_MARCX-ZZAAUT   = CNS_FLG_X.
  ENDIF.
  LW_TE_MARCX-ZZSLTR = CNS_FLG_X.       "shijj add
  LW_TE_MARCX-ZZSLTO = CNS_FLG_X.      "shijj add
  LW_EXTENSIONINX-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE = CNS_BAPI_MARCX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949) =  LW_TE_MARCX.
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR: LW_EXTENSIONINX.

* Edit the structure "VALUATIONDATA"
  LW_VALUATION-FUNCTION       = LV_FUN.             "Function of BAPI
*  LW_VALUATION-VAL_AREA       = C_W_ORGA-WERKS1.
  LW_VALUATION-VAL_AREA       = <LW_PLANT_DATA>-WERKS.
  LW_VALUATION-VAL_TYPE       = SPACE.
  LW_VALUATION-VAL_CLASS      = U_V_VAL_CLA.
  LW_VALUATION-PRICE_UNIT     = CNS_VALUE_1.
  CLEAR LV_WAERS.
  READ TABLE U_IT_T001 INTO DATA(LW_T001)
        WITH KEY NS01 COMPONENTS
        BUKRS = C_W_ORGA-BUKRS1.
  IF SY-SUBRC = 0.
    LV_WAERS = LW_T001-WAERS.
  ENDIF.

  LW_VALUATION-QTY_STRUCT = CNS_FLG_X.
  LW_VALUATION-ORIG_MAT   = 'X'.   "

  LW_VALUATION-MATERIAL_LONG = C_W_ORGA-MATNR.
  APPEND LW_VALUATION TO LIT_VALUATION.
  CLEAR LW_VALUATION.

* Edit the structure "VALUATIONDATAX (Register Parameter)"
  LW_VALUATIONX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_VALUATIONX-VAL_AREA       = <LW_PLANT_DATA>-WERKS.
  LW_VALUATIONX-VAL_TYPE       = SPACE.
  LW_VALUATIONX-VAL_CLASS      = CNS_FLG_X.
  LW_VALUATIONX-PRICE_UNIT     = CNS_FLG_X.

  IF LW_INFORE_GEN-MBEW_INITIAL = CNS_FLG_X.
    LW_VALUATIONX-STD_PRICE  = CNS_FLG_X.
  ENDIF.
  LW_VALUATIONX-QTY_STRUCT  = CNS_FLG_X.
  LW_VALUATIONX-ORIG_MAT    = 'X'.   "CHEN add"
  IF LW_INFORE_GEN-MBEW_Z = CNS_FLG_X.
    LW_VALUATIONX-FUTURE_PR  = CNS_FLG_X.
    LW_VALUATIONX-VALID_FROM = CNS_FLG_X.
  ENDIF.
  LW_VALUATIONX-MATERIAL_LONG = C_W_ORGA-MATNR.
  APPEND LW_VALUATIONX TO LIT_VALUATIONX.
  CLEAR LW_VALUATIONX.

** Edit the structure " STORAGELOCATIONDATA"

  LOOP AT LIT_STOR_VIEW ASSIGNING FIELD-SYMBOL(<LW_STOR_VIEW2>)
    WHERE WERKS = <LW_PLANT_DATA>-WERKS.

*   Edit the structure " STORAGELOCATIONDATA2"
    LW_STOLOCA-FUNCTION         = LV_FUN.             "Function of BAPI
    LW_STOLOCA-PLANT            = <LW_STOR_VIEW2>-WERKS.  "Plant
    LW_STOLOCA-STGE_LOC         = <LW_STOR_VIEW2>-LGORT.  "Storage location
    LW_STOLOCA-MATERIAL_LONG    = C_W_ORGA-MATNR.  "Material
    APPEND LW_STOLOCA TO LIT_STOLOCA.
    CLEAR LW_STOLOCA.

*   Edit the structure " STORAGELOCATIONDATA2X (Register Parameter)"
    LW_STOLOCAX-FUNCTION        = LV_FUN.             "Function of BAPI
    LW_STOLOCAX-PLANT           = <LW_STOR_VIEW2>-WERKS.  "Plant
    LW_STOLOCAX-STGE_LOC        = <LW_STOR_VIEW2>-LGORT.  "Storage location
    LW_STOLOCAX-MATERIAL_LONG   = C_W_ORGA-MATNR.  "Material
    APPEND LW_STOLOCAX TO LIT_STOLOCAX.
    CLEAR LW_STOLOCAX.
  ENDLOOP.

  ENDLOOP.

  APPEND LW_CLIENTDATA TO LIT_CLIENTDATA.
  CLEAR LW_CLIENTDATA.

  APPEND LW_CLIENTDATAX TO LIT_CLIENTDATAX.
  CLEAR LW_CLIENTDATAX.

* Edit the table "MATERIALDESCRIPTION"
  LW_METERAIL_DES-FUNCTION       = LV_FUN.            "Function of BAPI
  LW_METERAIL_DES-LANGU          = CNS_EN.            "LANGU
  LW_METERAIL_DES-MATL_DESC      = C_W_ORGA-MAKTX.    "Description
  LW_METERAIL_DES-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  APPEND LW_METERAIL_DES TO LIT_METERAIL_DES.
  CLEAR: LW_METERAIL_DES.
  LW_METERAIL_DES-FUNCTION       = LV_FUN.            "Function of BAPI
  LW_METERAIL_DES-LANGU          = CNS_JA.            "LANGU
  LW_METERAIL_DES-MATL_DESC      = C_W_ORGA-MAKTX.    "Description
  LW_METERAIL_DES-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  APPEND LW_METERAIL_DES TO LIT_METERAIL_DES.
  CLEAR: LW_METERAIL_DES.

* Edit the table "UNITSOFMEASURE"
  LW_UNITSOFMEASURE-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_UNITSOFMEASURE-ALT_UNIT        = C_W_ORGA-MEINS.     "Alternative Unit of Measure
  LW_UNITSOFMEASURE-GROSS_WT        = C_W_ORGA-BRGEW.     "Gross weight
  LW_UNITSOFMEASURE-UNIT_OF_WT      = C_W_ORGA-GEWEI.     "Gross weight
  LW_UNITSOFMEASURE-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
  APPEND LW_UNITSOFMEASURE TO LIT_UNITSOFMEASURE.

* Edit the table "UNITSOFMEASUREX (Register Parameter)"
  LW_UNITSOFMEASUREX-FUNCTION       = LV_FUN.               "Function of BAPI
  LW_UNITSOFMEASUREX-ALT_UNIT       = C_W_ORGA-MEINS.       "Alternative Unit of Measure
  LW_UNITSOFMEASUREX-GROSS_WT       = CNS_FLG_X.            "Gross weight
  LW_UNITSOFMEASUREX-UNIT_OF_WT     = CNS_FLG_X.            "Gross
  LW_UNITSOFMEASUREX-MATERIAL_LONG  = C_W_ORGA-MATNR.       "Material
  APPEND LW_UNITSOFMEASUREX TO LIT_UNITSOFMEASUREX.


*** Edit the table " MATERIALLONGTEXT" (BAPI_MLTX (Basic data text))
  LW_MAT_LONGTEXT-FUNCTION        = LV_FUN.                 "Function of BAPI
  LW_MAT_LONGTEXT-TEXT_ID         = CNS_GRUN.               "Text ID
  LW_MAT_LONGTEXT-TEXT_NAME       = C_W_ORGA-MATNR. "#EC CI_FLDEXT_OK[2215424]    "Text Name
  LW_MAT_LONGTEXT-APPLOBJECT      = CNS_MATERIAL.           "Text object
  LW_MAT_LONGTEXT-LANGU           = CNS_EN.                 "Language key
  LW_MAT_LONGTEXT-FORMAT_COL      = '/'.                    "Language key
  IF C_W_ORGA-ZSREMAR1 IS INITIAL .
    LW_MAT_LONGTEXT-DEL_FLAG = ABAP_TRUE.
  ELSE.
    LW_MAT_LONGTEXT-TEXT_LINE  = C_W_ORGA-ZSREMAR1.   "Remarks (EN)
  ENDIF.
  LW_MAT_LONGTEXT-MATERIAL_LONG   = C_W_ORGA-MATNR.         "Material
  APPEND LW_MAT_LONGTEXT TO LIT_MAT_LONGTEXT.
  CLEAR LW_MAT_LONGTEXT.

  CLEAR:LW_MAT_LONGTEXT.
  LW_MAT_LONGTEXT-FUNCTION    = LV_FUN.                 "Function of BAPI
  LW_MAT_LONGTEXT-TEXT_ID     = CNS_GRUN.               "Text ID
  LW_MAT_LONGTEXT-TEXT_NAME   = C_W_ORGA-MATNR. "#EC CI_FLDEXT_OK[2215424]    "Text Name
  LW_MAT_LONGTEXT-APPLOBJECT  = CNS_MATERIAL.           "Text object
  LW_MAT_LONGTEXT-LANGU       = CNS_JA.                 "Language key
  LW_MAT_LONGTEXT-FORMAT_COL  = '/'.                    "Language key
  IF C_W_ORGA-ZSREMAR2 IS INITIAL .
    LW_MAT_LONGTEXT-DEL_FLAG = ABAP_TRUE.
  ELSE.
    LW_MAT_LONGTEXT-TEXT_LINE  = C_W_ORGA-ZSREMAR2.    "Remarks (JP)
  ENDIF.
  LW_MAT_LONGTEXT-MATERIAL_LONG   = C_W_ORGA-MATNR.         "Material
  APPEND LW_MAT_LONGTEXT TO LIT_MAT_LONGTEXT.
  CLEAR LW_MAT_LONGTEXT.

* Edit the structure for " EXTENSIONIN" (for MARA)
  LW_TE_MARA-MATERIAL   = C_W_ORGA-MATNR.
  LW_TE_MARA-ZZSPCOMP   = C_W_ORGA-ZSPCOMP.
  LW_TE_MARA-ZZDEVI     = C_W_ORGA-ZDEVI.
  LW_TE_MARA-ZZCLASS    = C_W_ORGA-ZCLASS.
  LW_TE_MARA-ZZMODEL    = C_W_ORGA-ZMODEL.
  LW_TE_MARA-ZZLEAPFLG  = C_W_ORGA-ZLEAPFLG.
  LW_TE_MARA-ZZFORC     = C_W_ORGA-ZFORC.
  LW_TE_MARA-ZZFSPC     = C_W_ORGA-ZFSPC.
  LW_TE_MARA-ZZNARABC   = C_W_ORGA-ZNARABC.
  LW_TE_MARA-ZZLGPF     = C_W_ORGA-ZLGPF.
  LW_TE_MARA-ZZSERNC    = C_W_ORGA-ZSERNC.
  LW_TE_MARA-ZZMANU     = C_W_ORGA-ZMANU.
  LW_TE_MARA-ZZTEDO     = C_W_ORGA-ZTEDO.
  LW_TE_MARA-ZZSEBIZF   = C_W_ORGA-ZSEBIZF.
  LW_TE_MARA-ZZDEBIZF   = C_W_ORGA-ZDEBIZF.
  LW_TE_MARA-ZZCOC      = C_W_ORGA-ZCOC.
  LW_TE_MARA-ZZPSCORE   = C_W_ORGA-ZPSCORE.
  LW_TE_MARA-ZZALLOC    = C_W_ORGA-ZALLOC.
  LW_TE_MARA-ZZCOC      = C_W_ORGA-ZCOC.
  LW_TE_MARA-ZZDELF     = C_W_ORGA-ZDELF.
  LW_TE_MARA-ZZSCSI     = C_W_ORGA-ZSCSI.
  LW_EXTENSIONIN-FUNCTION      = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE     = CNS_BAPI_MARA.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN-MATERIAL_EXTERNAL = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)       = LW_TE_MARA. "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

* Edit the structure for " EXTENSIONINX" (for MARA)
  LW_TE_MARAX-MATERIAL    = C_W_ORGA-MATNR.
  LW_TE_MARAX-ZZSPCOMP    = CNS_FLG_X.
  LW_TE_MARAX-ZZDEVI      = CNS_FLG_X.
  LW_TE_MARAX-ZZCLASS     = CNS_FLG_X.
  LW_TE_MARAX-ZZMODEL     = CNS_FLG_X.
  LW_TE_MARAX-ZZLEAPFLG   = CNS_FLG_X.
  LW_TE_MARAX-ZZFORC      = CNS_FLG_X.
  LW_TE_MARAX-ZZFSPC      = CNS_FLG_X.
  LW_TE_MARAX-ZZNARABC    = CNS_FLG_X.
  LW_TE_MARAX-ZZLGPF      = CNS_FLG_X.
  LW_TE_MARAX-ZZSERNC     = CNS_FLG_X.
  LW_TE_MARAX-ZZMANU      = CNS_FLG_X.
  LW_TE_MARAX-ZZTEDO      = CNS_FLG_X.
  LW_TE_MARAX-ZZSEBIZF    = CNS_FLG_X.
  LW_TE_MARAX-ZZDEBIZF    = CNS_FLG_X.
  LW_TE_MARAX-ZZCOC       = CNS_FLG_X.
  LW_TE_MARAX-ZZPSCORE    = CNS_FLG_X.
  LW_TE_MARAX-ZZALLOC     = CNS_FLG_X.
  LW_TE_MARAX-ZZCOC       = CNS_FLG_X.
  LW_TE_MARAX-ZZDELF      = CNS_FLG_X.
  LW_TE_MARAX-ZZSCSI      = CNS_FLG_X.
  LW_EXTENSIONINX-FUNCTION    = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE   = CNS_BAPI_MARAX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949)       = LW_TE_MARAX. "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR:LW_EXTENSIONINX.

* Edit the structure for " EXTENSIONIN" (for MVKE)
  LW_TE_MVKE-MATERIAL       = C_W_ORGA-MATNR.
  LW_TE_MVKE-SALES_ORG      = C_W_ORGA-VKORG1.
  LW_TE_MVKE-DISTR_CHAN     = CNS_00.
  LW_TE_MVKE-ZZORITN        = C_W_ORGA-ZORITN.
  LW_EXTENSIONIN-FUNCTION   = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE  = CNS_BAPI_MVKE.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)    = LW_TE_MVKE.    "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

* Edit the structure for " EXTENSIONINX" (for MVKE)
  LW_TE_MVKEX-MATERIAL      = C_W_ORGA-MATNR.
  LW_TE_MVKEX-SALES_ORG     = C_W_ORGA-VKORG1.
  LW_TE_MVKEX-DISTR_CHAN    = CNS_00.
  LW_TE_MVKEX-ZZORITN       = CNS_FLG_X.
  LW_EXTENSIONINX-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE = CNS_BAPI_MVKEX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949)   = LW_TE_MVKEX.   "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR:LW_EXTENSIONINX.

  SELECT SINGLE MATNR               "#EC CI_SUBRC
    FROM MARA
    INTO LV_MATNR
    WHERE MATNR = C_W_ORGA-MATNR.
*< End INS R2 Modification 2021/04/12----------------------------*
                                              "#EC CI_USAGE_OK[2438006]
  CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
    EXPORTING
      NOAPPLLOG            = ABAP_TRUE
      NOCHANGEDOC          = ABAP_FALSE
      TESTRUN              = ABAP_FALSE
      INPFLDCHECK          = ABAP_FALSE
    IMPORTING
      RETURN               = LW_RETURN
    TABLES
      HEADDATA             = LIT_HEAD
      CLIENTDATA           = LIT_CLIENTDATA
      CLIENTDATAX          = LIT_CLIENTDATAX
      PLANTDATA            = LIT_PLANTDATA
      PLANTDATAX           = LIT_PLANTDATAX
      STORAGELOCATIONDATA  = LIT_STOLOCA
      STORAGELOCATIONDATAX = LIT_STOLOCAX
      VALUATIONDATA        = LIT_VALUATION
      VALUATIONDATAX       = LIT_VALUATIONX
      SALESDATA            = LIT_SALESDATA
      SALESDATAX           = LIT_SALESDATAX
      MATERIALDESCRIPTION  = LIT_METERAIL_DES
      UNITSOFMEASURE       = LIT_UNITSOFMEASURE
      UNITSOFMEASUREX      = LIT_UNITSOFMEASUREX
      MATERIALLONGTEXT     = LIT_MAT_LONGTEXT
      TAXCLASSIFICATIONS   = LIT_TAXCLASSI
      EXTENSIONIN          = LIT_EXTENSIONIN
      EXTENSIONINX         = LIT_EXTENSIONINX
      RETURNMESSAGES       = LIT_RETURN.       "#EC CI_USAGE_OK[2438131]

  IF ( LW_RETURN-TYPE <> CNS_A_VALUE
    AND LW_RETURN-TYPE <> CNS_FLG_E ).

*---------------------add--------bapi end -----------

*---------------------del--------bapi start -----------

    IF C_V_CONTIN_FLG = CNS_FLG_X.
      C_W_ORGA-PRC_STS = CNS_2.
      C_W_ORGA-U_DATE = SY-DATUM.
      C_W_ORGA-U_TIME = SY-UZEIT.
      C_W_ORGA-U_USER = SY-UNAME.
*> REP SIR1182 2020/07/31
*      C_W_ORGA-U_PGM = SY-CPROG.
      C_W_ORGA-U_PGM = SY-REPID.
*< REP SIR1182 2020/07/31
      RETURN.
    ENDIF.

*228
*> REP CR1747 2021/05/24 ----------------------------------------------*
    DATA(LIT_MARD_DATA) = U_IT_MARD_DATA.
    DELETE LIT_MARD_DATA WHERE MATNR  <> C_W_ORGA-MATNR. "#EC CI_STDSEQ
    LOOP AT LIT_MARD_DATA ASSIGNING FIELD-SYMBOL(<LW_MARD_DATA>).
      LW_MRP_CRT-WERKS  = <LW_MARD_DATA>-WERKS.
      LW_MRP_CRT-LGORT  = <LW_MARD_DATA>-LGORT.
      APPEND LW_MRP_CRT TO LIT_MRP_CRT.
      CLEAR LW_MRP_CRT.
    ENDLOOP.
    LOOP AT LIT_STOR_VIEW ASSIGNING <LW_STOR_VIEW2>.
      LW_MRP_CRT-WERKS  = <LW_STOR_VIEW2>-WERKS.
      LW_MRP_CRT-LGORT  = <LW_STOR_VIEW2>-LGORT.
      APPEND LW_MRP_CRT TO LIT_MRP_CRT.
      CLEAR LW_MRP_CRT.
    ENDLOOP.
*
    LOOP AT U_IT_PLANT_DATA ASSIGNING <LW_PLANT_DATA>
      WHERE KUNNR = C_W_ORGA-KUNNR.

      LOOP AT GIT_MDLV  ASSIGNING FIELD-SYMBOL(<LW_MRP_MDLV>) WHERE WERKS = <LW_PLANT_DATA>-WERKS. "#EC CI_STDSEQ

        READ TABLE U_IT_MDMA_DATA TRANSPORTING NO FIELDS WITH TABLE KEY NS01
        COMPONENTS MATNR = C_W_ORGA-MATNR
                   BERID   = <LW_MRP_MDLV>-BERID.
        IF SY-SUBRC = 0.
          CONTINUE.
        ENDIF.

*   Edit Structure [I_MDMA]
        LW_I_MDMA-MATNR       = C_W_ORGA-MATNR.               "Material
        LW_I_MDMA-BERID       = <LW_MRP_MDLV>-BERID.          "MRP Area
*         LW_I_MDMA-WERKS        = <LW_STOR_VIEW2>-WERKS.         "Plant
        LW_I_MDMA-WERKS       = <LW_MRP_MDLV>-WERKS.         "Plant  "228
        LW_I_MDMA-DISMM       = U_V_MRP_TYP.         "MRP Type

*   Edit Structure [I_SELFIELDS]
        LW_I_SELFIELDS-XDISMM = CNS_FLG_X.                    "MRP TYPE

        CALL FUNCTION 'MD_MRP_LEVEL_CREATE_DATA'
          EXPORTING
            I_MATNR           = C_W_ORGA-MATNR
            I_WERK            = LW_I_MDMA-WERKS
            I_MRP_AREA        = LW_I_MDMA-BERID
            I_SELFIELDS       = LW_I_SELFIELDS
            I_MDMA            = LW_I_MDMA
            I_DPOP            = LW_DPOP
            I_QUEUE_FLAG      = 'X'
            I_SAVE_FLAG       = 'X'
            I_EXTERNAL_COMMIT = SPACE         "C
          IMPORTING
            E_ERROR_RETURN    = LW_ERR_RETURN.

        IF ( LW_ERR_RETURN-TYPE = CNS_A_VALUE
             OR  LW_ERR_RETURN-TYPE =  CNS_FLG_E ).

          C_V_CONTIN_FLG = CNS_FLG_X.

          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

          CLEAR: LW_APPLOG_STR.

          MESSAGE ID    LW_ERR_RETURN-ID
                 TYPE   LW_ERR_RETURN-TYPE
               NUMBER   LW_ERR_RETURN-NUMBER
                 WITH   LW_ERR_RETURN-MESSAGE_V1
                        LW_ERR_RETURN-MESSAGE_V2
                        LW_ERR_RETURN-MESSAGE_V3
                        LW_ERR_RETURN-MESSAGE_V4
                 INTO   LV_MESSAGE.

          LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
          LW_APPLOG_STR-WERKS = LW_I_MDMA-WERKS.
          LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
          LW_APPLOG_STR-TARGET_MASTER = CNS_MATERIAL_T.

          PERFORM F_GET_APPLOG
            USING
              LW_APPLOG_STR                  "message context
              LW_ERR_RETURN-TYPE
            CHANGING
              C_IT_APPLOG.                   "Application Log Table

          IF C_V_CONTIN_FLG = CNS_FLG_X.
            C_W_ORGA-PRC_STS = CNS_2.
            C_W_ORGA-U_DATE = SY-DATUM.
            C_W_ORGA-U_TIME = SY-UZEIT.
            C_W_ORGA-U_USER = SY-UNAME.
            C_W_ORGA-U_PGM = SY-REPID.
            C_V_CONTIN_FLG  = CNS_FLG_X.
            RETURN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDLOOP.


* IF structure[Return]-type = 'E' or 'A'
  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    CLEAR:LW_APPLOG_STR.

    MESSAGE ID     LW_RETURN-ID
            TYPE   LW_RETURN-TYPE
            NUMBER LW_RETURN-NUMBER
            WITH   LW_RETURN-MESSAGE_V1
                   LW_RETURN-MESSAGE_V2
                   LW_RETURN-MESSAGE_V3
                   LW_RETURN-MESSAGE_V4
            INTO   LV_MESSAGE.

  LOOP AT U_IT_PLANT_DATA ASSIGNING <LW_PLANT_DATA>
    WHERE KUNNR = C_W_ORGA-KUNNR.
    LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
    LW_APPLOG_STR-WERKS = <LW_PLANT_DATA>-WERKS.
    LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
    LW_APPLOG_STR-TARGET_MASTER = CNS_MATERIAL_T.

*  The process is skipped because of &1
    PERFORM F_GET_APPLOG
      USING
        LW_APPLOG_STR                  "message context
        LW_RETURN-TYPE                  "message context
      CHANGING
        C_IT_APPLOG.                   "Application Log Table

    C_W_ORGA-PRC_STS = CNS_2.
    C_W_ORGA-U_DATE = SY-DATUM.
    C_W_ORGA-U_TIME = SY-UZEIT.
    C_W_ORGA-U_USER = SY-UNAME.
    C_W_ORGA-U_PGM = SY-REPID.

    C_V_CONTIN_FLG = CNS_FLG_X.
    ENDLOOP.
    RETURN.

  ENDIF.

        C_V_FUN = LV_FUN.
        IF LV_FUN = CNS_INS.
*         material does not exist in table MARA,then create classification view
          IF LV_MATNR IS INITIAL.

            CLEAR LW_CRE_CLASSVIEW.

            READ TABLE U_IT_FIXED_VAL INTO LW_FIXED_VAL  "#EC CI_SUBRC  #EC CI_STDSEQ
              WITH KEY KEY1 = CNS_CLASS
                       KEY2 = CNS_KLART.
            IF SY-SUBRC = 0.
            LW_CRE_CLASSVIEW-CLASSNUM    = LW_FIXED_VAL-VALUE1.                "Z_BATCH_CLASS
            LW_CRE_CLASSVIEW-CLASSTYPE   = LW_FIXED_VAL-VALUE2.                "023
            ENDIF.
            LW_CRE_CLASSVIEW-OBJECT_LONG = C_W_ORGA-MATNR.                     "Material
            LW_CRE_CLASSVIEW-OBJECTTABLE = CNS_OBJECTTABLE.                    "MARA
            LW_CRE_CLASSVIEW-KEYDATE     = SY-DATUM.

            CALL FUNCTION 'BAPI_OBJCL_CREATE'
             EXPORTING
               OBJECTKEYNEW_LONG = LW_CRE_CLASSVIEW-OBJECT_LONG
               OBJECTTABLENEW    = LW_CRE_CLASSVIEW-OBJECTTABLE
               CLASSNUMNEW       = LW_CRE_CLASSVIEW-CLASSNUM
               CLASSTYPENEW      = LW_CRE_CLASSVIEW-CLASSTYPE
               STATUS            = CNS_VALUE_1
               STANDARDCLASS     = CNS_FLG_X
               KEYDATE           = LW_CRE_CLASSVIEW-KEYDATE
             TABLES
               RETURN            = LIT_RETURN.

             LOOP AT LIT_RETURN INTO DATA(LW_RETURN_CLA)
               WHERE TYPE = CNS_A_VALUE
                  OR TYPE = CNS_FLG_E. "#EC CI_STDSEQ
             ENDLOOP.
             IF SY-SUBRC = 0.

              C_V_CONTIN_FLG = CNS_FLG_X.

              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

              CLEAR: LW_APPLOG_STR.

              MESSAGE ID    LW_RETURN_CLA-ID
                     TYPE   LW_RETURN_CLA-TYPE
                   NUMBER   LW_RETURN_CLA-NUMBER
                     WITH   LW_RETURN_CLA-MESSAGE_V1
                            LW_RETURN_CLA-MESSAGE_V2
                            LW_RETURN_CLA-MESSAGE_V3
                            LW_RETURN_CLA-MESSAGE_V4
                     INTO   LV_MESSAGE.

              LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
              LW_APPLOG_STR-WERKS = C_W_ORGA-VKORG1.
              LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
              LW_APPLOG_STR-TARGET_MASTER = CNS_CLASSIFICATION.

              PERFORM F_GET_APPLOG
                USING
                  LW_APPLOG_STR                  "message context
                  LW_RETURN_CLA-TYPE
                CHANGING
                  C_IT_APPLOG.                   "Application Log Table

              IF C_V_CONTIN_FLG = CNS_FLG_X.
                C_W_ORGA-PRC_STS = CNS_2.
                C_W_ORGA-U_DATE = SY-DATUM.
                C_W_ORGA-U_TIME = SY-UZEIT.
                C_W_ORGA-U_USER = SY-UNAME.
                C_W_ORGA-U_PGM = SY-REPID.
                C_V_CONTIN_FLG  = CNS_FLG_X.
                RETURN.
              ENDIF.
             ENDIF.

          ENDIF.
        ENDIF.

*&---------------------------------------------------------------------*
*& Report YLXTEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YLXTEST.


***********NEW BAPI  CTF
  DATA:LV_FUN              TYPE BAPIFN,
       LW_HEAD             TYPE BAPIE1MATHEADER,
       LIT_HEAD            TYPE TABLE OF BAPIE1MATHEADER,
       LW_CLIENTDATA       TYPE BAPIE1MARA,
       LW_CLIENTDATAX      TYPE BAPIE1MARAX,
       LIT_CLIENTDATA      TYPE TABLE OF BAPIE1MARA,
       LIT_CLIENTDATAX     TYPE TABLE OF BAPIE1MARAX,
       LW_SALESDATA        TYPE BAPIE1MVKE,
       LIT_SALESDATA       TYPE TABLE OF BAPIE1MVKE,
       LW_SALESDATAX       TYPE BAPIE1MVKEX,
       LIT_SALESDATAX      TYPE TABLE OF BAPIE1MVKEX,
       LW_TAXCLASSI        TYPE BAPIE1MLAN,
       LIT_TAXCLASSI       TYPE TABLE OF BAPIE1MLAN,
       LW_PLANTDATA        TYPE BAPIE1MARC,
       LIT_PLANTDATA       TYPE TABLE OF BAPIE1MARC,
       LW_PLANTDATAX       TYPE BAPIE1MARCX,
       LIT_PLANTDATAX      TYPE TABLE OF BAPIE1MARCX,
       LW_VALUATION        TYPE BAPIE1MBEW,
       LIT_VALUATION       TYPE TABLE OF BAPIE1MBEW,
       LW_VALUATIONX       TYPE BAPIE1MBEWX,
       LIT_VALUATIONX      TYPE TABLE OF BAPIE1MBEWX,
       LW_STOLOCA          TYPE BAPIE1MARD,
       LIT_STOLOCA         TYPE TABLE OF BAPIE1MARD,
       LW_STOLOCAX         TYPE BAPIE1MARDX,
       LIT_STOLOCAX        TYPE TABLE OF BAPIE1MARDX,
       LW_METERAIL_DES     TYPE BAPIE1MAKT,
       LIT_METERAIL_DES    TYPE TABLE OF BAPIE1MAKT,
       LW_UNITSOFMEASURE   TYPE BAPIE1MARM,
       LIT_UNITSOFMEASURE  TYPE TABLE OF BAPIE1MARM,
       LW_UNITSOFMEASUREX  TYPE BAPIE1MARMX,
       LIT_UNITSOFMEASUREX TYPE TABLE OF BAPIE1MARMX,
       LW_MAT_LONGTEXT     TYPE BAPIE1MLTX,
       LIT_MAT_LONGTEXT    TYPE TABLE OF BAPIE1MLTX,
       LW_TE_MARA          TYPE BAPI_TE_E1MARA2,
       LW_TE_MARAX         TYPE BAPI_TE_E1MARA2X,
       LW_TE_MARC          TYPE BAPI_TE_E1MARC2,
       LW_TE_MARCX         TYPE BAPI_TE_E1MARC2X,
       LW_TE_MVKE          TYPE BAPI_TE_E1MVKE2,
       LW_TE_MVKEX         TYPE BAPI_TE_E1MVKE2X,
       LW_EXTENSIONIN      TYPE BAPIE1PAREX,
       LIT_EXTENSIONIN     TYPE STANDARD TABLE OF BAPIE1PAREX,
       LW_EXTENSIONINX     TYPE BAPIE1PAREXX,
       LIT_EXTENSIONINX    TYPE STANDARD TABLE OF BAPIE1PAREXX,
       LIT_RETURN          TYPE STANDARD TABLE OF BAPIRET2,
       LIT_STOR_VIEW       TYPE TYP_IT_STOR,          "Storage Location
       LIT_MRP_CRT         TYPE TYP_IT_STOR,          "MRP Area Create  "SIR228
       LW_MRP_CRT          TYPE TYP_W_STOR.          "MRP Area Create  "SIR228
  FIELD-SYMBOLS: <LW_ANY> TYPE ANY.

  DATA:
    LV_WAERS    TYPE T001-WAERS,
    LV_DATE     TYPE SYST-DATUM,
    LV_C_ZCPUPR TYPE ZMAT0010-ZCPUPR.

  DATA:
    LV_MATNR            TYPE MARA-MATNR,
    LV_PROFILE          TYPE CHAR1,
    LW_CRE_CLASSVIEW    TYPE BAPI1003_KEY.

  LIT_STOR_VIEW = GIT_STOR_VIEW.          "Storage Location

  READ TABLE U_IT_MARA_DATA TRANSPORTING NO FIELDS
    WITH KEY NS01 COMPONENTS
      MATNR = C_W_ORGA-MATNR.
  IF SY-SUBRC = 0.
    LV_FUN = CNS_UPD.
  ELSE.
    LV_FUN = CNS_INS.
  ENDIF.

* Get factory material information
  READ TABLE U_IT_MARA_R2 INTO DATA(LW_MARA_R2)
        WITH KEY NS01 COMPONENTS
        MATNR = C_W_ORGA-ZDEVI.
  IF SY-SUBRC <> 0.
    CLEAR LW_MARA_R2.
  ENDIF.

*  LW_HEAD-MATERIAL        = C_W_ORGA-MATNR.     "Material
  LW_HEAD-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_HEAD-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
  LW_HEAD-IND_SECTOR      = GV_INDUSTRY.        "Industry Sector
  LW_HEAD-MATL_TYPE       = C_W_ORGA-MTART.     "Material Type
  LW_HEAD-BASIC_VIEW      = CNS_FLG_X.          "Basic View
  LW_HEAD-SALES_VIEW      = CNS_FLG_X.          "Sales View
  LW_HEAD-PURCHASE_VIEW   = CNS_FLG_X.          "PURCHASE View
  LW_HEAD-ACCOUNT_VIEW    = CNS_FLG_X.          "Accounting View
  LW_HEAD-STORAGE_VIEW    = CNS_FLG_X.          "Storage View
  LW_HEAD-COST_VIEW       = CNS_FLG_X.          "Cost View
  LW_HEAD-MRP_VIEW        = CNS_FLG_X.          "MRPView
  APPEND LW_HEAD TO LIT_HEAD.
  CLEAR LW_HEAD.

* Edit the structure "CLIENTDATA"
  LW_CLIENTDATA-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_CLIENTDATA-MATL_GROUP      = C_W_ORGA-MATKL.     "Material Group
  LW_CLIENTDATA-BASE_UOM        = C_W_ORGA-MEINS.     "Base Unit
  LW_CLIENTDATA-NET_WEIGHT      = C_W_ORGA-NTGEW.     "Net weight
  LW_CLIENTDATA-UNIT_OF_WT      = C_W_ORGA-GEWEI.     "Weight unit
  LW_CLIENTDATA-DIVISION        = CNS_00.             "Division
  LW_CLIENTDATA-HIGH_VISC       = C_W_ORGA-IHIVI.     "FS Flag
  LW_CLIENTDATA-DOCUMENT        = C_W_ORGA-ZEINR.     "DOCUMENT
  LW_CLIENTDATA-BATCH_MGMT      = ABAP_TRUE.          "Batch management
  LW_CLIENTDATA-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material No.
  LW_CLIENTDATA-SHELF_LIFE   = LW_MARA_R2-MHDHB.     "Total shelf life
  LW_CLIENTDATA-MINREMLIFE   = LW_MARA_R2-MHDRZ.     "Min.Rem.Shelf Life
  LW_CLIENTDATA-PERIOD_IND_EXPIRATION_DATE
                               = LW_MARA_R2-IPRKZ.     "Period Ind. For SLED
  LW_CLIENTDATA-SLED_BBD     = LW_MARA_R2-SLED_BBD.  "Expiration Date

* Edit the structure "CLIENTDATAX (Register Parameter)"
  LW_CLIENTDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_CLIENTDATAX-MATL_GROUP     = CNS_FLG_X.         "Material Group
  LW_CLIENTDATAX-BASE_UOM       = CNS_FLG_X.         "Base Unit
  LW_CLIENTDATAX-NET_WEIGHT     = CNS_FLG_X.         "Net weight
  LW_CLIENTDATAX-UNIT_OF_WT     = CNS_FLG_X.         "Weight unit
  LW_CLIENTDATAX-DIVISION       = CNS_FLG_X.         "Division
  LW_CLIENTDATAX-HIGH_VISC      = CNS_FLG_X.         "FS Flag
  LW_CLIENTDATAX-DOCUMENT       = CNS_FLG_X.         "DOCUMENT
  LW_CLIENTDATAX-BATCH_MGMT     = ABAP_TRUE.         "Batch management
  LW_CLIENTDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.    "Material No.
*> Start INS R2 Modification 2021/01/29
  IF LW_MARA_R2 IS NOT INITIAL .
    LW_CLIENTDATAX-SHELF_LIFE   = CNS_FLG_X.          "Total shelf life
    LW_CLIENTDATAX-MINREMLIFE   = CNS_FLG_X.          "Min.Rem.Shelf Life
    LW_CLIENTDATAX-PERIOD_IND_EXPIRATION_DATE
                               = CNS_FLG_X.          "Period Ind. For SLED
    LW_CLIENTDATAX-SLED_BBD     = CNS_FLG_X.          "Expiration Date
  ENDIF.

* Edit the structure "SALESDATA"
  LW_SALESDATA-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_SALESDATA-SALES_ORG      = C_W_ORGA-VKORG1.     "sales organization
  LW_SALESDATA-DISTR_CHAN     = CNS_00.              "Distribution channel
  LW_SALESDATA-SAL_STATUS     = U_V_ZSSTUS.          "Sales status [sales]
  PERFORM F_ALPHA_INPUT CHANGING LW_SALESDATA-SAL_STATUS.
  LW_SALESDATA-VALID_FROM     = U_V_ZVMSTD.           "Valid from
  LW_SALESDATA-ITEM_CAT       = GV_ICAT_GRP.          "Item category Group
  LW_SALESDATA-MATL_GRP_1     = C_W_ORGA-MVGR1.       "Product Code
  LW_SALESDATA-MATL_GRP_2     = C_W_ORGA-MVGR2.       "Consumables Type
  LW_SALESDATA-DELY_UNIT      = C_W_ORGA-SCMNG.       "Delivery unit
  LW_SALESDATA-MIN_ORDER      = C_W_ORGA-AUMNG.       "Minimum  Ordering Quantity
  LW_SALESDATA-MAT_PR_GRP     = C_W_ORGA-KONDM.       "Material Price Group
  LW_SALESDATA-MATERIAL_LONG  = C_W_ORGA-MATNR.       "Material
  APPEND LW_SALESDATA TO LIT_SALESDATA.
  CLEAR LW_SALESDATA.

* Edit the structure "SALESDATAX (Register Parameter)"
  LW_SALESDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_SALESDATAX-SALES_ORG      = C_W_ORGA-VKORG1.     "sales organization
  LW_SALESDATAX-DISTR_CHAN     = CNS_00.              "Distribution channel
  LW_SALESDATAX-SAL_STATUS     = CNS_FLG_X.           "Sales status [sales]
  LW_SALESDATAX-VALID_FROM     = CNS_FLG_X.           "Valid from
  LW_SALESDATAX-ITEM_CAT       = CNS_FLG_X.           "Item category Group
  LW_SALESDATAX-MATL_GRP_1     = CNS_FLG_X.           "Product Code
  LW_SALESDATAX-MATL_GRP_2     = CNS_FLG_X.           "Consumables Type
  LW_SALESDATAX-DELY_UNIT      = CNS_FLG_X.           "Delivery unit
  LW_SALESDATAX-MIN_ORDER      = CNS_FLG_X.           "Minimum  Ordering Quantity
  LW_SALESDATAX-MAT_PR_GRP     = CNS_FLG_X.           "Material Price Group
  LW_SALESDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.      "Material
  APPEND LW_SALESDATAX TO LIT_SALESDATAX.
  CLEAR LW_SALESDATAX.

* Edit the structure " TAXCLASSIFICATIONS"

* Get tax from fixed value by sales org
   LOOP AT U_IT_FIXED_VAL ASSIGNING FIELD-SYMBOL(<FS_FIXED>)
     WHERE KEY1 = C_W_ORGA-VKORG1 AND
           KEY2 = CNS_TAX.

      LW_TAXCLASSI-FUNCTION        = LV_FUN.             "Function of BAPI
      LW_TAXCLASSI-DEPCOUNTRY      = <FS_FIXED>-VALUE1.  "Departure country
      LW_TAXCLASSI-DEPCOUNTRY_ISO  = <FS_FIXED>-VALUE2.  "Departure country in ISO code
      LW_TAXCLASSI-TAX_TYPE_1      = <FS_FIXED>-VALUE3.  "Tax category
      LW_TAXCLASSI-TAXCLASS_1      = <FS_FIXED>-VALUE4.  "Tax classification material
      LW_TAXCLASSI-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
      APPEND LW_TAXCLASSI TO LIT_TAXCLASSI.
      CLEAR LW_TAXCLASSI.

   ENDLOOP.

  LOOP AT U_IT_PLANT_DATA ASSIGNING FIELD-SYMBOL(<LW_PLANT_DATA>)
    WHERE KUNNR = C_W_ORGA-KUNNR.

    READ TABLE U_IT_INFOR_GEN WITH TABLE KEY NS01
    COMPONENTS MATNR = C_W_ORGA-MATNR
               WERKS = <LW_PLANT_DATA>-WERKS
      INTO DATA(LW_INFORE_GEN).                                "#EC CI_SUBRC

* Edit the structure "PLANTDATA"
  LW_PLANTDATA-FUNCTION         = LV_FUN.             "Function of BAPI
*  LW_PLANTDATA-PLANT            = C_W_ORGA-WERKS1.     "Plant
  LW_PLANTDATA-PLANT            = <LW_PLANT_DATA>-WERKS.     "Plant
  LW_PLANTDATA-COUNTRYORI       = C_W_ORGA-HERKL.      "Country of origin
  LW_PLANTDATA-MRP_TYPE         = U_V_MRP_TYP.         " mrp typ
  LW_PLANTDATA-AVAILCHECK       = U_V_AVAI_CHK.        "Availability check
  LW_PLANTDATA-PUR_STATUS       = U_V_ZMSTUS.          "Material status [plant]
  PERFORM F_ALPHA_INPUT CHANGING LW_PLANTDATA-PUR_STATUS.
*  LW_PLANTDATA-PVALIDFROM       = U_V_ZMMSTD.          "Valid from
  LW_PLANTDATA-PVALIDFROM       = LW_INFORE_GEN-ZMMSTD. "Valid from
  LW_PLANTDATA-NO_COSTING       = SPACE.               "No cost calculations
  LW_PLANTDATA-LOT_SIZE         = CNS_VALUE_1.         "Costing Lot Size
  LW_PLANTDATA-PROFIT_CTR       = U_V_ZZPRCTR.         "Profit Center
  LW_PLANTDATA-MATERIAL_LONG    = C_W_ORGA-MATNR.         "Material
  READ TABLE U_IT_FIXED_VAL INTO DATA(LW_FIXED_VAL)
    WITH KEY KEY1 = CNS_EKGRP
             KEY2 = CNS_MATERIAL.                         "#EC CI_SUBRC
  LW_PLANTDATA-PUR_GROUP     = LW_FIXED_VAL-VALUE1.

* Edit the structure "PLANTDATAX (Register Parameter)"
  LW_PLANTDATAX-FUNCTION       = LV_FUN.             "Function of BAPI
*  LW_PLANTDATAX-PLANT          = C_W_ORGA-WERKS1.   "Plant
  LW_PLANTDATAX-PLANT          = <LW_PLANT_DATA>-WERKS.   "Plant
  LW_PLANTDATAX-COUNTRYORI     = CNS_FLG_X.         "Country of origin
  LW_PLANTDATAX-MRP_TYPE       = CNS_FLG_X.         "mrp typ
  LW_PLANTDATAX-AVAILCHECK     = CNS_FLG_X.         "Availability check
  LW_PLANTDATAX-PUR_STATUS     = CNS_FLG_X.         "Material status [plant]
  LW_PLANTDATAX-PVALIDFROM     = CNS_FLG_X.         "Valid from
  LW_PLANTDATAX-NO_COSTING     = CNS_FLG_X.         "No cost calculations
  LW_PLANTDATAX-LOT_SIZE       = CNS_FLG_X.         "Costing Lot Size
  LW_PLANTDATAX-PROFIT_CTR     = CNS_FLG_X.         "Profit Center
  LW_PLANTDATAX-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  LW_PLANTDATAX-PUR_GROUP      = CNS_FLG_X.
  APPEND LW_PLANTDATAX TO LIT_PLANTDATAX.
  CLEAR LW_PLANTDATAX.

*< End INS R2 Modification 2021/01/29
  APPEND LW_PLANTDATA TO LIT_PLANTDATA.
  CLEAR LW_PLANTDATA.

* 'Edit the structure for " EXTENSIONIN" (for MARC)
  LW_TE_MARC-MATERIAL   = C_W_ORGA-MATNR.
*  LW_TE_MARC-PLANT      = C_W_ORGA-WERKS1.
  LW_TE_MARC-PLANT      = <LW_PLANT_DATA>-WERKS.
  LW_TE_MARC-ZZSAAVA    = C_W_ORGA-ZSAAVA.
  LW_TE_MARC-ZZINTF     = C_W_ORGA-ZINTF.
  LW_TE_MARC-ZZDPFG     = C_W_ORGA-ZDPFG.
  LW_TE_MARC-ZZLABC     = C_W_ORGA-ZLABC.
  LW_TE_MARC-ZZSABC     = C_W_ORGA-ZSABC.
  LW_TE_MARC-ZZLBCA     = C_W_ORGA-ZLBCA.
  LW_TE_MARC-ZZFRUF     = C_W_ORGA-ZFRUF.
  IF LW_INFORE_GEN-MARC_INITIAL   = CNS_FLG_X.
    LW_TE_MARC-ZZASOP  = U_V_ZZASOP.
    LW_TE_MARC-ZZADERP = U_V_ZZADERP.
    LW_TE_MARC-ZZAPOP  = U_V_ZZAPOP.
    LW_TE_MARC-ZZAAUT  = U_V_ZZAAUT.
  ENDIF.
  LW_TE_MARC-ZZSLTR        = C_W_ORGA-ZSLTR.     "shijj add
  LW_TE_MARC-ZZSLTO        = C_W_ORGA-ZSLTO.     "shijj add
  LW_EXTENSIONIN-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE = CNS_BAPI_MARC.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)       =  LW_TE_MARC.
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

  LW_TE_MARCX-MATERIAL   = C_W_ORGA-MATNR.
*  LW_TE_MARCX-PLANT      = C_W_ORGA-WERKS1.
  LW_TE_MARCX-PLANT      = <LW_PLANT_DATA>-WERKS.
  LW_TE_MARCX-ZZSAAVA    = CNS_FLG_X.
  LW_TE_MARCX-ZZINTF     = CNS_FLG_X.
  LW_TE_MARCX-ZZDPFG     = CNS_FLG_X.
  LW_TE_MARCX-ZZLABC     = CNS_FLG_X.
  LW_TE_MARCX-ZZSABC     = CNS_FLG_X.
  LW_TE_MARCX-ZZLBCA     = CNS_FLG_X.
  LW_TE_MARCX-ZZFRUF     = CNS_FLG_X.
  IF LW_INFORE_GEN-MARC_INITIAL    = CNS_FLG_X.
    LW_TE_MARCX-ZZASOP   = CNS_FLG_X.
    LW_TE_MARCX-ZZADERP  = CNS_FLG_X.
    LW_TE_MARCX-ZZAPOP   = CNS_FLG_X.
    LW_TE_MARCX-ZZAAUT   = CNS_FLG_X.
  ENDIF.
  LW_TE_MARCX-ZZSLTR = CNS_FLG_X.       "shijj add
  LW_TE_MARCX-ZZSLTO = CNS_FLG_X.      "shijj add
  LW_EXTENSIONINX-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE = CNS_BAPI_MARCX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949) =  LW_TE_MARCX.
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR: LW_EXTENSIONINX.

* Edit the structure "VALUATIONDATA"
  LW_VALUATION-FUNCTION       = LV_FUN.             "Function of BAPI
*  LW_VALUATION-VAL_AREA       = C_W_ORGA-WERKS1.
  LW_VALUATION-VAL_AREA       = <LW_PLANT_DATA>-WERKS.
  LW_VALUATION-VAL_TYPE       = SPACE.
  LW_VALUATION-VAL_CLASS      = U_V_VAL_CLA.
  LW_VALUATION-PRICE_UNIT     = CNS_VALUE_1.
  CLEAR LV_WAERS.
  READ TABLE U_IT_T001 INTO DATA(LW_T001)
        WITH KEY NS01 COMPONENTS
        BUKRS = C_W_ORGA-BUKRS1.
  IF SY-SUBRC = 0.
    LV_WAERS = LW_T001-WAERS.
  ENDIF.

  LW_VALUATION-QTY_STRUCT = CNS_FLG_X.
  LW_VALUATION-ORIG_MAT   = 'X'.   "

  LW_VALUATION-MATERIAL_LONG = C_W_ORGA-MATNR.
  APPEND LW_VALUATION TO LIT_VALUATION.
  CLEAR LW_VALUATION.

* Edit the structure "VALUATIONDATAX (Register Parameter)"
  LW_VALUATIONX-FUNCTION       = LV_FUN.             "Function of BAPI
  LW_VALUATIONX-VAL_AREA       = <LW_PLANT_DATA>-WERKS.
  LW_VALUATIONX-VAL_TYPE       = SPACE.
  LW_VALUATIONX-VAL_CLASS      = CNS_FLG_X.
  LW_VALUATIONX-PRICE_UNIT     = CNS_FLG_X.

  IF LW_INFORE_GEN-MBEW_INITIAL = CNS_FLG_X.
    LW_VALUATIONX-STD_PRICE  = CNS_FLG_X.
  ENDIF.
  LW_VALUATIONX-QTY_STRUCT  = CNS_FLG_X.
  LW_VALUATIONX-ORIG_MAT    = 'X'.   "CHEN add"
  IF LW_INFORE_GEN-MBEW_Z = CNS_FLG_X.
    LW_VALUATIONX-FUTURE_PR  = CNS_FLG_X.
    LW_VALUATIONX-VALID_FROM = CNS_FLG_X.
  ENDIF.
  LW_VALUATIONX-MATERIAL_LONG = C_W_ORGA-MATNR.
  APPEND LW_VALUATIONX TO LIT_VALUATIONX.
  CLEAR LW_VALUATIONX.

** Edit the structure " STORAGELOCATIONDATA"

  LOOP AT LIT_STOR_VIEW ASSIGNING FIELD-SYMBOL(<LW_STOR_VIEW2>)
    WHERE WERKS = <LW_PLANT_DATA>-WERKS.

*   Edit the structure " STORAGELOCATIONDATA2"
    LW_STOLOCA-FUNCTION         = LV_FUN.             "Function of BAPI
    LW_STOLOCA-PLANT            = <LW_STOR_VIEW2>-WERKS.  "Plant
    LW_STOLOCA-STGE_LOC         = <LW_STOR_VIEW2>-LGORT.  "Storage location
    LW_STOLOCA-MATERIAL_LONG    = C_W_ORGA-MATNR.  "Material
    APPEND LW_STOLOCA TO LIT_STOLOCA.
    CLEAR LW_STOLOCA.

*   Edit the structure " STORAGELOCATIONDATA2X (Register Parameter)"
    LW_STOLOCAX-FUNCTION        = LV_FUN.             "Function of BAPI
    LW_STOLOCAX-PLANT           = <LW_STOR_VIEW2>-WERKS.  "Plant
    LW_STOLOCAX-STGE_LOC        = <LW_STOR_VIEW2>-LGORT.  "Storage location
    LW_STOLOCAX-MATERIAL_LONG   = C_W_ORGA-MATNR.  "Material
    APPEND LW_STOLOCAX TO LIT_STOLOCAX.
    CLEAR LW_STOLOCAX.
  ENDLOOP.

  ENDLOOP.

  APPEND LW_CLIENTDATA TO LIT_CLIENTDATA.
  CLEAR LW_CLIENTDATA.

  APPEND LW_CLIENTDATAX TO LIT_CLIENTDATAX.
  CLEAR LW_CLIENTDATAX.

* Edit the table "MATERIALDESCRIPTION"
  LW_METERAIL_DES-FUNCTION       = LV_FUN.            "Function of BAPI
  LW_METERAIL_DES-LANGU          = CNS_EN.            "LANGU
  LW_METERAIL_DES-MATL_DESC      = C_W_ORGA-MAKTX.    "Description
  LW_METERAIL_DES-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  APPEND LW_METERAIL_DES TO LIT_METERAIL_DES.
  CLEAR: LW_METERAIL_DES.
  LW_METERAIL_DES-FUNCTION       = LV_FUN.            "Function of BAPI
  LW_METERAIL_DES-LANGU          = CNS_JA.            "LANGU
  LW_METERAIL_DES-MATL_DESC      = C_W_ORGA-MAKTX.    "Description
  LW_METERAIL_DES-MATERIAL_LONG  = C_W_ORGA-MATNR.         "Material
  APPEND LW_METERAIL_DES TO LIT_METERAIL_DES.
  CLEAR: LW_METERAIL_DES.

* Edit the table "UNITSOFMEASURE"
  LW_UNITSOFMEASURE-FUNCTION        = LV_FUN.             "Function of BAPI
  LW_UNITSOFMEASURE-ALT_UNIT        = C_W_ORGA-MEINS.     "Alternative Unit of Measure
  LW_UNITSOFMEASURE-GROSS_WT        = C_W_ORGA-BRGEW.     "Gross weight
  LW_UNITSOFMEASURE-UNIT_OF_WT      = C_W_ORGA-GEWEI.     "Gross weight
  LW_UNITSOFMEASURE-MATERIAL_LONG   = C_W_ORGA-MATNR.     "Material
  APPEND LW_UNITSOFMEASURE TO LIT_UNITSOFMEASURE.

* Edit the table "UNITSOFMEASUREX (Register Parameter)"
  LW_UNITSOFMEASUREX-FUNCTION       = LV_FUN.               "Function of BAPI
  LW_UNITSOFMEASUREX-ALT_UNIT       = C_W_ORGA-MEINS.       "Alternative Unit of Measure
  LW_UNITSOFMEASUREX-GROSS_WT       = CNS_FLG_X.            "Gross weight
  LW_UNITSOFMEASUREX-UNIT_OF_WT     = CNS_FLG_X.            "Gross
  LW_UNITSOFMEASUREX-MATERIAL_LONG  = C_W_ORGA-MATNR.       "Material
  APPEND LW_UNITSOFMEASUREX TO LIT_UNITSOFMEASUREX.


*** Edit the table " MATERIALLONGTEXT" (BAPI_MLTX (Basic data text))
  LW_MAT_LONGTEXT-FUNCTION        = LV_FUN.                 "Function of BAPI
  LW_MAT_LONGTEXT-TEXT_ID         = CNS_GRUN.               "Text ID
  LW_MAT_LONGTEXT-TEXT_NAME       = C_W_ORGA-MATNR. "#EC CI_FLDEXT_OK[2215424]    "Text Name
  LW_MAT_LONGTEXT-APPLOBJECT      = CNS_MATERIAL.           "Text object
  LW_MAT_LONGTEXT-LANGU           = CNS_EN.                 "Language key
  LW_MAT_LONGTEXT-FORMAT_COL      = '/'.                    "Language key
  IF C_W_ORGA-ZSREMAR1 IS INITIAL .
    LW_MAT_LONGTEXT-DEL_FLAG = ABAP_TRUE.
  ELSE.
    LW_MAT_LONGTEXT-TEXT_LINE  = C_W_ORGA-ZSREMAR1.   "Remarks (EN)
  ENDIF.
  LW_MAT_LONGTEXT-MATERIAL_LONG   = C_W_ORGA-MATNR.         "Material
  APPEND LW_MAT_LONGTEXT TO LIT_MAT_LONGTEXT.
  CLEAR LW_MAT_LONGTEXT.

  CLEAR:LW_MAT_LONGTEXT.
  LW_MAT_LONGTEXT-FUNCTION    = LV_FUN.                 "Function of BAPI
  LW_MAT_LONGTEXT-TEXT_ID     = CNS_GRUN.               "Text ID
  LW_MAT_LONGTEXT-TEXT_NAME   = C_W_ORGA-MATNR. "#EC CI_FLDEXT_OK[2215424]    "Text Name
  LW_MAT_LONGTEXT-APPLOBJECT  = CNS_MATERIAL.           "Text object
  LW_MAT_LONGTEXT-LANGU       = CNS_JA.                 "Language key
  LW_MAT_LONGTEXT-FORMAT_COL  = '/'.                    "Language key
  IF C_W_ORGA-ZSREMAR2 IS INITIAL .
    LW_MAT_LONGTEXT-DEL_FLAG = ABAP_TRUE.
  ELSE.
    LW_MAT_LONGTEXT-TEXT_LINE  = C_W_ORGA-ZSREMAR2.    "Remarks (JP)
  ENDIF.
  LW_MAT_LONGTEXT-MATERIAL_LONG   = C_W_ORGA-MATNR.         "Material
  APPEND LW_MAT_LONGTEXT TO LIT_MAT_LONGTEXT.
  CLEAR LW_MAT_LONGTEXT.

* Edit the structure for " EXTENSIONIN" (for MARA)
  LW_TE_MARA-MATERIAL   = C_W_ORGA-MATNR.
  LW_TE_MARA-ZZSPCOMP   = C_W_ORGA-ZSPCOMP.
  LW_TE_MARA-ZZDEVI     = C_W_ORGA-ZDEVI.
  LW_TE_MARA-ZZCLASS    = C_W_ORGA-ZCLASS.
  LW_TE_MARA-ZZMODEL    = C_W_ORGA-ZMODEL.
  LW_TE_MARA-ZZLEAPFLG  = C_W_ORGA-ZLEAPFLG.
  LW_TE_MARA-ZZFORC     = C_W_ORGA-ZFORC.
  LW_TE_MARA-ZZFSPC     = C_W_ORGA-ZFSPC.
  LW_TE_MARA-ZZNARABC   = C_W_ORGA-ZNARABC.
  LW_TE_MARA-ZZLGPF     = C_W_ORGA-ZLGPF.
  LW_TE_MARA-ZZSERNC    = C_W_ORGA-ZSERNC.
  LW_TE_MARA-ZZMANU     = C_W_ORGA-ZMANU.
  LW_TE_MARA-ZZTEDO     = C_W_ORGA-ZTEDO.
  LW_TE_MARA-ZZSEBIZF   = C_W_ORGA-ZSEBIZF.
  LW_TE_MARA-ZZDEBIZF   = C_W_ORGA-ZDEBIZF.
  LW_TE_MARA-ZZCOC      = C_W_ORGA-ZCOC.
  LW_TE_MARA-ZZPSCORE   = C_W_ORGA-ZPSCORE.
  LW_TE_MARA-ZZALLOC    = C_W_ORGA-ZALLOC.
  LW_TE_MARA-ZZCOC      = C_W_ORGA-ZCOC.
  LW_TE_MARA-ZZDELF     = C_W_ORGA-ZDELF.
  LW_TE_MARA-ZZSCSI     = C_W_ORGA-ZSCSI.
  LW_EXTENSIONIN-FUNCTION      = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE     = CNS_BAPI_MARA.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN-MATERIAL_EXTERNAL = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)       = LW_TE_MARA. "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

* Edit the structure for " EXTENSIONINX" (for MARA)
  LW_TE_MARAX-MATERIAL    = C_W_ORGA-MATNR.
  LW_TE_MARAX-ZZSPCOMP    = CNS_FLG_X.
  LW_TE_MARAX-ZZDEVI      = CNS_FLG_X.
  LW_TE_MARAX-ZZCLASS     = CNS_FLG_X.
  LW_TE_MARAX-ZZMODEL     = CNS_FLG_X.
  LW_TE_MARAX-ZZLEAPFLG   = CNS_FLG_X.
  LW_TE_MARAX-ZZFORC      = CNS_FLG_X.
  LW_TE_MARAX-ZZFSPC      = CNS_FLG_X.
  LW_TE_MARAX-ZZNARABC    = CNS_FLG_X.
  LW_TE_MARAX-ZZLGPF      = CNS_FLG_X.
  LW_TE_MARAX-ZZSERNC     = CNS_FLG_X.
  LW_TE_MARAX-ZZMANU      = CNS_FLG_X.
  LW_TE_MARAX-ZZTEDO      = CNS_FLG_X.
  LW_TE_MARAX-ZZSEBIZF    = CNS_FLG_X.
  LW_TE_MARAX-ZZDEBIZF    = CNS_FLG_X.
  LW_TE_MARAX-ZZCOC       = CNS_FLG_X.
  LW_TE_MARAX-ZZPSCORE    = CNS_FLG_X.
  LW_TE_MARAX-ZZALLOC     = CNS_FLG_X.
  LW_TE_MARAX-ZZCOC       = CNS_FLG_X.
  LW_TE_MARAX-ZZDELF      = CNS_FLG_X.
  LW_TE_MARAX-ZZSCSI      = CNS_FLG_X.
  LW_EXTENSIONINX-FUNCTION    = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE   = CNS_BAPI_MARAX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949)       = LW_TE_MARAX. "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR:LW_EXTENSIONINX.

* Edit the structure for " EXTENSIONIN" (for MVKE)
  LW_TE_MVKE-MATERIAL       = C_W_ORGA-MATNR.
  LW_TE_MVKE-SALES_ORG      = C_W_ORGA-VKORG1.
  LW_TE_MVKE-DISTR_CHAN     = CNS_00.
  LW_TE_MVKE-ZZORITN        = C_W_ORGA-ZORITN.
  LW_EXTENSIONIN-FUNCTION   = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONIN-STRUCTURE  = CNS_BAPI_MVKE.
  LW_EXTENSIONIN-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONIN+51(949)    = LW_TE_MVKE.    "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONIN TO LIT_EXTENSIONIN.
  CLEAR:LW_EXTENSIONIN.

* Edit the structure for " EXTENSIONINX" (for MVKE)
  LW_TE_MVKEX-MATERIAL      = C_W_ORGA-MATNR.
  LW_TE_MVKEX-SALES_ORG     = C_W_ORGA-VKORG1.
  LW_TE_MVKEX-DISTR_CHAN    = CNS_00.
  LW_TE_MVKEX-ZZORITN       = CNS_FLG_X.
  LW_EXTENSIONINX-FUNCTION  = LV_FUN.                 "Function of BAPI
  LW_EXTENSIONINX-STRUCTURE = CNS_BAPI_MVKEX.
  LW_EXTENSIONINX-MATERIAL_LONG = C_W_ORGA-MATNR.
  LW_EXTENSIONINX+51(949)   = LW_TE_MVKEX.   "#EC CI_FLDEXT_OK[2215424]
  APPEND LW_EXTENSIONINX TO LIT_EXTENSIONINX.
  CLEAR:LW_EXTENSIONINX.

  SELECT SINGLE MATNR               "#EC CI_SUBRC
    FROM MARA
    INTO LV_MATNR
    WHERE MATNR = C_W_ORGA-MATNR.
*< End INS R2 Modification 2021/04/12----------------------------*
                                              "#EC CI_USAGE_OK[2438006]
  CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
    EXPORTING
      NOAPPLLOG            = ABAP_TRUE
      NOCHANGEDOC          = ABAP_FALSE
      TESTRUN              = ABAP_FALSE
      INPFLDCHECK          = ABAP_FALSE
    IMPORTING
      RETURN               = LW_RETURN
    TABLES
      HEADDATA             = LIT_HEAD
      CLIENTDATA           = LIT_CLIENTDATA
      CLIENTDATAX          = LIT_CLIENTDATAX
      PLANTDATA            = LIT_PLANTDATA
      PLANTDATAX           = LIT_PLANTDATAX
      STORAGELOCATIONDATA  = LIT_STOLOCA
      STORAGELOCATIONDATAX = LIT_STOLOCAX
      VALUATIONDATA        = LIT_VALUATION
      VALUATIONDATAX       = LIT_VALUATIONX
      SALESDATA            = LIT_SALESDATA
      SALESDATAX           = LIT_SALESDATAX
      MATERIALDESCRIPTION  = LIT_METERAIL_DES
      UNITSOFMEASURE       = LIT_UNITSOFMEASURE
      UNITSOFMEASUREX      = LIT_UNITSOFMEASUREX
      MATERIALLONGTEXT     = LIT_MAT_LONGTEXT
      TAXCLASSIFICATIONS   = LIT_TAXCLASSI
      EXTENSIONIN          = LIT_EXTENSIONIN
      EXTENSIONINX         = LIT_EXTENSIONINX
      RETURNMESSAGES       = LIT_RETURN.       "#EC CI_USAGE_OK[2438131]

  IF ( LW_RETURN-TYPE <> CNS_A_VALUE
    AND LW_RETURN-TYPE <> CNS_FLG_E ).

*---------------------add--------bapi end -----------

*---------------------del--------bapi start -----------

    IF C_V_CONTIN_FLG = CNS_FLG_X.
      C_W_ORGA-PRC_STS = CNS_2.
      C_W_ORGA-U_DATE = SY-DATUM.
      C_W_ORGA-U_TIME = SY-UZEIT.
      C_W_ORGA-U_USER = SY-UNAME.
*> REP SIR1182 2020/07/31
*      C_W_ORGA-U_PGM = SY-CPROG.
      C_W_ORGA-U_PGM = SY-REPID.
*< REP SIR1182 2020/07/31
      RETURN.
    ENDIF.

*228
*> REP CR1747 2021/05/24 ----------------------------------------------*
    DATA(LIT_MARD_DATA) = U_IT_MARD_DATA.
    DELETE LIT_MARD_DATA WHERE MATNR  <> C_W_ORGA-MATNR. "#EC CI_STDSEQ
    LOOP AT LIT_MARD_DATA ASSIGNING FIELD-SYMBOL(<LW_MARD_DATA>).
      LW_MRP_CRT-WERKS  = <LW_MARD_DATA>-WERKS.
      LW_MRP_CRT-LGORT  = <LW_MARD_DATA>-LGORT.
      APPEND LW_MRP_CRT TO LIT_MRP_CRT.
      CLEAR LW_MRP_CRT.
    ENDLOOP.
    LOOP AT LIT_STOR_VIEW ASSIGNING <LW_STOR_VIEW2>.
      LW_MRP_CRT-WERKS  = <LW_STOR_VIEW2>-WERKS.
      LW_MRP_CRT-LGORT  = <LW_STOR_VIEW2>-LGORT.
      APPEND LW_MRP_CRT TO LIT_MRP_CRT.
      CLEAR LW_MRP_CRT.
    ENDLOOP.
*
    LOOP AT U_IT_PLANT_DATA ASSIGNING <LW_PLANT_DATA>
      WHERE KUNNR = C_W_ORGA-KUNNR.

      LOOP AT GIT_MDLV  ASSIGNING FIELD-SYMBOL(<LW_MRP_MDLV>) WHERE WERKS = <LW_PLANT_DATA>-WERKS. "#EC CI_STDSEQ

        READ TABLE U_IT_MDMA_DATA TRANSPORTING NO FIELDS WITH TABLE KEY NS01
        COMPONENTS MATNR = C_W_ORGA-MATNR
                   BERID   = <LW_MRP_MDLV>-BERID.
        IF SY-SUBRC = 0.
          CONTINUE.
        ENDIF.

*   Edit Structure [I_MDMA]
        LW_I_MDMA-MATNR       = C_W_ORGA-MATNR.               "Material
        LW_I_MDMA-BERID       = <LW_MRP_MDLV>-BERID.          "MRP Area
*         LW_I_MDMA-WERKS        = <LW_STOR_VIEW2>-WERKS.         "Plant
        LW_I_MDMA-WERKS       = <LW_MRP_MDLV>-WERKS.         "Plant  "228
        LW_I_MDMA-DISMM       = U_V_MRP_TYP.         "MRP Type

*   Edit Structure [I_SELFIELDS]
        LW_I_SELFIELDS-XDISMM = CNS_FLG_X.                    "MRP TYPE

        CALL FUNCTION 'MD_MRP_LEVEL_CREATE_DATA'
          EXPORTING
            I_MATNR           = C_W_ORGA-MATNR
            I_WERK            = LW_I_MDMA-WERKS
            I_MRP_AREA        = LW_I_MDMA-BERID
            I_SELFIELDS       = LW_I_SELFIELDS
            I_MDMA            = LW_I_MDMA
            I_DPOP            = LW_DPOP
            I_QUEUE_FLAG      = 'X'
            I_SAVE_FLAG       = 'X'
            I_EXTERNAL_COMMIT = SPACE         "C
          IMPORTING
            E_ERROR_RETURN    = LW_ERR_RETURN.

        IF ( LW_ERR_RETURN-TYPE = CNS_A_VALUE
             OR  LW_ERR_RETURN-TYPE =  CNS_FLG_E ).

          C_V_CONTIN_FLG = CNS_FLG_X.

          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

          CLEAR: LW_APPLOG_STR.

          MESSAGE ID    LW_ERR_RETURN-ID
                 TYPE   LW_ERR_RETURN-TYPE
               NUMBER   LW_ERR_RETURN-NUMBER
                 WITH   LW_ERR_RETURN-MESSAGE_V1
                        LW_ERR_RETURN-MESSAGE_V2
                        LW_ERR_RETURN-MESSAGE_V3
                        LW_ERR_RETURN-MESSAGE_V4
                 INTO   LV_MESSAGE.

          LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
          LW_APPLOG_STR-WERKS = LW_I_MDMA-WERKS.
          LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
          LW_APPLOG_STR-TARGET_MASTER = CNS_MATERIAL_T.

          PERFORM F_GET_APPLOG
            USING
              LW_APPLOG_STR                  "message context
              LW_ERR_RETURN-TYPE
            CHANGING
              C_IT_APPLOG.                   "Application Log Table

          IF C_V_CONTIN_FLG = CNS_FLG_X.
            C_W_ORGA-PRC_STS = CNS_2.
            C_W_ORGA-U_DATE = SY-DATUM.
            C_W_ORGA-U_TIME = SY-UZEIT.
            C_W_ORGA-U_USER = SY-UNAME.
            C_W_ORGA-U_PGM = SY-REPID.
            C_V_CONTIN_FLG  = CNS_FLG_X.
            RETURN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDLOOP.


* IF structure[Return]-type = 'E' or 'A'
  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    CLEAR:LW_APPLOG_STR.

    MESSAGE ID     LW_RETURN-ID
            TYPE   LW_RETURN-TYPE
            NUMBER LW_RETURN-NUMBER
            WITH   LW_RETURN-MESSAGE_V1
                   LW_RETURN-MESSAGE_V2
                   LW_RETURN-MESSAGE_V3
                   LW_RETURN-MESSAGE_V4
            INTO   LV_MESSAGE.

  LOOP AT U_IT_PLANT_DATA ASSIGNING <LW_PLANT_DATA>
    WHERE KUNNR = C_W_ORGA-KUNNR.
    LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
    LW_APPLOG_STR-WERKS = <LW_PLANT_DATA>-WERKS.
    LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
    LW_APPLOG_STR-TARGET_MASTER = CNS_MATERIAL_T.

*  The process is skipped because of &1
    PERFORM F_GET_APPLOG
      USING
        LW_APPLOG_STR                  "message context
        LW_RETURN-TYPE                  "message context
      CHANGING
        C_IT_APPLOG.                   "Application Log Table

    C_W_ORGA-PRC_STS = CNS_2.
    C_W_ORGA-U_DATE = SY-DATUM.
    C_W_ORGA-U_TIME = SY-UZEIT.
    C_W_ORGA-U_USER = SY-UNAME.
    C_W_ORGA-U_PGM = SY-REPID.

    C_V_CONTIN_FLG = CNS_FLG_X.
    ENDLOOP.
    RETURN.

  ENDIF.

        C_V_FUN = LV_FUN.
        IF LV_FUN = CNS_INS.
*         material does not exist in table MARA,then create classification view
          IF LV_MATNR IS INITIAL.

            CLEAR LW_CRE_CLASSVIEW.

            READ TABLE U_IT_FIXED_VAL INTO LW_FIXED_VAL  "#EC CI_SUBRC  #EC CI_STDSEQ
              WITH KEY KEY1 = CNS_CLASS
                       KEY2 = CNS_KLART.
            IF SY-SUBRC = 0.
            LW_CRE_CLASSVIEW-CLASSNUM    = LW_FIXED_VAL-VALUE1.                "Z_BATCH_CLASS
            LW_CRE_CLASSVIEW-CLASSTYPE   = LW_FIXED_VAL-VALUE2.                "023
            ENDIF.
            LW_CRE_CLASSVIEW-OBJECT_LONG = C_W_ORGA-MATNR.                     "Material
            LW_CRE_CLASSVIEW-OBJECTTABLE = CNS_OBJECTTABLE.                    "MARA
            LW_CRE_CLASSVIEW-KEYDATE     = SY-DATUM.

            CALL FUNCTION 'BAPI_OBJCL_CREATE'
             EXPORTING
               OBJECTKEYNEW_LONG = LW_CRE_CLASSVIEW-OBJECT_LONG
               OBJECTTABLENEW    = LW_CRE_CLASSVIEW-OBJECTTABLE
               CLASSNUMNEW       = LW_CRE_CLASSVIEW-CLASSNUM
               CLASSTYPENEW      = LW_CRE_CLASSVIEW-CLASSTYPE
               STATUS            = CNS_VALUE_1
               STANDARDCLASS     = CNS_FLG_X
               KEYDATE           = LW_CRE_CLASSVIEW-KEYDATE
             TABLES
               RETURN            = LIT_RETURN.

             LOOP AT LIT_RETURN INTO DATA(LW_RETURN_CLA)
               WHERE TYPE = CNS_A_VALUE
                  OR TYPE = CNS_FLG_E. "#EC CI_STDSEQ
             ENDLOOP.
             IF SY-SUBRC = 0.

              C_V_CONTIN_FLG = CNS_FLG_X.

              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

              CLEAR: LW_APPLOG_STR.

              MESSAGE ID    LW_RETURN_CLA-ID
                     TYPE   LW_RETURN_CLA-TYPE
                   NUMBER   LW_RETURN_CLA-NUMBER
                     WITH   LW_RETURN_CLA-MESSAGE_V1
                            LW_RETURN_CLA-MESSAGE_V2
                            LW_RETURN_CLA-MESSAGE_V3
                            LW_RETURN_CLA-MESSAGE_V4
                     INTO   LV_MESSAGE.

              LW_APPLOG_STR-SEQNO = C_W_ORGA-SEQNO.
              LW_APPLOG_STR-WERKS = C_W_ORGA-VKORG1.
              LW_APPLOG_STR-MATNR = C_W_ORGA-MATNR.
              LW_APPLOG_STR-TARGET_MASTER = CNS_CLASSIFICATION.

              PERFORM F_GET_APPLOG
                USING
                  LW_APPLOG_STR                  "message context
                  LW_RETURN_CLA-TYPE
                CHANGING
                  C_IT_APPLOG.                   "Application Log Table

              IF C_V_CONTIN_FLG = CNS_FLG_X.
                C_W_ORGA-PRC_STS = CNS_2.
                C_W_ORGA-U_DATE = SY-DATUM.
                C_W_ORGA-U_TIME = SY-UZEIT.
                C_W_ORGA-U_USER = SY-UNAME.
                C_W_ORGA-U_PGM = SY-REPID.
                C_V_CONTIN_FLG  = CNS_FLG_X.
                RETURN.
              ENDIF.
             ENDIF.

          ENDIF.
        ENDIF.

posted on 2021-05-26 17:18  Shadow.Ling  阅读(252)  评论(0)    收藏  举报

导航