Application Development 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: 

BDC program to upload data into MM01

Former Member
0 Kudos

can any one send me BDC program to upload data from flat file for MM01 transaction with any view.

11 REPLIES 11

Former Member
0 Kudos

Check these threads..U can find sample program.

Former Member
0 Kudos

Hi pavan,

here with i am sending code in two ways using session method

i have selected 2 views

1.basic data 1

2.basic data 2

flat file structure.

ukmatrl58 ea matrlno58

ukmatrl59 ea matrlno59

ukmatrl59 ea matrlno59

codes:

1. by using include RSBDCX1

2.without using include rsbdcx1.

report ZGEMS123

no standard page heading line-size 255.

include zbdcrecx147.

data : c_file type string.

data : begin of itab occurs 0,

matnr(18),

meins(3),

maktx(40),

end of itab.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE

.

start-of-selection.

move p_file to c_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = c_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = itab

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.

perform open_group.

loop at itab.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

itab-matnr.

perform bdc_field using 'RMMG1-MBRSH'

'C'.

perform bdc_field using 'RMMG1-MTART'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_field using 'BDC_CURSOR'

'T006A-MSEHT'.

perform bdc_field using 'MARA-MEINS'

itab-meins.

perform bdc_field using 'MARA-MTPOS_MARA'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform bdc_transaction using 'MM01'.

endloop.

perform close_group.

write : /'success'.

W/O USING INCLUDE

&----


*& Report ZGEMS1234

*&

&----


*&

*&

&----


REPORT ZGEMS1234 no standard page heading line-size 137.

  • internal table to obtain data from flat file

data : begin of itab occurs 0,

matnr(18),

meins(3),

maktx(40),

end of itab.

  • Bdc table

data : I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

data : c_file type string.

  • to access file name

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK B1.

  • to provide f4 help to file name

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE

.

start-of-selection.

move p_file to c_file.

*uploading data from flat file

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = c_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = itab

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.

perform open_group.

loop at itab.

CLEAR I_BDCDATA.

REFRESH I_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

itab-matnr.

perform bdc_field using 'RMMG1-MBRSH'

'C'.

perform bdc_field using 'RMMG1-MTART'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_field using 'BDC_CURSOR'

'T006A-MSEHT'.

perform bdc_field using 'MARA-MEINS'

itab-meins.

perform bdc_field using 'MARA-MTPOS_MARA'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform BDC_INSERT.

endloop.

perform close_group.

write : /'success'.

&----


*& Form open_group

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM open_group .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = 'UMAKANTH'

  • HOLDDATE = FILLER8

KEEP = 'X'

USER = SY-UNAME

  • RECORD = FILLER1

  • PROG = SY-CPROG

  • IMPORTING

  • QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11

.

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. " open_group

&----


*& Form BDC_INSERT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_INSERT .

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

TABLES

DYNPROTAB = I_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 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.

ENDFORM. " BDC_INSERT

&----


*& Form close_group

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM close_group .

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3

.

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. " close_group

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0169 text

  • -->P_0170 text

----


FORM bdc_dynpro USING P_PGM P_SCR.

I_BDCDATA-PROGRAM = P_PGM.

I_BDCDATA-DYNPRO = P_SCR.

I_BDCDATA-DYNBEGIN = 'X'.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " bdc_dynpro

&----


*& Form bdc_field

&----


  • text

----


  • -->P_0174 text

  • -->P_0175 text

----


FORM bdc_field USING P_FNAM P_FVAL.

I_BDCDATA-FNAM = P_FNAM.

I_BDCDATA-FVAL = P_FVAL.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " bdc_field

Former Member
0 Kudos

Hi Pavan,

Chk this working BDC. This is for Semi finished products

Reward Points if Useful

REPORT zzxxx NO STANDARD PAGE HEADING

LINE-SIZE 80

MESSAGE-ID zmm01.

*----

-


*Data declaration

======================================================================

*               INTERNAL TABLE FOR LOADING THE BDCDATA                 *

======================================================================

DATA: i_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

======================================================================

*         INTERNAL TABLE TO LOAD THE FIELDS FROM THE EXCEL SHEET       *

======================================================================

DATA: i_excel LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE.

======================================================================

*          STRUCTURE FOR WRITITNG THE ERRORS IN CALL TRANSACTION

======================================================================

DATA: i_msgtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

  • Options for call transaction

DATA : g_option TYPE ctu_params.

  • Message contents

DATA : g_msg TYPE string.

DATA : g_row TYPE i VALUE 0.

======================================================================

*          INTERNAL TABLE TO HOLD SCREEN DATA

======================================================================

DATA: BEGIN OF itab OCCURS 0,

matnr(018) TYPE c, " Material No.

mbrsh(001) TYPE c, " Industry

mtart(004) TYPE c, " Material Type

werks(004) TYPE c, " Plant

lgort(004) TYPE c, " Storage Location

maktx(040) TYPE c, " Material Desc

meins(003) TYPE c, " Unit of Measure

matkl(009) TYPE c, " Material Group

bismt(018) TYPE c, " Old Material No

ekgrp(003) TYPE c, " Purchasing Group

xchpf(001) TYPE c, " Batch Mgnt

ekwsl(004) TYPE c, " Purchasing value key

webaz(003) TYPE c, " GR Processing Time

insmk(001) TYPE c, " Post Ins. stock

kordb(001) TYPE c, " Source list

dismm(002) TYPE c, " MRP Type

minbe(017) TYPE c, " Reorder Point

dispo(003) TYPE c, " MRP Controller

disls(002) TYPE c, " Lot size

bstmi(017) TYPE c, " Minimum Lot Size

bstma(017) TYPE c, " Maximum Lot Size

mabst(017) TYPE c, " Maximum stock level

plifz(003) TYPE c, " Planned Deliv. Time

fhori(003) TYPE c, " SchedMargin key

eisbe(017) TYPE c, " Safety Stock

perkz(001) TYPE c, " Period Indicator

mtvfp(002) TYPE c, " Availability check

lgpbe(010) TYPE c, " Storage Bin

iprkz(001) TYPE c, " Period Ind. for SLED

