2009 Jul 03 1:13 PM
Hi Gurus, I got a requirement to uploading the data from Excel sheet with multiple worksheets, i followed the below given process and want to know how to move the data from i_data(contains row, col, and value) into the internal table, I have 4 sheets in my excel file, i am getting the data into i_data for every sheet, but the thing is for each and every sheet i will have roughly 50 to 60 fields, please suggest me in this regards. After moving the data into the internal tables, i have to build BAPI structure which i have to pass to the BAPI BAPI_SALESORDER_CREATEFROMDAT2 PLease suggest me of how to build the internal to pass the data. Code as follows : In the code i have taken only few fields(6) in the structure .
2009 Jul 03 2:08 PM
But what is the actual problem here? You already have uploaded the data into your internal table. In this table the data is sorted in rows. So first create a new internal table with all the fields (columns) from your i_data. Move the data from this i_data to the new internal table.
Now loop at this internal table and move the data into the structures / internal tables corresponding to the ones mentioned in the BAPI interface.
Again, I don't quite see what the problem seems to be.
1. Don't you know how to create an internal table based on the columns from i_data?
2. Don't you know how to define all these structures / itabs from BAPI interface?
3. Don't you know the mapping of the input onto the structures / itabs for BAPI interface?
4. Or....???
Code as follows : In the code i have taken only few fields(6) in the structure
I don't see any code. Did you forgot to post it, or are you referring to something else.
2009 Jul 04 1:48 AM
In the excel sheet i will have 80 fields in each and every worksheets, as you are telling to move the data with respect to row no and column, the case is i can move the data by checking the row no and column no., since the loop repeates for all the rows and columns, the performance wise that would be worst code,
I am asking the code without checking the row no. and column no.
Regards,
C.Bharath Kumar
2009 Jul 04 2:17 AM
1. This is the format you have to work with, no way of getting around that.
2. This is an internal table, processing won't take that long at all. Or are you uploading a very huge amount of data? Otherwise, just go ahead.
2009 Jul 06 5:32 AM
Hi,
As you are asking for the amount of data, i too don't of how many records that the user is going to maintain in the excel sheet, also i have 4 sheets in a single excel file,
if i move the data with respect to column and row no, for each and every i have to repeat the loop like for 60 fields, the loop should repeat for 60 fields and to all the sheets, this itself reduces the performance of the program.
I am in need of some better solution to give the quality based report in migrating the data.
given the sample code as follows :
loop at i_sheets into wa_sheets.
LOOP AT i_data INTO wa_data.
IF lv_row NE wa_data-row.
COLLECT wa_data1 INTO it_data.
MOVE wa_data-row TO lv_row.
CLEAR wa_data1.
ENDIF.
IF wa_sheets-sheet_name = 'Sheet1'.
IF wa_data-row GE 1 AND wa_data-column = 1.
wa_data1-name = wa_data-value.
ELSEIF wa_data-row GE 1 AND wa_data-column = 2.
wa_data1-name1 = wa_data-value.
ELSEIF wa_data-row GE 1 AND wa_data-column = 3.
wa_data1-name2 = wa_data-value.
ELSEIF wa_data-row GE 1 AND wa_data-column = 4.
wa_data1-type = wa_data-value.
ELSEIF wa_data-row GE 1 AND wa_data-column = 5.
wa_data1-name3 = wa_data-value.
ELSEIF wa_data-row GE 1 AND wa_data-column = 6.
wa_data1-name4 = wa_data-value.
endloop.
endloop
Tthis is written only for some 6 fields in the internal table, looking for some better solution for moving the data into an internal table other the above written code for all the fields.
Regards,
C.Bharath Kumar