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

MM01

Former Member
0 Likes
1,431

Hi guru's,

explaine me how we can upload the meterial masterdata by using recording.how can we record different views.if required views not existing what we have to do.explane and if possible send me the code.

thanks in advance.

5 REPLIES 5
Read only

Former Member
0 Likes
917

I would suggest BAPI instead of BDC

You have to use the FM: SELECTION_VIEWS_FIND to get the indexes of the views that are displyed n the list of views.

see the below thread, it will have the sample code also for MM01 BDC

Thanks

seshu

Read only

Former Member
0 Likes
917

Hi

See the sample BDC code for the MM01 Material master Upload

REPORT zmm_mat_master_non_stock

NO STANDARD PAGE HEADING

LINE-SIZE 255.

  • Standard Include for Selection Screen

INCLUDE bdcrecx1.

  • Internal Table for Upload Data

DATA: BEGIN OF i_mat OCCURS 0,

  • mbrsh(001), " Industry Sector

  • mtart(004), " Material Type

  • Views

  • Organization Levels

  • werks(004), " Plant

  • Basic Data1 View

maktx(040), " Material Description

  • meins(003), " Unit of Measure

matkl(009), " Material Group

  • MTPOS_MARA(004), " Gen Item Category

  • Purchasing

ekgrp(003), " Purchasing Group

END OF i_mat.

  • Data Variables & Constants

CONSTANTS : c_x VALUE 'X'. " Flag

  • Parameters

PARAMETERS: p_file LIKE ibipparms-path. " Filename

  • At selection-screen on Value Request for file Name

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  • Get the F4 Values for the File

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

IMPORTING

file_name = p_file.

  • Start of Selection

START-OF-SELECTION.

  • Open the BDC Session

PERFORM open_group.

  • Upload the File into internal Table

CALL FUNCTION 'UPLOAD'

EXPORTING

filename = p_file

filetype = 'DAT'

TABLES

data_tab = i_mat

EXCEPTIONS

conversion_error = 1

invalid_table_width = 2

invalid_type = 3

no_batch = 4

unknown_error = 5

gui_refuse_filetransfer = 6

OTHERS = 7.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Upload the Data from Internal Table

LOOP AT i_mat.

  • Basic Screen

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RMMG1-MBRSH'

'C'."i_mat-mbrsh.

PERFORM bdc_field USING 'RMMG1-MTART'

'NLAG'."i_mat-mtart.

  • Views Selection

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(08)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

c_x."i_mat-kzsel_01.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

c_x."i_mat-kzsel_02.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

c_x."i_mat-kzsel_08.

  • Organization Levels

PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-WERKS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'RMMG1-WERKS'

'2000'."i_mat-werks.

  • Basic data1 View

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

i_mat-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MTPOS_MARA'.

PERFORM bdc_field USING 'MARA-MEINS'

'EA'."i_mat-meins.

PERFORM bdc_field USING 'MARA-MATKL'

i_mat-matkl.

PERFORM bdc_field USING 'MARA-MTPOS_MARA'

'NLAG'."i_mat-mtpos_mara.

  • Basic data2 View

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

  • Purchasing View

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

PERFORM bdc_field USING 'MARC-EKGRP'

i_mat-ekgrp.

  • Call The Transaction

PERFORM bdc_transaction USING 'MM01'.

ENDLOOP.

  • Close the BDC Session

PERFORM close_group.

<b>Reward points for useful Answers</b>

Regards

Anji

Read only

Former Member
0 Likes
917

Instead use BAPI 'BAPI_MATERIAL_SAVEDATA',

Using this BAPI you could create and update material for diffferent views aviable for material, Such as Basic,Sales,Purchase,Accouting,etc.

Check the documentation attached with BAPI for more information.

Reward of helpful replies.

Regards,

Amit R.

Read only

Former Member
0 Likes
917

hi,

check this example:

report ZBDC_SEMIFIN

no standard page heading line-size 255.

include bdcrecx1.

Tables: Mara,"General Material Data

mard,"Storage Location Data for Material

mvke,"Sales Data for Material

Makt,"Material Descriptions

marc,"Plant Data for Material