sernp(004) TYPE c, " Serial no. profile

bklas(004) TYPE c, " Valuation Class

vprsv(001) TYPE c, " Price control

peinh(006) TYPE c, " Price Unit

xlifo(001) TYPE c, " LIFO/FIFO-relevent

END OF itab.

======================================================================

*          SELECTION SCREEN FOR INPUTS IN CALL TRANSACTION

======================================================================

  • Selection screen design.

SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-005. " Select File path

PARAMETERS: path LIKE rlgrap-filename OBLIGATORY. " File path

PARAMETERS: start TYPE i DEFAULT 4 OBLIGATORY. " Start row

PARAMETERS: end TYPE i DEFAULT 4 OBLIGATORY. " End row

SELECTION-SCREEN : END OF BLOCK b1.

SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-006. " Upload Method

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : ct RADIOBUTTON GROUP ctu DEFAULT 'X' MODIF ID cts. " Radio button for Call Transaction

SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD ct.

SELECTION-SCREEN END OF LINE.

PARAMETERS: defsize LIKE g_option-defsize DEFAULT 'X' OBLIGATORY. " Def. Size

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 3(20) text-s04 FOR FIELD group.

SELECTION-SCREEN POSITION 25.

PARAMETERS: dismode LIKE g_option-dismode DEFAULT 'A' OBLIGATORY. " Display Mode

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 3(20) text-s05 FOR FIELD group. " Update Mode

SELECTION-SCREEN POSITION 25.

PARAMETERS: updmode LIKE g_option-updmode DEFAULT 'A' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : session RADIOBUTTON GROUP ctu MODIF ID ses.

SELECTION-SCREEN COMMENT 48(20) text-s07 FOR FIELD session. " Generate Session

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group. " Session

SELECTION-SCREEN POSITION 25.

PARAMETERS group(12).

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 3(20) text-s02 FOR FIELD user. " User Name

SELECTION-SCREEN POSITION 25.

PARAMETERS: user(12) DEFAULT sy-uname.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.

SELECTION-SCREEN POSITION 25.

PARAMETERS: keep AS CHECKBOX. "' ' = delete session if finished

"'X' = keep session if finished

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN : END OF BLOCK b2.

  • At selection-screen

AT SELECTION-SCREEN ON VALUE-REQUEST FOR path.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

file_name = path

.

  • Initialization

INITIALIZATION.

CLEAR : i_excel,

i_excel[],

itab,

itab[].

START-OF-SELECTION.

  • Upload the data from local XL file.

PERFORM upload_data_from_xl_file.

  • Populate  BDCDATA table

CLEAR i_bdcdata.

REFRESH i_bdcdata.

g_row = start.

  • Set check for mandatory fields

LOOP AT itab.

IF itab-matnr = ' '.

DELETE itab INDEX sy-tabix.

ENDIF.

IF itab-mbrsh = ' '.

DELETE itab INDEX sy-tabix.

ENDIF.

IF itab-mtart = ' '.

DELETE itab INDEX sy-tabix.

ENDIF.

ENDLOOP.

IF itab[] IS INITIAL.

MESSAGE i045 .

EXIT.

ENDIF.

IF ct EQ 'X'.

LOOP AT itab.

PERFORM populate_bdc_table.

IF NOT i_bdcdata[] IS INITIAL.

  • Call transaction to upload data

PERFORM call_transaction.

ENDIF.

g_row = g_row + 1.

ENDLOOP.

ELSE.

  • Call SESSION to upload data

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

client = sy-mandt

group = group

user = sy-uname.

keep = keep.

LOOP AT itab.

PERFORM populate_bdc_table.

IF NOT i_bdcdata[] IS INITIAL.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = 'MM01'

TABLES

dynprotab = i_bdcdata.

REFRESH: i_bdcdata.

CLEAR: i_bdcdata.

ENDIF.

g_row = g_row + 1.

ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDIF.

*&----


*

*&      Form  populate_bdc_table

*&----


*

*       Populate BDC table

*----


*

FORM populate_bdc_table .

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MTART'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RMMG1-MATNR'

itab-matnr.

PERFORM bdc_field USING 'RMMG1-MBRSH'

itab-mbrsh.

PERFORM bdc_field USING 'RMMG1-MTART'

itab-mtart.

  • Org. Level Views Selection for Raw materials

IF itab-mtart EQ 'ROH'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

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(17)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(06)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

******************Start of #Mod001 *************************

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

******************End of #Mod001 ***************************

ENDIF.

  • Org. Level View Selection for Spare materials

IF itab-mtart EQ 'ERSA'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'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(17)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

  • Org. Level View Selection for Semi-finished materials

IF itab-mtart EQ 'HALB'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

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_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(06)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

******************Start of #Mod001 *************************

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

******************End of #Mod001 ***************************

ENDIF.

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.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-BISMT'.

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_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

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 'MARA-XCHPF'

itab-xchpf.

PERFORM bdc_field USING 'MARA-EKWSL'

itab-ekwsl.

PERFORM bdc_field USING 'MARC-WEBAZ'

itab-webaz.

******************Start of #Mod002 *************************

  • PERFORM bdc_field USING 'MARC-INSMK'

  • itab-insmk.

  • PERFORM bdc_field USING 'MARC-KORDB'

  • itab-kordb.

******************End of #Mod002 ***************************

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

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.

  • Condition for MRP Type

IF itab-dismm NE 'ND'.

PERFORM bdc_field USING 'MARC-MINBE'

itab-minbe.

PERFORM bdc_field USING 'MARC-DISPO'

itab-dispo.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MABST'.

PERFORM bdc_field USING 'MARC-DISLS'

itab-disls.

PERFORM bdc_field USING 'MARC-BSTMI'

itab-bstmi.

PERFORM bdc_field USING 'MARC-BSTMA'

itab-bstma.

PERFORM bdc_field USING 'MARC-MABST'

itab-mabst.

ENDIF.

  • Condition for MRP Type

IF itab-dismm NE 'ND'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

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

'MARC-MINBE'.

PERFORM bdc_field USING 'MARC-DISMM'

