‎2008 Jan 22 6:46 AM
Hi Experts,
In my Requirement i need to create material using BAPI fuction moule. Is there any BAPI to create a material plese suggets me.
Reward points are sure
Thanks in Advance.
Regards,
Anil.
‎2008 Jan 22 6:51 AM
use this bapi for creating materials : BAPI_MATERIAL_SAVEDATA
reward points if useful
Madhavi
‎2008 Jan 22 6:55 AM
Hi Anil,
You can use BAPI_STANDARDMATERIAL_CREATE to Create/Extend Material.
Also BAPI_MATERIAL_SAVEDATA will do to create or change material.
Regards,
Satish
‎2008 Jan 22 7:00 AM
Hi anil,
U can use FM BAPI_STANDARDMATERIAL_CREATE
Or
BAPI_MATERIAL_SAVEDATA
If it is helpfull Pls reward pts.
Regards
Srimanta
‎2008 Jan 22 7:02 AM
BAPI_MATERIAL_SAVEDATA Create and Change Material Master Data
BAPI_STANDARDMATERIAL_CREATE Create/Extend Material
BAPI_MATERIAL_DELETE Flag Material for Deletion
BAPI_MATERIAL_DISPLAY Display Material
BAPI_MATERIAL_EDIT Change Material
BAPI_RETAILMATERIAL_CREATE Create Material
BAPI_MATERIAL_MAINTAINDATA_RT Create and Change Material Master Data (Retail)
Reward points if useful.
‎2008 Jan 22 7:16 AM
Dear Anil,
Sending you the code as per your requirement.Plz do award Points.
&----
*& Report Z_MM01
*&
&----
*&
*&
&----
REPORT Z_MM01.
*TO CREATE MATERIAL USING BAPI.
**********************************************************************
STRUCTURE DECLARATIONS *
**********************************************************************
TYPE-POOLS: truxs.
TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MAKT, "Material description
BAPI_MBEW, "VALUATION DATA
BAPI_MBEWX,
BAPI_MARM,
BAPI_MARMX,
bapi_mean,
BAPI_MARD,
BAPI_MARDX,
BAPI_MPGD,
BAPI_MPGDX,
BAPI_MVKE,
BAPI_MVKEX,
BAPI1001004_QMAT,
BAPI_MLAN,
t001w,
t100,
BAPIRET2. "Return messages
DATA:V_FILE TYPE STRING. "input data file
TYPES: BEGIN OF t_datatab,
col1(18) TYPE c,
col2(1) TYPE c,
col3(4) TYPE c,
col4(4) TYPE c,
col5(4) type c,
col6(4) type c,
col7(2) type c,
col8(40) type c,
col9(3) type c,
col10(9) type c,
col11(2) type c,
col12(4) type c,
col13(4) type c,
col14(2) type c,
col15(4) type c,
col16(2) type c,
col17(4) type c,
col18(4) type c,
col19(10) type c,
col20(3) type c,
coL21(3) type c,
col22(1) type c,
col23(4) type c,
col24(2) type c,
col25(3) type c,
col26(2) type c,
col27(4) type c,
col28(3) type c,
col29(3) type c,
col30(1) type c,
col31(3) type c,
col32(8) type c,
col33(1) type c,
col34(4) type c,
col35(3) type c,
col36(8) type c,
col37(8) type c,
col38(1) type c,
col39(1) type c,
col40(1) type c,
col41(1) type c,
col42(4) type c,
col43(1) type c,
col44(1) type c,
col45(28) type c,
col46(28) type c,
col47(1) type c,
COL48(17) TYPE C,
COL49(3) TYPE C,
COL50(6) TYPE C,
COL51(4) TYPE C,
COL52(17) TYPE C,
COL53(17) TYPE C,
COL54(3) TYPE C,
COL55(1) TYPE C,
col56(1) type c,
col57(2) type c,
col58(2) type c,
col59(2) type c,
END OF t_datatab.
data : flag type c.
data : lv_datum(10) type c.
data : a type c value 'X' .
data : b type i.
DATA: it_datatab type standard table of t_datatab,
wa_datatab type t_datatab.
DATA: it_raw TYPE truxs_t_text_data.
DATA : MINBE TYPE P DECIMALS 2.
DATA : BSTFE TYPE P DECIMALS 2.
data : kausf type p decimals 2,
verpr type p decimals 2,
stprs type p decimals 2,
losgr type p decimals 2.
DATA : NODATA VALUE ''.
Batchinputdata of single transaction
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : L_MSTRING TYPE STRING.
DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MTART(004) TYPE C, "Material type
MBRSH(001) TYPE C, "Industry sector
WERKS(004) TYPE C, "Plant
MAKTX(040) TYPE C, "Material description
DISMM(002) TYPE C, "Extra Field Added In the Program as itsrequired
MEINS(003) TYPE C, "Base unit of measure
MATKL(009) TYPE C, "Material group
SPART(002) TYPE C, "Division
LABOR(003) TYPE C, "Lab/office
PRDHA(018) TYPE C, "Product hierarchy
MSTAE(002) TYPE C, "X-plant matl status
MTPOS_MARA(004) TYPE C, "Gen item cat group
BRGEW(017) TYPE C, "Gross weight
GEWEI(003) TYPE C, "Weight unit
NTGEW(017) TYPE C, "Net weight
GROES(032) TYPE C, "Size/Dimensions
MAGRV(004) TYPE C, "Matl grp pack matls
BISMT(018) TYPE C, "Old material number
WRKST(048) TYPE C, "Basic material
PROFL(003) TYPE C, "DG indicator profile
KZUMW(001) TYPE C, "Environmentally rlvt
BSTME(003) TYPE C, "Order unit
VABME(001) TYPE C,
EKGRP(003) TYPE C, "Purchasing group
XCHPF(001) TYPE C, "Batch management
EKWSL(004) TYPE C, "Purchasing key value
WEBAZ(003) TYPE C, "GR processing time
MFRPN(040) TYPE C, "Manufacturer part number
MFRNR(010) TYPE C, "Manufacturer number
VPRSV(001) TYPE C, "Price control indicator
STPRS(015) TYPE C, "Standard price
BWPRH(014) TYPE C, "Commercial price1
BKLAS(004) TYPE C, "Valuation class
bwkey(004) type c,
LGORT(004) TYPE C , "Storage Location
END OF LSMW_MATERIAL_MASTER.
**********************************************************************
INTERNAL TABLE DECLARATIONS *
**********************************************************************
*to store the input data
DATA:
BEGIN OF it_matmaster OCCURS 0.
INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
DATA:
END OF it_matmaster.
*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.
*FOR gross wt
DATA: BEGIN OF i_tstl OCCURS 10.
INCLUDE STRUCTURE tstl.
DATA: END OF i_tstl.
DATA: v_land1 LIKE t001w-land1.
data: begin of it_uom occurs 0.
include structure BAPI_MARM.
data:end of it_uom.
DATA : BEGIN OF IT_QM OCCURS 0.
INCLUDE STRUCTURE BAPI1001004_QMAT.
DATA : END OF IT_QM.
DATA: BEGIN OF IT_UOMX OCCURS 0.
INCLUDE STRUCTURE BAPI_MARMX.
DATA:END OF IT_UOMX.
data:begin of it_mean occurs 0.
include structure bapi_mean.
data:end of it_mean.
DATA : BEGIN OF IT_TAX OCCURS 0.
INCLUDE STRUCTURE BAPI_MLAN.
DATA : END OF IT_TAX.
DATA:BEGIN OF IT_MLTX OCCURS 0.
INCLUDE STRUCTURE BAPI_MLTX.
DATA:END OF IT_MLTX.
*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.
DATA:BEGIN OF IT_RETURN1 OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN1.
************************************************************************
SELECTION SCREEN *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .
************************************************************************
AT SELECTION SCREEN *
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
**********************************************************************
TO UPLOAD THE DATA *
**********************************************************************
START-OF-SELECTION.
*V_FILE = P_FILE.
*CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = IT_MATMASTER
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
*IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*
**ELSE.
**DELETE IT_MATMASTER INDEX 1.
*ENDIF.
call function 'TEXT_CONVERT_XLS_TO_SAP'
exporting
I_FIELD_SEPERATOR =
I_LINE_HEADER = ''
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
tables
i_tab_converted_data = it_datatab[] "ACTUAL DATA
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
**********************************************************************
DATA POPULATIONS *
**********************************************************************
LOOP AT IT_DATATAB INTO Wa_datatab.
if sy-tabix ne 1.
*HEADER DATA
BAPIMATHEAD-MATERIAL = wa_datatab-col1."matnr
BAPIMATHEAD-IND_SECTOR = wa_datatab-col2."mbrsh
BAPIMATHEAD-MATL_TYPE = wa_datatab-col3."mtart
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
BAPIMATHEAD-STORAGE_VIEW = 'X'.
BAPIMATHEAD-QUALITY_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
BAPIMATHEAD-COST_VIEW = 'X'.
IF WA_DATATAB-COL3 EQ 'ROH' OR WA_DATATAB-COL3 EQ 'FERT' OR WA_DATATAB-COL3 EQ 'HALB'.
BAPIMATHEAD-MRP_VIEW = 'X'.
BAPIMATHEAD-SALES_VIEW = 'X'.
ENDIF.
if wa_datatab-col3 eq 'HAWA'.
BAPIMATHEAD-SALES_VIEW = 'X'.
endif.
IF WA_DATATAB-COL3 EQ 'FERT' OR WA_DATATAB-COL3 EQ 'HALB' .
BAPIMATHEAD-WORK_SCHED_VIEW = 'X'.
ENDIF.
*CLIENTDATA
BAPI_MARA-MATL_GROUP = wa_datatab-col10."maktl
BAPI_MARA-DIVISION = wa_datatab-col11."spart
BAPI_MARA-QM_PROCMNT = wa_datatab-col33."qmpur
BAPI_MARA-BASE_UOM = wa_datatab-col9."meins
BAPI_MARA-TRANS_GRP = wa_datatab-col17."TRAGR
BAPI_MARA
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-DIVISION = 'X'.
BAPI_MARAX-ITEM_CAT = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-QM_PROCMNT = 'X'.
BAPI_MARAX-TRANS_GRP = 'X'.
*PLANT DATA
BAPI_MARC-PLANT = wa_datatab-col4."WERKS
BAPI_MARC-PUR_GROUP = wa_datatab-col20."EKGRP
BAPI_MARC-GR_PR_TIME = wa_datatab-col21."WEBAZ
BAPI_MARC-MRP_TYPE = wa_datatab-col24."DISMM
BAPI_MARC-MRP_CTRLER = wa_datatab-col25."DISPO
BAPI_MARC-PLND_DELRY = wa_datatab-col28."PLIFZ
BAPI_MARC-LOTSIZEKEY = wa_datatab-col26."DISLS
BAPI_MARC-ISS_ST_LOC = wa_datatab-col27."LGPRO
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_datatab-col23
IMPORTING
OUTPUT = BAPI_MARC-MRP_GROUP "DISGR
.
BAPI_MARC-IND_POST_TO_INSP_STOCK = wa_datatab-col22 ."INSMK_MAT
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_datatab-col29
IMPORTING
OUTPUT = BAPI_MARC-SM_KEY
.
BAPI_MARC-SM_KEY = wa_datatab-col29. "FHORI
BAPI_MARC-CONSUMMODE = wa_datatab-col30."VRMOD
BAPI_MARC-BWD_CONS = wa_datatab-col31."VINT1
kausf = wa_datatab-col32.
BAPI_MARC-COMP_SCRAP = kausf."KAUSF
BAPI_MARC-CTRL_KEY = wa_datatab-col34."QSSPUR
BAPI_MARC-CERT_TYPE = wa_datatab-col35."QZGTYP
BAPI_MARC-AVAILCHECK = wa_datatab-col16."MTVFP
BAPI_MARC-LOADINGGRP = wa_datatab-col18."LADGR
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = WA_DATATAB-COL19
IMPORTING
OUTPUT = BAPI_MARC-PROFIT_CTR "PRCTR
.
BAPI_MARC-PROFIT_CTR = wa_datatab-col19.
losgr = wa_datatab-col48.
BAPI_MARC-LOT_SIZE = losgr."LOSGR
IF WA_DATATAB-COL3 EQ 'FERT' OR WA_DATATAB-COL3 EQ 'HALB' .
BAPI_MARC-PRODUCTION_SCHEDULER = WA_DATATAB-COL49."FEVOR
BAPI_MARC-PRODPROF = WA_DATATAB-COL50."SFCPF
BAPI_MARC-ISS_ST_LOC = WA_DATATAB-COL51."LGPRO
ENDIF.
MINBE = WA_DATATAB-COL52."MINBE
BAPI_MARC-REORDER_PT = MINBE.
BSTFE = WA_DATATAB-COL53." BSTFE
BAPI_MARC-FIXED_LOT = BSTFE.
IF WA_DATATAB-COL3 EQ 'FERT'.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = WA_DATATAB-COL54"VINT2
IMPORTING
OUTPUT = BAPI_MARC-FWD_CONS
.
ENDIF.
BAPI_MARC-FWD_CONS = WA_DATATAB-COL54
BAPI_MARC-DEP_REQ_ID = WA_DATATAB-COL55."SBDKZ
bapi_marc-PROC_TYPE = wa_datatab-col56."BESKZ
bapi_marc-PLAN_STRGP = wa_datatab-col57."strgr
bapi_marc-AVAILCHECK = wa_datatab-col58. "mtvfp
bapi_marc-SPPROCTYPE = wa_datatab-col59."SOBSL
BAPI_MARCX-PLANT = wa_datatab-col4.
BAPI_MARCX-PUR_GROUP = 'X'.
BAPI_MARCX-GR_PR_TIME = 'X'.
BAPI_MARCX-MRP_TYPE = 'X'.
BAPI_MARCX-MRP_CTRLER = 'X'.
BAPI_MARCX-PLND_DELRY = 'X'.
BAPI_MARCX-LOTSIZEKEY = 'X'.
BAPI_MARCX-ISS_ST_LOC = 'X'.
BAPI_MARCX-MRP_GROUP = 'X'.
BAPI_MARCX-IND_POST_TO_INSP_STOCK = 'X'.
BAPI_MARCX-SM_KEY = 'X'.
BAPI_MARCX-CONSUMMODE = 'X'.
BAPI_MARCX-BWD_CONS = 'X'.
BAPI_MARCX-COMP_SCRAP = 'X'.
BAPI_MARCX-CTRL_KEY = 'X'.
BAPI_MARCX-CERT_TYPE = 'X'.
BAPI_MARCX-AVAILCHECK = 'X'.
BAPI_MARCX-LOADINGGRP = 'X'.
BAPI_MARCX-PROFIT_CTR = 'X'.
BAPI_MARCX-LOT_SIZE = 'X'.
IF WA_DATATAB-COL3 EQ 'FERT' OR WA_DATATAB-COL3 EQ 'HALB' .
BAPI_MARCX-PRODUCTION_SCHEDULER = 'X'.
BAPI_MARCX-PRODPROF = 'X'.
BAPI_MARCX-ISS_ST_LOC = 'X'.
ENDIF.
BAPI_MARCX-REORDER_PT = 'X'.
BAPI_MARCX-FIXED_LOT = 'X'.
BAPI_MARCX-FWD_CONS = 'X'.
BAPI_MARCX-DEP_REQ_ID = 'X'.
bapi_marcx-PROC_TYPE = 'X'.
bapi_marcx-PLAN_STRGP = 'X'.
*STORAGE LOCATION DATA
if wa_datatab-col3 ne 'R&D' or wa_datatab-col3 ne 'ZRDU' OR WA_DATATAB-COL3 NE 'ZRDD'.
BAPI_MARD-PLANT = wa_datatab-col4."WERKS
BAPI_MARD-STGE_LOC = wa_datatab-col5."LGORT
BAPI_MARDX-PLANT = wa_datatab-col4.
BAPI_MARDX-STGE_LOC = wa_datatab-col5.
endif.
*SALES DATA
BAPI_MVKE-SALES_ORG = wa_datatab-col6."VKORG
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_datatab-col7
IMPORTING
OUTPUT = BAPI_MVKE-DISTR_CHAN
.
BAPI_MVKE-DISTR_CHAN = wa_datatab-col7."VTWEG
BAPI_MVKE-DELYG_PLNT = wa_datatab-col12."DWERK
BAPI_MVKE-ACCT_ASSGT = wa_datatab-col14."KTGRM
BAPI_MVKE-ITEM_CAT = wa_datatab-col15."mtpos
BAPI_MVKEX-SALES_ORG = wa_datatab-col6.
BAPI_MVKEX-ACCT_ASSGT = 'X'.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_datatab-col7
IMPORTING
OUTPUT = BAPI_MVKEX-DISTR_CHAN
.
BAPI_MVKEX-DISTR_CHAN = wa_datatab-col7.
BAPI_MVKEX-DELYG_PLNT = 'X'.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = WA_DATATAB-COL7
IMPORTING
OUTPUT = BAPI_MVKEX-DISTR_CHAN
.
BAPI_MVKEX-ACCT_ASSGT = 'X'.
BAPI_MVKEX-ITEM_CAT = 'X'.
*TAXATION DATA
**for tax classification***
SELECT SINGLE * FROM t001w
WHERE werks = wa_datatab-col4 .
MOVE t001w-land1 TO v_land1.
SELECT * INTO i_tstl FROM tstl
WHERE talnd = v_land1.
APPEND i_tstl.
CLEAR i_tstl.
ENDSELECT.
DO 4 TIMES.
READ TABLE i_tstl WITH KEY lfdnr = sy-index.
IF sy-subrc <> 0.
EXIT.
ENDIF.
***end****
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input =
IMPORTING
OUTPUT = "
.
it_tax-depcountry = v_land1.
IT_TAX-TAX_TYPE_1 = i_tstl-tatyp.
IT_TAX-TAXCLASS_1 = wa_datatab-col13."TAXKM_01
APPEND IT_TAX.
ENDDO.
*V
‎2008 Jan 22 7:43 AM
Hi Experts,
Thanks for your quick reply.
when i excute the FM BAPI_STANDARDMATERIAL_CREATE it is going to MM01 transcation.
But in my requirement i will give the input as flat file and i will call that FM. so how it will cretae the Material.
If anyone work on this plese send the sample code.
Points are sure....
Thanks in Advance.
Regards,
Anil.
‎2008 Jan 22 7:49 AM
Check the following code to upload a flat file to create the material.
***********************************************************************
** Program ID : ZMAT_CREATE
** Program Desc : Material Master Creation
** Process Overview :
** Created By : R. NAGARAJAN
** Created Date : 22/08/2006
** Company Name : Infoview Technologies Limited
************************************************************************
REPORT ZMAT_CREATE
NO STANDARD PAGE HEADING LINE-SIZE 132 MESSAGE-ID ZBDCMSG.
-
Internal table definition *
-
DATA: BEGIN OF ITAB OCCURS 0,
MATNR LIKE RMMG1-MATNR, " Material Number
MBRSH LIKE RMMG1-MBRSH, " Industry Sector
MTART LIKE RMMG1-MTART, " Material Type
WERKS LIKE RMMG1-WERKS, " Plant
LGORT LIKE RMMG1-LGORT, " Storage Location
VKORG LIKE RMMG1-VKORG, " Sales Organization
VTWEG LIKE RMMG1-VTWEG, " Distribution Channel
LGNUM LIKE RMMG1-LGNUM, " Warehouse Number
LGTYP LIKE RMMG1-LGTYP, " Storage Type
MAKTX LIKE MAKT-MAKTX, " Material Description
MEINS LIKE MARA-MEINS, " Base Unit of Measure
MATKL LIKE MARA-MATKL, " Material Group
SPART LIKE MARA-SPART, " Division
MTPOS_MARA LIKE MARA-MTPOS_MARA, "General item category group
GEWEI LIKE MARA-GEWEI, " Weight Unit
TAXKM1 LIKE MG03STEUER-TAXKM, " Tax classification material
TAXKM2 LIKE MG03STEUER-TAXKM, " Tax classification material
KONDM LIKE MVKE-KONDM, " Material Pricing Group
MTPOS LIKE MVKE-MTPOS , "ItemCategoryGroupFromMaterialMaster
MTVFP LIKE MARC-MTVFP, " Checking Group for AvailabilityCheck
TRAGR LIKE MARA-TRAGR, " Transportation group
LADGR LIKE MARC-LADGR, " Loading group
TDLINE LIKE RSTXT-TXLINE, " Text editor text line
EKGRP LIKE MARC-EKGRP, " Purchasing Group
DISMM LIKE MARC-DISMM, " MRP Type
BESKZ LIKE MARC-BESKZ, " Procurement Type
SOBSL LIKE MARC-SOBSL, " Special procurement type
PERKZ LIKE MARC-PERKZ, " Period indicator
PRMOD LIKE MPOP-PRMOD, " Forecast model
KZINI LIKE MPOP-KZINI, " Initialization indicator
AUTRU LIKE MARC-AUTRU, " Reset Forecast Model Automatically
MODAV LIKE MPOP-MODAV, " Model selection procedure
IPRKZ LIKE MARA-IPRKZ, " Period indicator for shelf life expiration date
BWTTY LIKE MBEW-BWTTY, " Valuation Category
BKLAS LIKE MBEW-BKLAS, " Valuation Class
EKLAS LIKE MBEW-EKLAS, " Valuation Class for Sales OrderStock
VPRSV LIKE MBEW-VPRSV, " Price Control Indicator
EKALR LIKE MBEW-EKALR, "MaterialIsCostedWithQuantityStructure
END OF ITAB,
*// TEXT HEADER
GT_HEAD LIKE THEAD,
*// Text lines
GT_TEXT LIKE STANDARD TABLE OF TLINE,
GW_TEXT LIKE TLINE,
-
Data definition *
-
WS_REP_CNT(6) TYPE C,
SESSION(12) TYPE C.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS:
PA_GROUP LIKE APQI-GROUPID OBLIGATORY DEFAULT 'MMupload',
PA_FNAME LIKE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
-
Include statements *
-
INCLUDE ZBDCREX.
-
At Selection Screen definition *
-
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FNAME.
*//GETTING FLAT FILE PATH
PERFORM FILE_PATH USING PA_FNAME.
-
Start of Selection definition *
-
START-OF-SELECTION.
*//UPLOADING THE FLAT FILE
PERFORM DATA_UPLOAD TABLES ITAB USING PA_FNAME.
*// BDC OPEN GROUP
PERFORM OPEN_GROUP USING PA_GROUP.
SKIP 3.
FORMAT COLOR COL_HEADING INVERSE ON.
WRITE 40 TEXT-001.
FORMAT COLOR COL_HEADING INVERSE OFF.
SKIP 1.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE :/3 TEXT-002, 13 SY-MANDT, 104 TEXT-003, 113 SY-UNAME,
/3 TEXT-004, 13 SY-DATUM, 104 TEXT-005, 113 SY-UZEIT.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
LOOP AT ITAB.
WS_REP_CNT = WS_REP_CNT + 1. "To Count no. of Records Processed
PERFORM MM_UPLOAD.
ENDLOOP.
*//STATUS INDICATION
IF SY-SUBRC = 0.
SESSION = PA_GROUP.
SKIP 1.
FORMAT COLOR COL_TOTAL INVERSE ON.
WRITE: /38 TEXT-006 , WS_REP_CNT.
FORMAT COLOR COL_TOTAL INVERSE OFF.
MESSAGE S000 WITH SESSION.
ENDIF.
*// BDC CLOSE GROUP
PERFORM CLOSE_GROUP.
SET PF-STATUS 'ZMM01PF'.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SESSION'.
CALL TRANSACTION 'SM35'.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE SCREEN.
ENDCASE .
-
*
FORM MM_UPLOAD *
-
*
FORM MM_UPLOAD.
REFRESH BDCDATA.
*// Create Material: Initial Screen
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
ITAB-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
ITAB-MBRSH.
perform bdc_field using 'RMMG1-MTART'
ITAB-MTART.
*// Selection Views
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'SELA'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
*// Organization Levels
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
ITAB-WERKS.
perform bdc_field using 'RMMG1-LGORT'
ITAB-LGORT.
perform bdc_field using 'RMMG1-VKORG'
ITAB-VKORG.
perform bdc_field using 'RMMG1-VTWEG'
ITAB-VTWEG.
perform bdc_field using 'RMMG1-LGNUM'
ITAB-LGNUM.
perform bdc_field using 'RMMG1-LGTYP'
ITAB-LGTYP.
*// Basic Data 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'=SP04'.
perform bdc_field using 'MAKT-MAKTX'
ITAB-MAKTX.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-SPART'
ITAB-SPART.
perform bdc_field using 'MARA-MTPOS_MARA'
ITAB-MTPOS_MARA.
perform bdc_field using 'BDC_CURSOR'
'MARA-GEWEI'.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-NTGEW'
'8000'.
*// Sales: Sales Organization 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP05'.
perform bdc_field using 'MG03STEUER-TAXKM(01)'
ITAB-TAXKM1.
perform bdc_field using 'MG03STEUER-TAXKM(02)'
ITAB-TAXKM2.
perform bdc_dynpro using 'SAPLMGMM' '4200'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_OKCODE'
'=SP05'.
*// Sales: Sales Organization 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP06'.
perform bdc_field using 'BDC_CURSOR'
'MVKE-KONDM'.
perform bdc_field using 'MVKE-KONDM'
ITAB-KONDM.
perform bdc_field using 'MARA-MTPOS_MARA'
ITAB-MTPOS_MARA.
perform bdc_field using 'MVKE-MTPOS'
ITAB-MTPOS.
*// Sales: General / Plant Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP12'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-XCHPF'
''.
perform bdc_field using 'MARA-NTGEW'
'8000'.
perform bdc_field using 'MARC-MTVFP'
ITAB-MTVFP.
perform bdc_field using 'BDC_CURSOR'
'MARC-LADGR'.
perform bdc_field using 'MARA-TRAGR'
ITAB-TRAGR.
perform bdc_field using 'MARC-LADGR'
ITAB-LADGR.
*// MRP 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP13'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARC-EKGRP'
ITAB-EKGRP.
perform bdc_field using 'BDC_CURSOR'
'MARC-DISMM'.
perform bdc_field using 'MARC-DISMM'
ITAB-DISMM.
*// MRP 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP14'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1_BEZ-WERKS_BEZ'.
perform bdc_field using 'MARC-BESKZ'
ITAB-BESKZ.
perform bdc_field using 'MARC-SOBSL'
ITAB-SOBSL .
*// MRP 3: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP16'.
perform bdc_field using 'BDC_CURSOR'
'MARC-PERKZ'.
perform bdc_field using 'MARC-PERKZ'
ITAB-PERKZ.
perform bdc_field using 'MARC-MTVFP'
ITAB-MTVFP.
*// Forecasting Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP17'.
perform bdc_field using 'BDC_CURSOR'
'MPOP-PRMOD'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MPOP-PRMOD'
ITAB-PRMOD.
perform bdc_field using 'MARC-PERKZ'
ITAB-PERKZ.
perform bdc_field using 'MPOP-PERAN'
'60'.
perform bdc_field using 'MPOP-ANZPR'
'12'.
perform bdc_field using 'MPOP-KZINI'
ITAB-KZINI.
perform bdc_field using 'MPOP-SIGGR'
'4.000'.
perform bdc_field using 'MARC-AUTRU'
ITAB-AUTRU.
perform bdc_field using 'MPOP-MODAV'
ITAB-MODAV.
*// Work Scheduling Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP19'.
perform bdc_field using 'BDC_CURSOR'
'MARC-FRTME'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
*// Plant data / Stor. 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP20'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-IPRKZ'
ITAB-IPRKZ.
*// Plant data / Stor. 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP21'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-NTGEW'
'8000'.
*// Warehouse Management 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP23'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
*// Quality Management Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP24'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
*// Accounting 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP26'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MBEW-BWTTY'
ITAB-BWTTY.
perform bdc_field using 'MARA-SPART'
ITAB-SPART.
perform bdc_field using 'BDC_CURSOR'
'MBEW-STPRS'.
perform bdc_field using 'MBEW-BKLAS'
ITAB-BKLAS.
perform bdc_field using 'MBEW-EKLAS'
ITAB-EKLAS.
perform bdc_field using 'MBEW-VPRSV'
ITAB-VPRSV.
perform bdc_field using 'MBEW-PEINH'
'1'.
perform bdc_field using 'MBEW-VERPR'
'800'.
perform bdc_field using 'MBEW-STPRS'
'800'.
*// Costing 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP27'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MBEW-EKALR'
ITAB-EKALR.
perform bdc_field using 'MARC-LOSGR'
'1'.
*// Costing 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=BABA'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MBEW-BKLAS'
ITAB-BKLAS.
perform bdc_field using 'MBEW-BWTTY'
ITAB-BWTTY.
perform bdc_field using 'MBEW-EKLAS'
ITAB-EKLAS.
perform bdc_field using 'MBEW-VPRSV'
ITAB-VPRSV.
perform bdc_field using 'MBEW-PEINH'
'1'.
perform bdc_field using 'MBEW-VERPR'
'800.00'.
perform bdc_field using 'MBEW-STPRS'
'800.00'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*//BDC INSERT
PERFORM BDC_TRANSACTION TABLES BDCDATA
USING 'MM01'. " MESSAGES INTO GT_MSG.
*// Text Header Data
CONCATENATE ITAB-MATNR ' 000101'
INTO GT_HEAD-TDNAME .
GT_HEAD-TDOBJECT = 'MVKE' .
GT_HEAD-TDID = '0001' .
GT_HEAD-TDSPRAS = SY-LANGU.
*// Sales Text
GW_TEXT-TDFORMAT = '00'.
GW_TEXT-TDLINE = ITAB-TDLINE .
APPEND GW_TEXT TO GT_TEXT.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT = SY-MANDT
HEADER = GT_HEAD
INSERT = 'X'
SAVEMODE_DIRECT = 'X'
OWNER_SPECIFIED = ' '
TABLES
LINES = GT_TEXT
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
OBJECT = 4
OTHERS = 5.
IF SY-SUBRC 0.
SKIP 2.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE: / 'Unable to Insert Salestext for Material : ', ITAB-MATNR .
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
ENDIF.
CLEAR: GT_HEAD, GT_TEXT, GW_TEXT.
ENDFORM. "MM_UPLOAD
Reward points if useful