mbew,"Material Valuation

rlgrap."Program Fields/Screen Fields for SAPLGRAP

Data: begin of ITAB occurs 0,"Internal table for Semi-Finished Material

  • Initial data

matnr like mara-matnr, "Material Code

mbrsh like mara-mbrsh, "Industry Data

mtart like mara-mtart, "Material Type

  • Org Data

Werks like marc-werks, "Plant

lgort like mard-lgort, "Storage Location

vkorg like mvke-vkorg, "Sales Orgnization

vtweg like mvke-vtweg, "Distribution Chanel

  • Basic 1

Maktx Like makt-maktx, "Description

meins like mara-meins, "Uom

matkl like mara-matkl, "Material Group

BISMT LIKE MARA-BISMT, " Old Material Number

spart like mara-spart, "Division

brgew(7),"like mara-brgew, "Gross Weight

gewei like MARA-GEWEI, "Weight Unit

ntgew(7)," like mara-ntgew, "Net Weight

  • Purchasing

MAKTL LIKE MARA-MATKL, "Material Group

ekwsl like MARA-EKWSL, " Purchasing Value Key

ekgrp like MARC-EKGRP, " Purchasing Group

  • Mrp 1

disgr like MARC-DISGR, "Mrp Group

  • ekgrp like MARC-EKGRP, "Purchasing group

dismm like MARC-DISMM, "Mrp Type

dispo like MARC-DISPO, "Mrp Controller

disls like MARC-DISLS, "Lot Size

BSTMI like MARC-BSTMI,

BSTMA like MARC-BSTMA,

BSTRF like MARC-BSTRF,

BSTFE like MARC-BSTFE,

  • Mrp 2

beskz like MARC-BESKZ, "Procurement type

lgpro like MARC-LGPRO, "Production Storage Location

dzeit(3),"like MARC-DZEIT, "In house Production time

plifz(3),"like MARC-PLIFZ, "Planned delivery time

fhori(3),"like MARC-FHORI, "Sched margin key

eisbe like MARC-EISBE, "Safety stock

  • Mrp 3

PERKZ LIKE MARC-PERKZ,

vrmod like MARC-VRMOD, "Consumption mode

vint1(3)," like MARC-VINT1, "Backward Consumption period

vint2(3),"like MARC-VINT2, "Forward Consumption period

mtvfp like MARC-MTVFP, "Availability Check

  • Mrp 4

sbdkz like MARC-SBDKZ, "Individual/ Collective

SAUFT like MARC-SAUFT, "Repetitive Manufacturing

SFEPR like MARC-SFEPR, "REM Profile

  • Work Scheduling View

ausme like MARC-AUSME, "Unit of issue

FEVOR LIKE MARC-FEVOR, "Production Scheduler

SFCPF like MARC-SFCPF, "Production Scheduler Profile

umren(5)," like RMMZU-UMREN, "Val for base uom

umrez(5) ,"like RMMZU-UMREz, "Value for uo issue

  • Accounting 1

bklas like MBEW-BKLAS, "Valuation Class

vprsv like MBEW-VPRSV, "Price Control Indicator

verpr(7)," like MBEW-VERPR, "Value/Price

STPRS like MBEW-STPRS,

*COSTING

EKALR LIKE MBEW-EKALR," With qty str

LOSGR like MARC-LOSGR, " Costing Lot size

end of ITAB.

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

Data: W_record type I, "Record Allready exists.

w_trecord type I. "Total record processed

start-of-selection.

perform upload. "Upload Data from Text File

Perform Open_group. "Create a session

clear : w_record,w_trecord.

perform semi. "Create Semi Finish Materials

if w_trecord gt 0 or w_record gt 0.

perform batch_job.

endif.

perform close_group. "Close session

FORM SEMI.

loop at ITAB.

  • Check for material in master *************************

select single * from mara where matnr eq ITAB-matnr.

if sy-subrc ne 0.

w_trecord = w_trecord + 1.

*Initial Screen

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MTART'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

ITAB-MATNR.

perform bdc_field using 'RMMG1-MBRSH'

'M'.

perform bdc_field using 'RMMG1-MTART'