itab-dismm.

PERFORM bdc_field USING 'MARC-MINBE'

itab-minbe.

PERFORM bdc_field USING 'MARC-DISPO'

itab-dispo.

PERFORM bdc_field USING 'MARC-DISLS'

itab-disls.

PERFORM bdc_field USING 'MARC-BSTMI'

itab-bstmi.

PERFORM bdc_field USING 'MARC-BSTMA'

itab-bstma.

PERFORM bdc_field USING 'MARC-MABST'

itab-mabst.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

  • For Semifinished materials only

IF itab-mtart EQ 'HALB'.

PERFORM bdc_field USING 'MARC-BESKZ'

'X'.

ENDIF.

PERFORM bdc_field USING 'MARC-PLIFZ'

itab-plifz.

PERFORM bdc_field USING 'MARC-WEBAZ'

itab-webaz.

PERFORM bdc_field USING 'MARC-FHORI'

itab-fhori.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-EISBE'.

PERFORM bdc_field USING 'MARC-EISBE'

itab-eisbe.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'MARC-PERKZ'

itab-perkz.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MTVFP'.

PERFORM bdc_field USING 'MARC-MTVFP'

itab-mtvfp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARD-LGPBE'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins.

PERFORM bdc_field USING 'MARD-LGPBE'

itab-lgpbe.

PERFORM bdc_field USING 'MARA-XCHPF'

itab-xchpf.

PERFORM bdc_field USING 'MARA-IPRKZ'

itab-iprkz.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SERNP'.

PERFORM bdc_field USING 'MARC-SERNP'

itab-sernp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-BKLAS'.

PERFORM bdc_field USING 'MBEW-BKLAS'

itab-bklas.

PERFORM bdc_field USING 'MBEW-VPRSV'

itab-vprsv.

PERFORM bdc_field USING 'MBEW-PEINH'

itab-peinh.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-XLIFO'.

PERFORM bdc_field USING 'MBEW-XLIFO'

itab-xlifo.

******************Start of #Mod001 **********************

IF itab-mtart EQ 'ROH' OR itab-mtart EQ 'HALB'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-EKALR'.

PERFORM bdc_field USING 'MBEW-EKALR'

'X'.

PERFORM bdc_field USING 'MBEW-HKMAT'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx.

ENDIF.

****************End of #Mod001 **************************

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

ENDFORM. "populate_bdc_table

*&----


*

*&      Form  call_transaction

*&----


*

*       To perform Call Transcation method

*----


*

FORM call_transaction .

CALL TRANSACTION 'MM01'

USING i_bdcdata

MESSAGES INTO i_msgtab

MODE dismode

UPDATE updmode.

IF NOT i_msgtab[] IS INITIAL.

  • Perform format message

PERFORM format_message.

ENDIF.

REFRESH: i_bdcdata, i_msgtab.

CLEAR: i_bdcdata, i_msgtab.

ENDFORM. "call_transaction

*&----


*

*&      Form  format_message

*&----


*

*       format message to display

*----


*

FORM format_message .

LOOP AT i_msgtab.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = i_msgtab-msgid

lang = sy-langu

no = i_msgtab-msgnr

v1 = i_msgtab-msgv1

v2 = i_msgtab-msgv2

v3 = i_msgtab-msgv3

v4 = i_msgtab-msgv4

IMPORTING

msg = g_msg

EXCEPTIONS

not_found = 1

OTHERS = 2.

IF sy-subrc = 0.

CASE i_msgtab-msgtyp.

WHEN 'E'.

FORMAT COLOR 6 ON.

WRITE:/ text-001, g_row,

/ text-002, i_msgtab-msgtyp,

/ g_msg.

FORMAT COLOR OFF.

WHEN 'W'.

FORMAT COLOR 3 ON.

WRITE:/ text-003, g_row,

/ text-002, i_msgtab-msgtyp,

/ g_msg.

FORMAT COLOR OFF.

WHEN 'I'.

FORMAT COLOR 4 ON.

WRITE:/ text-004, g_row,

/ text-002, i_msgtab-msgtyp,

/ g_msg.

FORMAT COLOR OFF.

WHEN 'S'.

FORMAT COLOR 5 ON.

WRITE:/ text-002, i_msgtab-msgtyp,

/ g_msg.

FORMAT COLOR OFF.

ENDCASE.

ENDIF.

ENDLOOP.

ENDFORM. "format_message

*&----


*

*& Form bdc_dynpro

*&----


*

  • BDC DYNPRO

*----


*

  • -->P_0612 text

  • -->P_0613 text

*----


*

FORM bdc_dynpro USING g_screen TYPE any

g_number TYPE any.

i_bdcdata-program = g_screen.

i_bdcdata-dynpro = g_number.

i_bdcdata-dynbegin = 'X'.

APPEND i_bdcdata.

CLEAR i_bdcdata.

ENDFORM. " bdc_dynpro

*&----


*

*& Form bdc_field

*&----


*

  • To Perform Screen input

*----


*

  • -->P_0617 text

  • -->P_0618 text

*----


*

FORM bdc_field USING g_fnam TYPE any

g_fval TYPE any.

i_bdcdata-fnam = g_fnam.

i_bdcdata-fval = g_fval.

APPEND i_bdcdata.

CLEAR i_bdcdata.

ENDFORM. " bdc_field

*&----


*

*& Form upload_data_from_xl_file

*&----


*

*       Upload Data from Excel file

  • Remarks : Max Char size per cell is 50.

*----


*

FORM upload_data_from_xl_file .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = path

i_begin_col = 1

i_begin_row = start

i_end_col = 34

i_end_row = end

TABLES

intern = i_excel

EXCEPTIONS

inconsistent_parameters = 1

upload_ole = 2

OTHERS = 3.

  • Check if the user able to open local file

IF sy-subrc <> 0.

MESSAGE i046.

STOP.

ENDIF.

  • Check if excel file contains data

IF i_excel[] IS INITIAL.

MESSAGE i045.

STOP.

ELSE.

LOOP AT i_excel.

  • Map the data from local file to internal table

PERFORM populate_itab.

