Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI function Module

Former Member
0 Likes
2,173

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.

7 REPLIES 7
Read only

Former Member
0 Likes
1,422

use this bapi for creating materials : BAPI_MATERIAL_SAVEDATA

reward points if useful

Madhavi

Read only

Former Member
0 Likes
1,422

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

Read only

Former Member
0 Likes
1,422

Hi anil,

U can use FM BAPI_STANDARDMATERIAL_CREATE

Or

BAPI_MATERIAL_SAVEDATA

If it is helpfull Pls reward pts.

Regards

Srimanta

Read only

Former Member
0 Likes
1,422

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.

Read only

rahul2000
Contributor
0 Likes
1,422

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

Read only

Former Member
0 Likes
1,422

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.

Read only

0 Likes
1,422

Check the following code to upload a flat file to create the material.

***********************************************************************

**&#12288;Program ID &#65306; ZMAT_CREATE

**&#12288;Program Desc &#65306; Material Master Creation

**&#12288;Process Overview &#65306;

**&#12288;Created By &#65306; R. NAGARAJAN

**&#12288;Created Date &#65306; 22/08/2006

**&#12288;Company Name &#65306; 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