'HALB'.

**********************Views*********************************

*Select Views

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(09)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(12)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(13)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(14)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(15)'

'X'..

perform bdc_field using 'MSICHTAUSW-KZSEL(17)'

'X'.

**********************Views*********************************

*perform bdc_dynpro using 'SAPLMGMM' '0070'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(01)'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_dynpro using 'SAPLMGMM' '0070'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(17)'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_field using 'MSICHTAUSW-KZSEL(17)'

  • ITAB-KZSEL_17_011.

*perform bdc_dynpro using 'SAPLMGMM' '0070'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(01)'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_dynpro using 'SAPLMGMM' '0070'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(13)'.

*perform bdc_field using 'BDC_OKCODE'

  • '=ENTR'.

*perform bdc_field using 'MSICHTAUSW-KZSEL(13)'

  • ITAB-KZSEL_13_012.

*Org Data

perform bdc_dynpro using 'SAPLMGMM' '0080'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-LGORT'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'RMMG1-WERKS'

ITAB-WERKS.

perform bdc_field using 'RMMG1-LGORT'

ITAB-LGORT.

*Basic 1

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'=SP09'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARA-MEINS'

ITAB-MEINS.

perform bdc_field using 'MARA-MATKL'

ITAB-MATKL.

perform bdc_field using 'MARA-BISMT'

ITAB-BISMT.

perform bdc_field using 'MARA-SPART'

ITAB-SPART.

perform bdc_field using 'MARA-MTPOS_MARA'

'NORM'.

perform bdc_field using 'BDC_CURSOR'

'MARA-NTGEW'.

perform bdc_field using 'MARA-BRGEW'

ITAB-BRGEW.

perform bdc_field using 'MARA-GEWEI'

ITAB-GEWEI.

perform bdc_field using 'MARA-NTGEW'

ITAB-NTGEW.

*Purchasing

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP12'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARA-MEINS'

ITAB-MEINS.

perform bdc_field using 'MARC-EKGRP'

ITAB-EKGRP.

perform bdc_field using 'MARA-MATKL'

ITAB-MATKL.

perform bdc_field using 'BDC_CURSOR'

'MARA-EKWSL'.

perform bdc_field using 'MARA-EKWSL'

ITAB-EKWSL.

*MRP 1

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP13'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARA-MEINS'

ITAB-MEINS.

perform bdc_field using 'MARC-EKGRP'

ITAB-EKGRP.

perform bdc_field using 'MARC-DISMM'

ITAB-DISMM.

perform bdc_field using 'MARC-DISPO'

ITAB-DISPO.

perform bdc_field using 'BDC_CURSOR'

'MARC-DISLS'.

perform bdc_field using 'MARC-DISLS'

ITAB-DISLS.

IF ITAB-DISLS EQ 'EX' .

perform bdc_field using 'MARC-BSTMI'

ITAB-BSTMI."MIN LOT SIZE

perform bdc_field using 'MARC-BSTMA'

ITAB-BSTMA."MAX LOT SIZE

perform bdc_field using 'MARC-BSTRF'

ITAB-BSTRF."RNDING

ELSEIF ITAB-DISLS EQ 'FX'.

perform bdc_field using 'MARC-BSTFE'

ITAB-BSTFE.

ENDIF.

*MRP 2

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP14'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARC-BESKZ'

ITAB-BESKZ.

perform bdc_field using 'MARC-LGPRO'

ITAB-LGPRO.

perform bdc_field using 'MARC-DZEIT'

ITAB-DZEIT.

perform bdc_field using 'MARC-PLIFZ'

ITAB-PLIFZ.

perform bdc_field using 'MARC-FHORI'

ITAB-FHORI.

perform bdc_field using 'BDC_CURSOR'

'MARC-EISBE'.

perform bdc_field using 'MARC-EISBE'

ITAB-EISBE.

*MRP 3

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP15'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARC-PERKZ'

ITAB-PERKZ.

perform bdc_field using 'MARC-VRMOD'

ITAB-VRMOD.

perform bdc_field using 'MARC-VINT1'

ITAB-VINT1.