AT END OF row.

APPEND itab.

CLEAR itab.

ENDAT.

ENDLOOP.

ENDIF.

CLEAR itab.

ENDFORM. "upload_data_from_xl_file

*&----


*

*& Form populate_itab

*&----


*

*       To Populate Values from Excel file to Internal table

*----


*

FORM populate_itab .

CASE i_excel-col.

WHEN '0001'.

itab-matnr = i_excel-value.

WHEN '0002'.

itab-mbrsh = i_excel-value.

WHEN '0003'.

itab-mtart = i_excel-value.

WHEN '0004'.

itab-werks = i_excel-value.

WHEN '0005'.

itab-lgort = i_excel-value.

WHEN '0006'.

itab-maktx = i_excel-value.

WHEN '0007'.

itab-meins = i_excel-value.

WHEN '0008'.

itab-ekgrp = i_excel-value.

WHEN '0009'.

itab-matkl = i_excel-value.

WHEN '0010'.

itab-bismt = i_excel-value.

WHEN '0011'.

itab-xchpf = i_excel-value.

WHEN '0012'.

itab-ekwsl = i_excel-value.

WHEN '0013'.

itab-webaz = i_excel-value.

WHEN '0014'.

itab-insmk = i_excel-value.

WHEN '0015'.

itab-kordb = i_excel-value.

WHEN '0016'.

itab-dismm = i_excel-value.

WHEN '0017'.

itab-minbe = i_excel-value.

WHEN '0018'.

itab-dispo = i_excel-value.

WHEN '0019'.

itab-disls = i_excel-value.

WHEN '0020'.

itab-bstmi = i_excel-value.

WHEN '0021'.

itab-bstma = i_excel-value.

WHEN '0022'.

itab-mabst = i_excel-value.

WHEN '0023'.

itab-plifz = i_excel-value.

WHEN '0024'.

itab-fhori = i_excel-value.

WHEN '0025'.

itab-eisbe = i_excel-value.

WHEN '0026'.

itab-perkz = i_excel-value.

WHEN '0027'.

itab-mtvfp = i_excel-value.

WHEN '0028'.

itab-lgpbe = i_excel-value.

WHEN '0029'.

itab-iprkz = i_excel-value.

WHEN '0030'.

itab-sernp = i_excel-value.

WHEN '0031'.

itab-bklas = i_excel-value.

WHEN '0032'.

itab-vprsv = i_excel-value.

WHEN '0033'.

itab-peinh = i_excel-value.

WHEN '0034'.

itab-xlifo = i_excel-value.

ENDCASE.

ENDFORM. " populate_itab

Regards

Gokul

Former Member
0 Kudos

Former Member
0 Kudos

Just use standard program RMDATIND. The only thing you should do is a mapping of your file to the structure that RMDATIND requires (via LSMW)

Former Member
0 Kudos

&----


*& Report ZMATERIAL

*&

&----


&----


report zmaterial_fert.

selection-screen :begin of block bl1 with frame title text-001.

parameters : p_fname type rlgrap-filename,

p_lgort type rlgrap-filename,

p_update(1) default 'N',

p_bdcgrp(12) default 'MM_MASTER'.

selection-screen end of block bl1.

data: v_chr_opengrp type c,

r_matnr like mara-matnr,

r_werks like marc-werks,

v_str_fname type string.

data : begin of bdc_itab occurs 0.

include structure bdcdata.

data : end of bdc_itab.

data: begin of messtab occurs 0.

include structure bdcmsgcoll.

data: end of messtab.

data: begin of count,

inrec(9) type n, " input I_MATERIAL count

create(9) type n, " create count

error(9) type n, " error count

bdc(9) type n, " count of BDC creates

end of count.

data : begin of i_material occurs 0,

matnr(018) type c, "Material number

mbrsh(001) type c, "Industry sector

mtart(004) type c, "Material type

werks(004) type c, "Plant

lgort(004),

lgnum(004),

vkorg(004),

vtweg(002),

mtpos_mara(004),

spart(002),

dwerk(004),

taxkm(001),

versg(001),

  • MTPOS(004),

maktx(040) type c, "Material description

meins(003) type c, "Base unit of measure

matkl(009) type c, "Material group

bismt(018), "old material code

brgew(017) type c, "Gross weight

gewei(003) type c, "Weight unit

ntgew(017) type c, "Net weight

magrv(004) type c, "Matl grp pack matls

tragr(004), "

ladgr(004),

prctr(007),

  • EKGRP(004),

  • EKWSL(004),

chap(012),

mattype(001),

nogrs(001),

outmat(018),

valid(010),

curr(005),

netdeal(018),

asess(018),

disgr(004),

dismm(002) type c,

dispo(003),

  • LGORT(004),

disls(002),

maabc(001),

lgpro(004),

webaz(003),

lgfsb(004),

plifz(003),

  • STRGR(002),

fhori(003),

sfepr(004),

fevor(003),

sfcpf(006),

beskz(001),

perkz(001),

  • VRMOD(001),

  • VINT1(003),

  • VINT2(003),

  • ALTSL(001),

  • SBDKZ(001),

  • FERVOR(002),

  • SFCPF(006),

stprs(015),

  • AWSLS(006),

mtvfp(002),

  • STGRP(002),

*PRCTR(007),

bklas(004),

vprsv(001),

peinh(006),

*EKALR(015),

verpr(015),

hrkft(002),

*HKMAT,

kosgr(010),

*LOSGR(018),

end of i_material.

at selection-screen on value-request for p_fname.

call function 'KD_GET_FILENAME_ON_F4'

exporting

program_name = 'Z_MM_MATERIAL_UPLOAD'

dynpro_number = '1000'

field_name = 'P_FNAME'

changing

file_name = p_fname.

at selection-screen on value-request for p_lgort.

call function 'KD_GET_FILENAME_ON_F4'

exporting

program_name = 'ZMATERIAL'

dynpro_number = '1000'

field_name = 'P_FNAME'

changing

file_name = p_lgort.

start-of-selection.

if p_fname is initial.

message i016(rp) with 'Please enter a file name'.

