2021 Mar 12 11:26 AM
HOW TO UPLOAD DATA DIRECTLY FROM EXCEL,PLEASE GIVE THE SOLUTIONS.
THIS THE PROGRAM:
PLEASE CORRECT THE MISTAKE AND GIVE IT
report ZMM01
no standard page heading line-size 255.
TYPES : BEGIN OF rec_type,
MATNR TYPE RMMG1-MATNR,
MBRSH TYPE RMMG1-MBRSH,
MTART TYPE RMMG1-MTART,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
END OF rec_type.
DATA : it_mat TYPE TABLE OF rec_type WITH HEADER LINE.
DATA IT_EXCEL TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
DATA IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.
PARAMETERS P_FILE TYPE IBIPPARMS-PATH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM BROWSE_FILE.
START-OF-SELECTION.
PERFORM UPLOAD_EXCEL_FILE.
PERFORM CONVERT_IT_EXCEL_TO_IT_MAT.
PERFORM VALIDATE_DATA.
*&---------------------------------------------------------------------*
*& Form BROWSE_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form BROWSE_FILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
endform. " BROWSE_FILE
*&---------------------------------------------------------------------*
*& Form UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form UPLOAD_EXCEL_FILE .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = P_FILE
i_begin_col = 2
i_begin_row = 2
i_end_col = 9
i_end_row = 30
TABLES
intern = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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. " UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
*& Form CONVERT_IT_EXCEL_TO_IT_MAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form CONVERT_IT_EXCEL_TO_IT_MAT .
LOOP AT IT_EXCEL.
CASE IT_EXCEL-COL.
WHEN 1.
IT_MAT-MATNR = IT_EXCEL-VALUE.
WHEN 2.
IT_MAT-MBRSH = IT_EXCEL-VALUE.
WHEN 3.
IT_MAT-MTART = IT_EXCEL-VALUE.
WHEN 4.
IT_MAT-MAKTX = IT_EXCEL-VALUE.
WHEN 5.
IT_MAT-MEINS = IT_EXCEL-VALUE.
APPEND IT_MAT.
CLEAR: IT_MAT,IT_EXCEL.
ENDCASE.
ENDLOOP.
endform. " CONVERT_IT_EXCEL_TO_IT_MAT
*&---------------------------------------------------------------------*
*& Form VALIDATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form VALIDATE_DATA .
LOOP AT IT_MAT.
*REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
IT_MAT-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
IT_MAT-MBRSH.
perform bdc_field using 'RMMG1-MTART'
IT_MAT-MTART.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
IT_MAT-MAKTX.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
IT_MAT-MEINS.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'MM01' USING IT_BDCDATA UPDATE 'A' MODE 'A'.
*CLEAR :it_bdcdata.
* CLEAR : it_mat.
ENDLOOP.
*IF SY-SUBRC = 0.
MESSAGE 'RECORDS ARE TRANSFERED SUCCESSFULLY' TYPE 'S'.
*ENDIF.
endform. " VALIDATE_DATA
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0207 text
* -->P_0208 text
*----------------------------------------------------------------------*
form BDC_DYNPRO using prgm SCRN.
IT_BDCDATA-PROGRAM = PRGM.
IT_BDCDATA-DYNPRO = SCRN.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0212 text
* -->P_0213 text
*----------------------------------------------------------------------*
form BDC_FIELD using FNAME FVALUE.
IT_BDCDATA-FNAM = FNAME.
IT_BDCDATA-FVAL = FVALUE.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " BDC_FIELD
HOW TO UPLOAD DATA DIRECTLY FROM EXCEL,PLEASE GIVE THE SOLUTIONS.
THIS THE PROGRAM:
PLEASE CORRECT THE MISTAKE AND GIVE IT
report ZMM01
no standard page heading line-size 255.
TYPES : BEGIN OF rec_type,
MATNR TYPE RMMG1-MATNR,
MBRSH TYPE RMMG1-MBRSH,
MTART TYPE RMMG1-MTART,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
END OF rec_type.
DATA : it_mat TYPE TABLE OF rec_type WITH HEADER LINE.
DATA IT_EXCEL TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
DATA IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.
PARAMETERS P_FILE TYPE IBIPPARMS-PATH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM BROWSE_FILE.
START-OF-SELECTION.
PERFORM UPLOAD_EXCEL_FILE.
PERFORM CONVERT_IT_EXCEL_TO_IT_MAT.
PERFORM VALIDATE_DATA.
*&---------------------------------------------------------------------*
*& Form BROWSE_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form BROWSE_FILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
endform. " BROWSE_FILE
*&---------------------------------------------------------------------*
*& Form UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form UPLOAD_EXCEL_FILE .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = P_FILE
i_begin_col = 2
i_begin_row = 2
i_end_col = 9
i_end_row = 30
TABLES
intern = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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. " UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
*& Form CONVERT_IT_EXCEL_TO_IT_MAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form CONVERT_IT_EXCEL_TO_IT_MAT .
LOOP AT IT_EXCEL.
CASE IT_EXCEL-COL.
WHEN 1.
IT_MAT-MATNR = IT_EXCEL-VALUE.
WHEN 2.
IT_MAT-MBRSH = IT_EXCEL-VALUE.
WHEN 3.
IT_MAT-MTART = IT_EXCEL-VALUE.
WHEN 4.
IT_MAT-MAKTX = IT_EXCEL-VALUE.
WHEN 5.
IT_MAT-MEINS = IT_EXCEL-VALUE.
APPEND IT_MAT.
CLEAR: IT_MAT,IT_EXCEL.
ENDCASE.
ENDLOOP.
endform. " CONVERT_IT_EXCEL_TO_IT_MAT
*&---------------------------------------------------------------------*
*& Form VALIDATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form VALIDATE_DATA .
LOOP AT IT_MAT.
*REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
IT_MAT-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
IT_MAT-MBRSH.
perform bdc_field using 'RMMG1-MTART'
IT_MAT-MTART.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
IT_MAT-MAKTX.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
IT_MAT-MEINS.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'MM01' USING IT_BDCDATA UPDATE 'A' MODE 'A'.
*CLEAR :it_bdcdata.
* CLEAR : it_mat.
ENDLOOP.
*IF SY-SUBRC = 0.
MESSAGE 'RECORDS ARE TRANSFERED SUCCESSFULLY' TYPE 'S'.
*ENDIF.
endform. " VALIDATE_DATA
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0207 text
* -->P_0208 text
*----------------------------------------------------------------------*
form BDC_DYNPRO using prgm SCRN.
IT_BDCDATA-PROGRAM = PRGM.
IT_BDCDATA-DYNPRO = SCRN.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0212 text
* -->P_0213 text
*----------------------------------------------------------------------*
form BDC_FIELD using FNAME FVALUE.
IT_BDCDATA-FNAM = FNAME.
IT_BDCDATA-FVAL = FVALUE.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " BDC_FIELD
2021 Mar 12 1:58 PM
"How to upload data directly from Excel": as you did! What is your issue?
2021 Mar 13 12:21 PM
Would be great if you would not post your question several times
- 1) bdc output - SAP Q&A
- 2) bdc output - SAP Q&A
- 3) BDC REQUIREMENT UPLOADING A EXCEL WITH 20 RECORDS - SAP Q&A
and if you would find the time to ask a proper question with a description of what you trying to reach, what your issue is.
At the moment you have distributed your question to 3 posts with poor information (one nothing saying sentence in the first question and two times the same coding without further description).
What do you think, will someone invest the time to have a look on your distributed stuff? I think no.
2021 Mar 15 12:20 PM
Rewrite your code
(*) at worst use the MESSAGES INTO itab option of CALL TRANSACTION, and anamyze itab.
2021 Mar 15 3:50 PM
Hi alagu123
I did a BDC recording in my system and I could achieve it, it creates multiple material based on my excel data. PFA text file zmm01.txt
Refer to attached file.1901816-zmm01.txt
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |