物料创建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.