leave list-processing.

else.

move p_fname to v_str_fname.

endif.

call function 'GUI_UPLOAD'

exporting

filetype = 'ASC'

filename = v_str_fname

has_field_separator = 'X'

tables

data_tab = i_material

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.

loop at i_material.

r_matnr = i_material-matnr.

r_werks = i_material-werks.

add 1 to count-inrec.

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

i_material-matnr.

perform bdc_field using 'RMMG1-MTART'

i_material-mtart.

perform bdc_field using 'RMMG1-MBRSH'

i_material-mbrsh.

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(02)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(03)'

'X'.

*PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(07)'

*'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(08)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(05)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(06)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(04)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(09)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(10)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(11)'

'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(16)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(17)'

'X'.

perform bdc_field using 'BDC_OKCODE' '=P+'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(07)'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(03)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(04)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(05)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '0080'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-LGNUM'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'RMMG1-WERKS'

i_material-werks.

perform bdc_field using 'RMMG1-LGORT'

i_material-lgort.

perform bdc_field using 'RMMG1-LGNUM'

i_material-lgnum.

perform bdc_field using 'RMMG1-VKORG'

i_material-vkorg.

perform bdc_field using 'RMMG1-VTWEG'

i_material-vtweg.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARA-MEINS'

i_material-meins.

perform bdc_field using 'MARA-MATKL'

i_material-matkl.

perform bdc_field using 'MARA-BISMT'

i_material-bismt.

perform bdc_field using 'MARA-BRGEW'

i_material-brgew.

perform bdc_field using 'MARA-GEWEI'

i_material-gewei.

perform bdc_field using 'MARA-NTGEW'

i_material-ntgew.

perform bdc_field using 'MARA-MAGRV'

i_material-magrv.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARA-MEINS'

i_material-meins.

perform bdc_field using 'MARA-MATKL'

i_material-matkl.

perform bdc_field using 'MARA-SPART'

i_material-spart.

perform bdc_field using 'MVKE-DWERK'

i_material-dwerk.

perform bdc_field using 'BDC_CURSOR'

'MG03STEUER-TAXKM(01)'.

perform bdc_field using 'MG03STEUER-TAXKM(01)'

i_material-taxkm.

perform bdc_dynpro using 'SAPLMGMM' '4200'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARA-MTPOS_MARA'

i_material-mtpos_mara.

perform bdc_field using 'MVKE-versg'

i_material-versg.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARA-BRGEW'

i_material-brgew.

perform bdc_field using 'MARA-GEWEI'

i_material-gewei.

perform bdc_field using 'MARA-NTGEW'

i_material-ntgew.

perform bdc_field using 'BDC_CURSOR'

'MARA-MAGRV'.

perform bdc_field using 'MARA-MAGRV'

i_material-magrv.

perform bdc_field using 'MARA-TRAGR'

i_material-tragr.

perform bdc_field using 'MARC-LADGR'

i_material-ladgr.

perform bdc_field using 'MARC-PRCTR'

i_material-prctr.

perform bdc_field using 'MARC-MTVFP'

i_material-mtvfp.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'BDC_CURSOR'

'J_1IASSVAL-J_1IVALASS'.

perform bdc_field using 'J_1IMTCHID-J_1ICHID'

i_material-chap.

perform bdc_field using 'J_1IMTCHID-J_1ISUBIND'

'X'..

perform bdc_field using 'J_1IMTCHID-J_1ICAPIND'

i_material-mattype.

perform bdc_field using 'J_1IMTCHID-J_1IGRXREF'

i_material-nogrs.

perform bdc_field using 'J_1IMODDET-J_1IMOOM'

i_material-outmat.

perform bdc_field using 'J_1IASSVAL-J_1IFRDATE'

i_material-valid.

perform bdc_field using 'J_1IASSVAL-J_1IWAERS'

i_material-curr.

perform bdc_field using 'J_1IASSVAL-J_1IVALNDP'

i_material-netdeal.

perform bdc_field using 'J_1IASSVAL-J_1IVALASS'

i_material-asess.

*perform bdc_dynpro using 'SAPLMGMM' '4000'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

*perform bdc_field using 'MAKT-MAKTX'

  • I_MATERIAL-MAKTX.

*perform bdc_field using 'MVKE-MTPOS'

  • I_MATERIAL-MTPOS.

*

*

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'ENTR'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARA-MEINS'

i_material-meins.

perform bdc_field using 'BDC_CURSOR'

'MARC-DISMM'.

perform bdc_field using 'MARC-DISMM'

i_material-dismm.

perform bdc_field using 'MARC-DISPO'

i_material-dispo.

perform bdc_field using 'MARC-DISLS'

i_material-disls.

perform bdc_field using 'MARC-MAABC'

i_material-maabc.

perform bdc_field using 'MARC-DISGR'

i_material-disgr.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARC-FHORI'

i_material-fhori.

perform bdc_field using 'MARC-LGPRO'

i_material-lgpro.

perform bdc_field using 'MARC-LGFSB'

i_material-lgfsb.

perform bdc_field using 'MARC-PLIFZ'

i_material-plifz.

*perform bdc_field using 'MARC-STRGR'

  • I_MATERIAL-STRGR.

perform bdc_field using 'MARC-BESKZ'

i_material-beskz.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

*perform bdc_field using 'MARC-STRGR'

  • I_MATERIAL-STRGR.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MARC-SAUFT'

'X'.

perform bdc_field using 'MARC-SFEPR'

i_material-sfepr.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'MArc-FEVOR'

i_material-fevor.

perform bdc_field using 'MARC-SFCPF'

i_material-sfcpf.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

*

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'BDC_CURSOR'

'MBEW-BKLAS'.

perform bdc_field using 'MBEW-BKLAS'

i_material-bklas.

perform bdc_field using 'MBEW-VPRSV'

i_material-vprsv.

perform bdc_field using 'MBEW-PEINH'

i_material-peinh.

perform bdc_field using 'MBEW-STPRS'

i_material-stprs.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

*

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

perform bdc_field using 'Mbew-kosgr'

i_material-kosgr.

