02-04-2008 7:49 PM
can any one send me BDC program to upload data from flat file for MM01 transaction with any view.
02-04-2008 8:02 PM
02-05-2008 5:06 AM
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
02-05-2008 6:55 AM
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
02-05-2008 10:01 AM
hi,
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/abap/bdc%2btutorial
Hope this link is helpful, Do reward.
02-05-2008 10:16 AM
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)
02-06-2008 4:32 PM
&----
*& 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
02-07-2008 8:35 AM
I would recommend the usage of BAPI_MATERIAL_SAVEDATA over RMDATIND.
05-05-2008 2:14 PM
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
06-01-2008 1:59 PM
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!
06-01-2008 2:24 PM
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!
12-11-2008 5:45 AM