perform bdc_field using 'MARC-VINT2'

ITAB-VINT2.

perform bdc_field using 'BDC_CURSOR'

'MARC-MTVFP'.

perform bdc_field using 'MARC-MTVFP'

ITAB-MTVFP.

*MRP 4

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP17'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'MARC-SBDKZ'

ITAB-SBDKZ.

perform bdc_field using 'BDC_CURSOR'

'MARC-SFEPR'.

perform bdc_field using 'MARC-SAUFT'

ITAB-SAUFT.

perform bdc_field using 'MARC-SFEPR'

ITAB-SFEPR.

*Work Scheduling

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP24'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'BDC_CURSOR'

'MARC-SFCPF'.

perform bdc_field using 'MARA-MEINS'

ITAB-MEINS.

perform bdc_field using 'MARC-FEVOR'

ITAB-FEVOR.

perform bdc_field using 'MARC-LGPRO'

ITAB-LGPRO.

perform bdc_field using 'MARC-SFCPF'

ITAB-SFCPF.

perform bdc_field using 'MARC-DZEIT'

ITAB-DZEIT.

*Check for Conversation Factor

if ITAB-MEINS ne iTAB-ausme and iTAB-umren gt 0

and iTAB-umrez gt 0.

perform bdc_dynpro using 'SAPLMGMM' '0510'.

perform bdc_field using:

'BDC_OKCODE' '=ENTR',

'RMMZU-UMREN' ITAB-UMREN,

'RMMZU-UMREZ' ITAB-UMREZ.

endif.

perform bdc_field using 'MARC-LGPRO'

itab-LGPRO.

perform bdc_field using 'MARC-DZEIT'

itab-DZEIT.

*Accounting

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP26'.

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 'BDC_CURSOR'

'MBEW-STPRS'.

perform bdc_field using 'MBEW-BKLAS'

ITAB-BKLAS.

perform bdc_field using 'MBEW-VPRSV'

ITAB-VPRSV.

perform bdc_field using 'MBEW-STPRS'

ITAB-STPRS.

IF ITAB-VPRSV = 'S'.

perform bdc_field using 'MBEW-STPRS' "FILLS STD PRICE

ITAB-VERPR.

ELSEIF ITAB-VPRSV ='V'.

perform bdc_field using 'MBEW-VERPR' "FILLS VALUE

ITAB-VERPR.

ENDIF.

*Cost Estimate

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=BU'.

perform bdc_field using 'MAKT-MAKTX'

ITAB-MAKTX.

perform bdc_field using 'BDC_CURSOR'

'MARC-PRCTR'.

perform bdc_field using 'MARA-MEINS'

ITAB-MEINS.

perform bdc_field using 'MBEW-EKALR'

ITAB-EKALR.

perform bdc_field using 'MARC-LOSGR'

ITAB-LOSGR.

perform bdc_transaction using 'MM01'.

REFRESH BDCDATA.

  • *************************************************************

else.

w_record = w_record + 1.

endif.

ENDLOOP.

ENDFORM.

form Upload.

CALL FUNCTION 'UPLOAD'

EXPORTING

CODEPAGE = ' '

FILENAME = ' '

FILETYPE = ' '

TABLES

DATA_TAB = ITAB

EXCEPTIONS

CONVERSION_ERROR = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7.

ENDFORM.

form batch_job.

uline.

format color col_heading.

if w_trecord gt 0.

Write:/ 'Background Job has been Created for ',

w_trecord right-justified, 'Semi-Fin', 80 ''.

write:/ 'Please follow the following steps to run this job',

80 ''.

write:/ 'as listed below.', 80 ''.

format color col_normal.

skip.

write:/05 '1.Goto Transaction SM35', 80 ''.

write:/05 '2.Select your Session Name', 80 ''.

write:/05 '3.Click On Execute Button', 80 ''.

endif.

if w_record gt 0.

format color col_negative.

write:/ w_record ,'records already existed', 80 ''.

format color off.

endif.

uline.

endform.

Look at the below code for MM01

http://www.sap-img.com/abap/example-how-views-are-dealt-in-bdc.htm

Read only

0 Likes
917

thanks sudha rani