perform bdc_field using 'Mbew-HKMAT'

'X'.

perform bdc_field using 'Mbew-HRKFT'

i_material-hrkft.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

i_material-maktx.

*perform bdc_field using 'Mbew-KOSGR'

  • I_MATERIAL-KOSGR.

*

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform post_transaction.

refresh bdc_itab.

clear bdc_itab.

endloop.

end-of-selection.

perform finalization.

----


  • Start new screen *

----


form bdc_dynpro using program dynpro.

clear bdc_itab.

bdc_itab-program = program.

bdc_itab-dynpro = dynpro.

bdc_itab-dynbegin = 'X'.

append bdc_itab.

endform. "bdc_dynpro

----


  • Insert field *

----


form bdc_field using fnam fval.

if fval <> ''.

clear bdc_itab.

bdc_itab-fnam = fnam.

bdc_itab-fval = fval.

append bdc_itab.

endif.

endform. "bdc_field

&----


*& Form POST_TRANSACTION

----


form post_transaction.

refresh messtab.

clear messtab.

call transaction 'MM01' using bdc_itab

mode p_update

update 'S'

messages into messtab.

submit zrpt_plantext with flatfile = p_lgort

with p_matnr = r_matnr

with p_werks = r_werks and return.

read table messtab with key msgtyp = 'E'.

if sy-subrc eq 0.

perform process_error_messages.

add 1 to count-bdc.

if v_chr_opengrp is initial.

perform bdc_open_group.

endif.

call function 'BDC_INSERT'

exporting

tcode = 'MM01'

tables

dynprotab = bdc_itab

exceptions

internal_error = 1

not_open = 2

queue_error = 3

tcode_invalid = 4

others = 5.

if sy-subrc <> 0.

case sy-subrc.

when 1.

write: / 'Internal error'.

when 2.

write: / 'Not open error'.

when 3.

write: / 'queue error'.

when 4.

write: / 'tcode invalid error'.

when others.

write: / 'other error'.

endcase.

endif.

else.

add +1 to count-create.

format intensified off.

format color col_normal.

format color col_normal off.

endif.

clear bdc_itab.

refresh bdc_itab.

endform. " POST_TRANSACTION

&----


*& Form PROCESS_ERROR_MESSAGES

----


form process_error_messages.

data: begin of loc_aux_message.

include structure message.

data: end of loc_aux_message.

data : msgno type sy-msgno.

loop at messtab.

move messtab-msgnr to msgno.

call function 'WRITE_MESSAGE'

exporting

msgid = messtab-msgid

msgno = msgno

msgty = messtab-msgtyp

msgv1 = messtab-msgv1

msgv2 = messtab-msgv2

msgv3 = messtab-msgv3

msgv4 = messtab-msgv4

importing

messg = loc_aux_message

exceptions

others = 1.

if sy-subrc eq 0.

format color col_negative on.

write: /10 i_material-matnr.

write: /10 loc_aux_message.

format color col_negative off.

else.

format color col_negative on.

write: /10 i_material-matnr.

write: / 'Error creating message'.

format color col_negative off.

exit.

endif.

endloop.

endform. " PROCESS_ERROR_MESSAGES

&----


*& Form BDC_OPEN_GROUP

----


form bdc_open_group.

call function 'BDC_OPEN_GROUP'

exporting

client = sy-mandt

group = p_bdcgrp

holddate = sy-datum

keep = 'X'

user = sy-uname

exceptions

client_invalid = 1

destination_invalid = 2

group_invalid = 3

group_is_locked = 4

holddate_invalid = 5

internal_error = 6

queue_error = 7

running = 8

system_lock_error = 9

user_invalid = 10

others = 11.

if sy-subrc eq 0.

v_chr_opengrp = 'X'.

endif.

endform. " BDC_OPEN_GROUP

&----


*& Form FINALIZATION

&----


form finalization.

if v_chr_opengrp = 'X'.

call function 'BDC_CLOSE_GROUP'

exceptions

not_open = 1

queue_error = 2

others = 3.

endif.

get time.

skip 2.

write: / 'Time', sy-uzeit.

skip.

format color col_total on.

write: / 'Total Records: ', 40 count-inrec.

write: / 'PERNR not of Emp Group 6 ', 40 count-error.

write: / 'Records Created: ', 40 count-create.

write: / 'BDC Create in group: ', 40 count-bdc.

if v_chr_opengrp = 'X'.

skip 1.

format intensified on.

format color col_negative on.

write: / 'PLEASE USE TRANSACTION "SM35" ',

'TO PROCESS THE GENERATED BDC SESSION ... ',

p_bdcgrp.

endif.

endform. " FINALIZATION

former_member656787
Discoverer
0 Kudos

I would recommend the usage of BAPI_MATERIAL_SAVEDATA over RMDATIND.

Former Member
0 Kudos

report ZSDMM

no standard page heading line-size 255.

include bdcrecx1.

types: begin of tw_sd,

  • matnr like rmmg1-matnr,

MBRSH like RMMG1-MBRSH,

mtart like RMMG1-MTART,

werks like RMMG1-WERKS,

lgort like RMMG1-LGORT,

vkorg like RMMG1-VKORG,

vtweg like RMMG1-VTWEG,

maktx like MAKT-MAKTX,

meins like MARA-MEINS,

matkl like MARA-MATKL,

bismt like MARA-BISMT,

spart like MARA-SPART,

brgew like MARA-BRGEW,

  • gewei like MARA-GEWEI,

ntgew like MARA-NTGEW,

dwerk like MVKE-DWERK,

taxkm1 like MG03STEUER-TAXKM,

taxkm2 like MG03STEUER-TAXKM,

ktgrm like MVKE-KTGRM,

tragr like MARA-TRAGR,

  • mtvfp like MARC-MTVFP,

ladgr like MARC-LADGR,

ekwsl like MARA-EKWSL,

dismm like MARC-DISMM,

dispo like MARC-DISpo,

disls like MARC-DISLS,

webaz(5) TYPE C," like MARC-WEBAZ,

plifz(3) TYPE C, "like MARC-PLIFZ,

