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
417

gurus

why we use the t.code mm01 in bdc and which table are declare as internal table

plz give me answer with a programm.

and why we use the ibdcdata or msgcoll

3 REPLIES 3
Read only

FredericGirod
Active Contributor
0 Likes
394

Stop using BDC in MM01, used the standard BAPI

BAPI_MATERIAL_SAVEDATA

Read only

Former Member
0 Likes
394

Hi,

sample flat file structure.

TEST_SRI1,C,VERP,TEST MAT,KG

TEST_SRI2,C,VERP,TEST MAT,KG

find the below sample program. copy the code and execute the program using above flat file.

REPORT ZDEV_BDC_MM01.

DATA : BEGIN OF IT_DATA OCCURS 0,

DATA(255),

END OF IT_DATA .

data : begin of it_MAT occurs 0,

MATNR like RMMG1-MATNR,

MBRSH LIKE RMMG1-MBRSH,

MTART LIKE RMMG1-MTART,

MAKTX LIKE MAKT-MAKTX,

MEINS LIKE MARA-MEINS,

end of it_MAT.

DATA : BEGIN OF IT_ERROR OCCURS 0,

MATNR LIKE MARA-MATNR,

MESS(255),

END OF IT_ERROR.

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

V_TEXT(200).

PERFORM UPLOAD.

LOOP AT IT_DATA.

PERFORM POP_MAT.

ENDLOOP.

LOOP AT IT_MAT.

PERFORM POP_BDCDATA.

REFRESH IT_BDCMSGCOLL.

CLEAR IT_BDCMSGCOLL.

CALL TRANSACTION 'MM01' USING IT_BDCDATA

UPDATE 'S'

MODE 'A'

MESSAGES INTO IT_BDCMSGCOLL.

IF SY-SUBRC <> 0.

LOOP AT IT_BDCMSGCOLL WHERE MSGTYP = 'E' OR

MSGTYP = 'A' OR

MSGTYP = 'S'.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = IT_BDCMSGCOLL-MSGID

LANG = sy-langu

NO = IT_BDCMSGCOLL-MSGNR

V1 = IT_BDCMSGCOLL-MSGV1

V2 = IT_BDCMSGCOLL-MSGV2

V3 = IT_BDCMSGCOLL-MSGV3

V4 = IT_BDCMSGCOLL-MSGV4

IMPORTING

MSG = V_TEXT

  • EXCEPTIONS

  • NOT_FOUND = 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.

concatenate IT_ERROR-MESS V_TEXT INTO IT_ERROR-MESS.

ENDLOOP.

IT_ERROR-MATNR = IT_MAT-MATNR.

APPEND IT_ERROR.

CLEAR IT_ERROR.

ENDIF.

ENDLOOP.

LOOP AT IT_ERROR.

WRITE : IT_ERROR-MATNR, it_error-mess.

ENDLOOP.

FORM UPLOAD .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'D:\MM01_DATA.TXT'

FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ','

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = IT_DATA

  • 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.

ENDIF.

ENDFORM. " UPLOAD

FORM POP_MAT .

SPLIT IT_DATA AT ',' INTO IT_MAT-MATNR

IT_MAT-MBRSH

IT_MAT-MTART

IT_MAT-MAKTX

IT_MAT-MEINS.

APPEND IT_MAT.

CLEAR IT_MAT.

ENDFORM. " POP_BDCDATA

FORM POP_BDCDATA .

REFRESH IT_BDCDATA.

CLEAR IT_BDCDATA.

PERFORM FILL_SCREEN USING 'SAPLMGMM' '0060' 'X'.

PERFORM FILL_VALUS USING 'RMMG1-MATNR' IT_MAT-MATNR.

PERFORM FILL_VALUS USING 'RMMG1-MBRSH' IT_MAT-MBRSH.

PERFORM FILL_VALUS USING 'RMMG1-MTART' IT_MAT-MTART.

PERFORM FILL_VALUS USING 'BDC_OKCODE' '=ENTR'.

PERFORM FILL_SCREEN USING 'SAPLMGMM' '0070' 'X'.

PERFORM FILL_VALUS USING 'MSICHTAUSW-KZSEL(01)' 'X'.

PERFORM FILL_VALUS USING 'BDC_OKCODE' '=ENTR'.

PERFORM FILL_SCREEN USING 'SAPLMGMM' '4004' 'X'.

PERFORM FILL_VALUS USING 'MAKT-MAKTX' IT_MAT-MAKTX.

PERFORM FILL_VALUS USING 'MARA-MEINS' IT_MAT-MEINS.

PERFORM FILL_VALUS USING 'BDC_OKCODE' '=BU'.

ENDFORM. " POP_BDCDATA

FORM FILL_SCREEN USING P_PROG

P_DYNPRO

P_DYNBEGIN.

IT_BDCDATA-PROGRAM = P_PROG.

IT_BDCDATA-DYNPRO = P_DYNPRO.

IT_BDCDATA-DYNBEGIN = P_DYNBEGIN.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " FILL_SCREEN

FORM FILL_VALUS USING P_FNAM

P_FVAL.

IT_BDCDATA-FNAM = P_FNAM.

IT_BDCDATA-FVAL = P_FVAL.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " FILL_VALUS

Reward if useful.

Thanks,

Sreeram.

Edited by: Sreeram Prasad on Feb 7, 2008 9:47 AM

Read only

Former Member
0 Likes
394

hi,

basically mmo1 is the transaction code for material master table MARA and we can use it for transaction recording(i.e, SHDB) and BDC Call Transaction Method (both synchronous and asynchronous update) and also for LSMW......

here is the sample code for SHDB....

data: begin of itab occurs 0,

matnr like rmmg1-matnr,

mbrsh like rmmg1-mbrsh,

mtart like rmmg1-mtart,

maktx like makt-maktx,

meins like mara-meins,

end of itab.

call function 'UPLOAD'

Exporting

Filename = ' '

Filetype = ' DAT '

*

*

*

*

*

*

*

*

*

*

*

*endif

include bdcrecx1

start-of-selection

*perform open_dataset using open_dataset

perform open_group

loop at itab.

perform bdc_dynpro using 'SAPLMGMM' , '0060'.

perform bdc_field using 'BDC-Cursor'

perform bdc-field using 'RMMG1-matnr'

perform bdc_field using 'RMMG1-MATNR'

perform bdc-field using 'ITAB-MATNR'.

perform bdc_field using 'RMMG1-MBRSH'

perform bdc_field using 'ITAB-MBRSH'

-

-

-

-

-

-

-

-

endloop.

( this transfers data from mara table to ur database table)

Reward if useful!!!!!!!