‎2007 Oct 12 6:00 AM
Hi,
I have done recording for transaction MM01 and then uploaded flat file through BDC.In my code below i successuly created a batch -session.When i select the session and process (execute ) it ,pop-up window comes create nw material.When i press enter for it ,my program doesn't work.Below is the code.Plz check the code and help me if there is any error in it and do tell me the procedure how to execute the whole program.
report ZHFBDC
no standard page heading line-size 255.
data : begin of t_mat,
matnr(20),
desc(50),
uom(50),
end of t_mat.
*data itab1 like itab occurs 100 with header line.
data : i_mat like t_mat occurs 100 with header line.
data wa_mat like t_mat occurs 100 with header line.
data p_file type string.
p_file = 'C:\Temp\abc1.xls'.
include bdcrecx1.
start-of-selection.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = p_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 =
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = i_mat
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 i_mat into wa_mat.
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'
wa_mat-matnr.
perform bdc_field using 'RMMG1-MBRSH'
'M'.
perform bdc_field using 'RMMG1-MTART'
'HAWA'.
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'.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'MAKT-MAKTX'
wa_mat-desc.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
wa_mat-uom.
perform bdc_field using 'MARA-MTPOS_MARA'
'NORM'.
perform bdc_transaction using 'MM01'.
endloop.
perform close_group.
‎2007 Oct 12 6:05 AM
Hi
See the sample BDC for MM01 and do accordingly
REPORT zmm_mat_master_non_stock
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_mat OCCURS 0,
mbrsh(001), " Industry Sector
mtart(004), " Material Type
Views
Organization Levels
werks(004), " Plant
Basic Data1 View
maktx(040), " Material Description
meins(003), " Unit of Measure
matkl(009), " Material Group
MTPOS_MARA(004), " Gen Item Category
Purchasing
ekgrp(003), " Purchasing Group
END OF i_mat.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_mat
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Upload the Data from Internal Table
LOOP AT i_mat.
Basic Screen
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MBRSH'
'C'."i_mat-mbrsh.
PERFORM bdc_field USING 'RMMG1-MTART'
'NLAG'."i_mat-mtart.
Views Selection
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(08)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
c_x."i_mat-kzsel_01.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'
c_x."i_mat-kzsel_02.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'
c_x."i_mat-kzsel_08.
Organization Levels
PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-WERKS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'RMMG1-WERKS'
'2000'."i_mat-werks.
Basic data1 View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
i_mat-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-MTPOS_MARA'.
PERFORM bdc_field USING 'MARA-MEINS'
'EA'."i_mat-meins.
PERFORM bdc_field USING 'MARA-MATKL'
i_mat-matkl.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
'NLAG'."i_mat-mtpos_mara.
Basic data2 View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MAKT-MAKTX'.
Purchasing View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'MARC-EKGRP'
i_mat-ekgrp.
Call The Transaction
PERFORM bdc_transaction USING 'MM01'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
Regards
Anji
‎2007 Oct 12 6:03 AM
Does not work is not helpful. You must get en error message while procressing the batch input.
Do you run the BDC in foreground or in background? In foreground, you do not have to press henter, but instead click in this little window where the next process code (=UPD, /00, =INS etc) is displayed.
‎2007 Oct 12 6:05 AM
Hi
See the sample BDC for MM01 and do accordingly
REPORT zmm_mat_master_non_stock
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_mat OCCURS 0,
mbrsh(001), " Industry Sector
mtart(004), " Material Type
Views
Organization Levels
werks(004), " Plant
Basic Data1 View
maktx(040), " Material Description
meins(003), " Unit of Measure
matkl(009), " Material Group
MTPOS_MARA(004), " Gen Item Category
Purchasing
ekgrp(003), " Purchasing Group
END OF i_mat.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_mat
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Upload the Data from Internal Table
LOOP AT i_mat.
Basic Screen
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MBRSH'
'C'."i_mat-mbrsh.
PERFORM bdc_field USING 'RMMG1-MTART'
'NLAG'."i_mat-mtart.
Views Selection
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(08)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
c_x."i_mat-kzsel_01.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'
c_x."i_mat-kzsel_02.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'
c_x."i_mat-kzsel_08.
Organization Levels
PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-WERKS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'RMMG1-WERKS'
'2000'."i_mat-werks.
Basic data1 View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
i_mat-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-MTPOS_MARA'.
PERFORM bdc_field USING 'MARA-MEINS'
'EA'."i_mat-meins.
PERFORM bdc_field USING 'MARA-MATKL'
i_mat-matkl.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
'NLAG'."i_mat-mtpos_mara.
Basic data2 View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MAKT-MAKTX'.
Purchasing View
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'MARC-EKGRP'
i_mat-ekgrp.
Call The Transaction
PERFORM bdc_transaction USING 'MM01'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
Regards
Anji
‎2007 Oct 12 6:08 AM
Hi
loop at i_mat into wa_mat.
perform bdc_dynpro using 'SAPLMGMM' <b>'0060'.</b>
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=AUSW'.
check that screen number with ur recording
‎2007 Oct 12 6:14 AM
Hi,
Please check whether the right type of data is present for thr right kind of field in the XLS file i.e
Revelent data is present in XLS for corresponding fields in the recording.
‎2011 Jun 02 4:52 PM