fhori(10) type c," like MARC-FHORI,

  • perkz like MARC-PERKZ,

bklas like MBEW-BKLAS,

vprsv like MBEW-VPRSV,

  • peinh like MBEW-peinh,

verpr(10) TYPE C, "like MBEW-VERPR,

prctr like MARC-PRCTR,

end of tw_sd,

tt_sd type standard table of tw_sd.

data: lw_sd type tw_sd,

lt_sd type tt_sd.

DATA: LW_BDCDATA TYPE BDCDATA,

LT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,

LW_BDCMSGCOLL TYPE BDCMSGCOLL,

LT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL.

selection-screen begin of block bk with frame title text-001.

parameters: file type localfile.

selection-screen end of block bk.

data str type string.

at selection-screen on value-request for file.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = file.

start-of-selection.

str = file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = STR

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = LT_SD.

perform open_group.

LOOP AT LT_SD INTO LW_SD.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MTART'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

  • perform bdc_field using 'RMMG1-MATNR'

  • LW_SD-MATNR.

perform bdc_field using 'RMMG1-MBRSH'

LW_SD-MBRSH.

perform bdc_field using 'RMMG1-MTART'

LW_SD-MTART.

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

  • perform bdc_dynpro using 'SAPLMGMM' '0070'.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(14)'.

  • perform bdc_field using 'BDC_OKCODE'

  • '/00'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(03)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(04)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(05)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(08)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(11)'

  • '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_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(01)'.

  • perform bdc_field using 'BDC_OKCODE'

  • '/00'.

  • 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(01)'.

  • perform bdc_field using 'BDC_OKCODE'

  • '/00'.

  • perform bdc_dynpro using 'SAPLMGMM' '0070'.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MSICHTAUSW-DYTXT(21)'.

  • perform bdc_field using 'BDC_OKCODE'

  • '/00'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(18)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(19)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(20)'

  • 'X'.

  • perform bdc_field using 'MSICHTAUSW-KZSEL(21)'

*

  • 'X'.

perform bdc_dynpro using 'SAPLMGMM' '0080'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-VTWEG'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'RMMG1-WERKS'

LW_SD-WERKS.

perform bdc_field using 'RMMG1-LGORT'

LW_SD-LGORT.

perform bdc_field using 'RMMG1-VKORG'

LW_SD-VKORG.

perform bdc_field using 'RMMG1-VTWEG'

LW_SD-VTWEG.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-MATKL'

LW_SD-MATKL.

perform bdc_field using 'MARA-BISMT'

LW_SD-BISMT.

perform bdc_field using 'MARA-SPART'

LW_SD-SPART.

perform bdc_field using 'MARA-MTPOS_MARA'

'NORM'.

perform bdc_field using 'BDC_CURSOR'

'MARA-NTGEW'.

perform bdc_field using 'MARA-BRGEW'

LW_SD-BRGEW.

  • perform bdc_field using 'MARA-GEWEI'

  • LW_SD-GEWEI.

perform bdc_field using 'MARA-NTGEW'

LW_SD-NTGEW.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-SPART'

LW_SD-SPART.

perform bdc_field using 'MVKE-DWERK'

LW_SD-DWERK.

perform bdc_field using 'MARA-MATKL'

LW_SD-MATKL.

perform bdc_field using 'MVKE-SKTOF'

'X'.

perform bdc_field using 'BDC_CURSOR'

'MG03STEUER-TAXKM(02)'.

perform bdc_field using 'MG03STEUER-TAXKM(01)'

LW_SD-TAXKM1.

perform bdc_field using 'MG03STEUER-TAXKM(02)'

LW_SD-TAXKM2.

perform bdc_dynpro using 'SAPLMGMM' '4200'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-SPART'

LW_SD-SPART.

perform bdc_field using 'MVKE-DWERK'

LW_SD-DWERK.

perform bdc_field using 'MARA-MATKL'

LW_SD-MATKL.

perform bdc_field using 'MVKE-SKTOF'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'BDC_CURSOR'

'MVKE-KTGRM'.

perform bdc_field using 'MVKE-KTGRM'

LW_SD-KTGRM.

perform bdc_field using 'MARA-MTPOS_MARA'

'NORM'.

perform bdc_field using 'MVKE-MTPOS'

'NORM'.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-BRGEW'

LW_SD-BRGEW.

  • perform bdc_field using 'MARA-GEWEI'

  • LW_SD-GEWEI.

perform bdc_field using 'MARA-NTGEW'

LW_SD-NTGEW.

perform bdc_field using 'MARC-MTVFP'

  • LW_SD-MTVFP.

'02'.

perform bdc_field using 'BDC_CURSOR'

'MARC-LADGR'.

perform bdc_field using 'MARA-TRAGR'

LW_SD-TRAGR.

perform bdc_field using 'MARC-LADGR'

LW_SD-LADGR.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4040'.

perform bdc_field using 'BDC_OKCODE'

'=SP09'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-MATKL'

LW_SD-MATKL.

perform bdc_field using 'MARA-EKWSL'

LW_SD-EKWSL.

  • perform bdc_field using 'MARC-WEBAZ'

  • LW_SD-WEBAZ.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=SP09'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

perform bdc_field using 'MARA-MEINS'

lw_sd-meins.

perform bdc_field using 'MARA-MATKL'

lw_sd-matkl.

*perform bdc_field using 'BDC_CURSOR'

  • 'MARA-EKWSL'.

*perform bdc_field using 'MARA-EKWSL'

  • '1'.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4040'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARC-DISMM'

LW_SD-DISMM.

perform bdc_field using 'MARC-DISPO'

LW_SD-DISPO.

perform bdc_field using 'BDC_CURSOR'

'MARC-DISLS'.

perform bdc_field using 'MARC-DISLS'

LW_SD-DISLS.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'BDC_CURSOR'

'MARC-FHORI'.

perform bdc_field using 'MARC-WEBAZ'

LW_SD-WEBAZ.

perform bdc_field using 'MARC-PLIFZ'

LW_SD-PLIFZ.

perform bdc_field using 'MARC-FHORI'

LW_SD-FHORI.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

  • perform bdc_field using 'MARC-PERKZ'

  • LW_SD-PERKZ.

perform bdc_field using 'MARC-MTVFP'

  • LW_SD-MTVFP.

'02'.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

lw_sd-maktx.

*perform bdc_dynpro using 'SAPLMGMM' '4000'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_field using 'MAKT-MAKTX'

  • lw_sd-maktx.

*perform bdc_field using 'BDC_CURSOR'

  • 'MPOP-PRMOD'.

*perform bdc_field using 'MARA-MEINS'

  • lw_sd-meins.

*perform bdc_field using 'MPOP-PRMOD'

    • lw_sd-prmod.

  • 'D'.

*perform bdc_field using 'MARC-PERKZ'

  • 'M'.

*perform bdc_field using 'MPOP-PERAN'

  • '60'.

*perform bdc_field using 'MPOP-ANZPR'

  • '12'.

*perform bdc_field using 'MPOP-KZINI'

  • 'X'.

*perform bdc_field using 'MPOP-SIGGR'

  • '4.000'.

*perform bdc_field using 'MARC-AUTRU'

  • 'X'.

*perform bdc_field using 'MPOP-MODAV'

  • '2'.

*perform bdc_dynpro using 'SAPLMGMM' '4000'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

*perform bdc_field using 'MAKT-MAKTX'

  • lw_sd-maktx.

*perform bdc_field using 'MARA-MEINS'

  • lw_sd-meins.

*perform bdc_field using 'MARA-IPRKZ'

  • 'D'.

*perform bdc_dynpro using 'SAPLMGMM' '4000'.

*perform bdc_field using 'BDC_OKCODE'

  • '/00'.

*perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

*perform bdc_field using 'MAKT-MAKTX'

  • lw_sd-maktx.

*perform bdc_field using 'MARA-GEWEI'

  • 'KG'.

*

  • perform bdc_dynpro using 'SAPLMGMM' '4000'.

  • perform bdc_field using 'BDC_OKCODE'

  • '/00'.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

  • perform bdc_field using 'MAKT-MAKTX'

  • LW_SD-MAKTX.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARA-SPART'

LW_SD-SPART.

perform bdc_field using 'BDC_CURSOR'

'MBEW-VERPR'.

perform bdc_field using 'MBEW-BKLAS'

LW_SD-BKLAS.

perform bdc_field using 'MBEW-VPRSV'

LW_SD-VPRSV.

  • perform bdc_field using 'MBEW-PEINH'

  • LW_SD-PEINH.

perform bdc_field using 'MBEW-VERPR'

LW_SD-VERPR.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'BDC_CURSOR'

'MARC-PRCTR'.

perform bdc_field using 'MARA-MEINS'

LW_SD-MEINS.

perform bdc_field using 'MARC-PRCTR'

LW_SD-PRCTR.

perform bdc_field using 'MARC-LOSGR'

'1'.

perform bdc_dynpro using 'SAPLMGMM' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

LW_SD-MAKTX.

perform bdc_field using 'MBEW-BKLAS'

LW_SD-BKLAS.

perform bdc_field using 'MBEW-VPRSV'

LW_SD-VPRSV.

  • perform bdc_field using 'MBEW-PEINH'

  • LW_SD-PEINH.

perform bdc_field using 'MBEW-VERPR'

LW_SD-VERPR.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform bdc_transaction using 'MM02'.

ENDLOOP.

perform close_group.

*call transaction 'MM01' using lt_bdcdata

*mode 'A' update 'S' messages into lt_bdcmsgcoll.

*ENDLOOP.

  • PERFORM FORMATEMSG.

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0250 text

  • -->P_0251 text

----


*FORM bdc_dynpro USING PROGRAM DYNPRO.

*

  • CLEAR LW_BDCDATA.

*

  • LW_BDCDATA-PROGRAM = PROGRAM.

  • LW_BDCDATA-DYNPRO = DYNPRO.

  • LW_BDCDATA-DYNBEGIN = 'X'.

*

  • APPEND LW_BDCDATA TO LT_BDCDATA.

*

*ENDFORM. " bdc_dynpro

*&----


**& Form bdc_field

*&----


    • text

*----


    • -->P_1045 text

    • -->P_1046 text

*----


*FORM bdc_field USING FNAM FVAL.

*

  • IF FVAL <> SPACE.

*

  • CLEAR LW_BDCDATA.

*

  • LW_BDCDATA-FNAM = FNAM.

  • LW_BDCDATA-FVAL = FVAL.

*

  • APPEND LW_BDCDATA TO LT_BDCDATA.

*

  • ENDIF.

*

*

*ENDFORM. " bdc_field

*&----


**& Form FORMATEMSG

*&----


    • text

*----


    • --> p1 text

    • <-- p2 text

*----


*FORM FORMATEMSG .

*

  • DATA LT_MSG TYPE STRING.

*

  • WRITE:/3 'Material Number',

  • 20 'Mat Type',

  • 35 'Actual Message'.

*

  • LOOP AT LT_BDCMSGCOLL INTO LW_BDCMSGCOLL.

*

  • CALL FUNCTION 'FORMAT_MESSAGE'

  • EXPORTING

  • ID = SY-MSGID

  • LANG = SY-LANGU

  • NO = LW_BDCMSGCOLL-MSGNR

  • V1 = LW_BDCMSGCOLL-MSGTYP

  • IMPORTING

  • MSG = LT_MSG.

*

  • write:/3 lw_bdcmsgcoll-msgnr,

  • 20 lw_bdcmsgcoll-msgtyp,

  • 35 lt_msg.

*

  • endloop.

*

*ENDFORM. " FORMATEMSG

Former Member
0 Kudos

Hi Can you please send me sample program to upload ME38 T-code it is very urgrent.

Reward point will be given help appreciated.

Thanks!

Former Member
0 Kudos

Hi Can you please send me sample program to upload ME38 T-code it is very urgrent.

Reward point will be given help appreciated.

Thanks!

Former Member
0 Kudos

s

Edited by: ricx .s on Dec 11, 2008 6:46 AM