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: 

Upload data from XL to SAP

Former Member
0 Kudos

Hi Experts

Currently I am using netweaver 4 version, I need to upload the 2 excel files data into custom tables. But i tried inside i did not find any functions like ALSM_EXCEL_TO_INTERNAL_TABLE and 'TEXT_CONVERT_XLS_TO_SAP all these functions are not available in my list. I tried to use GUI_UOLOAD but its going to shart dump.

So can any body please help me is there any other way to upload excel file ?

5 REPLIES 5

Former Member
0 Kudos

HI,

If the file is in local drive in ur system, GUI_UPLOAD work. If the file is in application server it doesnu2019t work.

Regards

Raj

0 Kudos

Hi Raj

My file is in local pc only.

uwe_schieferstein
Active Contributor
0 Kudos

Hello Indra

I would recommend to export the Excel worksheets into .csv files and use fm TEXT_CONVERT_CSV_TO_SAP to upload the data directly into an itab.

Regards

Uwe

Former Member
0 Kudos

Hi,

Please check the sample code mentioned in the link..

https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-UploaddatafromExceltoSapusing+OO

Thanks

Naren

Former Member
0 Kudos

Hi,

Recently i have uploaded records for my customized form just change the field names according to your field names.

And remember one thing your excel sheet should be formated like select all the records right click and select TEXT ad click OK and then selct each column and restrict the column wide according to the field length thts it your records will be uploading using my code i have succeed you too try.

This is my code.

----


STRUCUTRE DECLERATION -

TYPES : BEGIN OF TY_ZORMM,

BOKNO TYPE ZORMM-BOKNO,

PASNO TYPE ZORMM-PASNO,

TPRNO TYPE ZORMM-TPRNO,

FMDAT TYPE ZORMM-FMDAT,

VLDFR TYPE ZORMM-VLDFR,

END OF TY_ZORMM.

DATA: IT_TABDATA TYPE STANDARD TABLE OF TY_ZORMM INITIAL SIZE 0,

WA_ITAB TYPE TY_ZORMM,

IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0,

IT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL INITIAL SIZE 0.

DATA: G_MESSAGE(70) TYPE C,

BDCDATA TYPE BDCDATA,

W_BDCMSG TYPE BDCMSGCOLL.

DATA: BEGIN OF IT_FILE_UPLOAD OCCURS 0.

INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data

DATA: END OF IT_FILE_UPLOAD.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME,

BEGIN OF BLOCK B2 WITH FRAME.

PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK B2,

END OF BLOCK B1.

*E V E N T : AT S E L E C T I O N - S C R E E N *

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

IMPORTING

file_name = P_FNAME

.

----


*S T A R T - O F - S E L E C T I O N

----


START-OF-SELECTION.

----


  • selection of the latest excel number which has to be uploaded

----


*PERFORM EXCEL_SLNO.

----


**Upload Excel file into Internal Table.

----


PERFORM UPLOAD_EXCEL_FILE.

----


*Organize the uploaded data into another Internal Table.

----


PERFORM ORGANIZE_UPLOADED_DATA.

----


  • POPULATE THE RECORDS IN WRITE STATEMENT

----


PERFORM WRITE_RECORDS.

*E N D - O F - S E L E C T I O N

END-OF-SELECTION.

*&----


*& FORM EXCEL_SLNO.

*&----


*FORM EXCEL_SLNO.

*ENDFORM.

*&----


*& Form UPLOAD_EXCEL_FILE

*&----


FORM UPLOAD_EXCEL_FILE .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = P_FNAME

i_begin_col = 1

i_begin_row = 1

i_end_col = 5

i_end_row = 60000

TABLES

intern = IT_FILE_UPLOAD

.

IF sy-subrc <> 0.

ENDIF.

ENDFORM. " UPLOAD_EXCEL_FILE

*&----


*& Form ORGANIZE_UPLOADED_DATA

*&----


FORM ORGANIZE_UPLOADED_DATA .

SORT IT_FILE_UPLOAD BY ROW COL.

LOOP AT IT_FILE_UPLOAD.

CASE IT_FILE_UPLOAD-COL.

WHEN 1.

WA_ITAB-BOKNO = IT_FILE_UPLOAD-VALUE.

WHEN 2.

WA_ITAB-PASNO = IT_FILE_UPLOAD-VALUE.

WHEN 3.

WA_ITAB-TPRNO = IT_FILE_UPLOAD-VALUE.

WHEN 4.

WA_ITAB-FMDAT = IT_FILE_UPLOAD-VALUE.

WHEN 5.

WA_ITAB-VLDFR = IT_FILE_UPLOAD-VALUE.

ENDCASE.

AT END OF ROW.

APPEND WA_ITAB TO IT_TABDATA.

CLEAR: WA_ITAB.

ENDAT.

ENDLOOP.

ENDFORM.

*POPLUALTE RECORDS

FORM WRITE_RECORDS.

LOOP AT IT_TABDATA INTO WA_ITAB.

perform bdc_dynpro using 'ZFORMM' '0196'.

perform bdc_field using 'BDC_OKCODE'

'=SAVE'.

*perform bdc_field using 'BDC_CURSOR'

  • 'ZFORMM-DDTIM'.

perform bdc_field using 'ZFORMM-BOKNO'

WA_ITAB-BOKNO. " '1'.

perform bdc_field using 'ZFORMM-PASNO'

WA_ITAB-PASNO. "'1234'.

perform bdc_field using 'ZFORMM-TPRNO'

WA_ITAB-TPRNO. " '1234'.

perform bdc_field using 'ZFORMM-FMDAT'

WA_ITAB-FMDAT. "'15.09.2007'.

perform bdc_field using 'ZFORMM-VLDFR'

WA_ITAB-VLDFR. " '15.09.2007'.

CALL TRANSACTION 'ZORMM' USING IT_BDCDATA MODE 'A' UPDATE 'S'

MESSAGES INTO IT_BDCMSGCOLL.

REFRESH IT_BDCDATA.

*CLEAR W_BDCMSG.

*ENDLOOP.

READ TABLE IT_BDCMSGCOLL INTO W_BDCMSG INDEX 1.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = SY-MSGID

LANG = '-D'(001)

NO = SY-MSGNO

V1 = SY-MSGV1

V2 = SY-MSGV2

V3 = SY-MSGV3

V4 = SY-MSGV4

IMPORTING

MSG = G_MESSAGE

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2

.

IF SY-SUBRC = 0.

ENDIF.

ENDLOOP.

ENDFORM.

*----


  • Start new screen

*----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA TO IT_BDCDATA.

CLEAR BDCDATA.

ENDFORM.

*----


  • Insert field

*----


FORM BDC_FIELD USING FNAM FVAL.

  • IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA TO IT_BDCDATA.

CLEAR BDCDATA.

  • ENDIF.

ENDFORM.

All the best and hope this helps you.