2007 May 17 7:32 AM
Hi,
I have one requirement.
I have to write one bdc program for that i have to upload data from excel file.
i am getting error in the function module 'ALSM_EXCEL_TO_INTERNAL_TABLE'
i am sending my code...
please give me some guidelines...
data: begin of record occurs 3,
LAND1_01_001(003),
ZONE1_01_002(010),
VTEXT_01_003(020),
end of record.
DATA BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
data: begin of record occurs 3,
LAND1_01_001(003),
ZONE1_01_002(010),
VTEXT_01_003(020),
TRKORR_004(020),
end of record.
DATA BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
PARAMETERS : P_FNAME LIKE RLGRAP-FILENAME.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 3
I_END_ROW = 3
TABLES
INTERN = record
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.
thans in advance.............
Regards.
Kumar.
2007 May 17 8:59 AM
Hi,
Check the following link:
[Removed by the moderator.]
Hope this helps.
Reward if helpful.
Regards,
Sipra
Hi,
Check the following link:
[Removed by the moderator.]
Hope this helps.
Reward if helpful.
Regards,
Sipra
2007 May 17 7:42 AM
2007 May 17 7:45 AM
2007 May 17 7:55 AM
2007 May 17 8:59 AM
Hi,
Check the following link:
[Removed by the moderator.]
Hope this helps.
Reward if helpful.
Regards,
Sipra
2007 May 17 10:14 AM
Hi Anil,
Try wi th this code:
DATA: L_FILENAME TYPE STRING.
DATA: BEGIN OF I_EXEL OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE.
DATA: END OF I_EXEL.
FIELD-SYMBOLS: <FS>.
CONSTANTS: C_BEGNROW TYPE I VALUE '1',
C_LASTROW TYPE I VALUE '100',
C_BEGNCOL TYPE I VALUE '1',
C_LASTCOL TYPE I VALUE '6596'.
MOVE P_FILE TO L_FILENAME.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = C_BEGNCOL
I_BEGIN_ROW = C_BEGNROW
I_END_COL = C_LASTCOL
I_END_ROW = C_LASTROW
TABLES
INTERN = I_EXEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE E002(ZWH) WITH 'ERROR WHILE UPLAODING'.
ELSE.
LOOP AT I_EXEL.
ASSIGN COMPONENT I_EXEL-COL OF STRUCTURE I_INPUT TO <FS>.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
<FS> = I_EXEL-VALUE.
AT END OF ROW.
APPEND I_INPUT.
CLEAR I_INPUT.
ENDAT.
ENDLOOP.
ENDIF.
Here I_INPUT is have the input file structure,
Hope this helps you. Reply for queries, shall post the updates.
Regards.
Kumar
2007 May 17 10:33 AM
Hi,
See the Changed Code below:
data: begin of record occurs 3,
LAND1_01_001(003),
ZONE1_01_002(010),
VTEXT_01_003(020),
TRKORR_004(020),
end of record.
DATA BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
*PARAMETERS :
<b>DATA:
P_FNAME LIKE RLGRAP-FILENAME.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FNAME</b>
.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 3
I_END_ROW = 3
TABLES
INTERN = record
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.
Make sure that no of fields and their data types are also matching.
Hope this helps you.
Regards,
Rama chary.Pammi
2007 May 17 10:45 AM
You can use the Function module ALSM_EXCEL_TO_INTERNAL_TABLE to read the Excel file into the internal table of type alsmex_tabline. From this internal table you can fill the target internal table.
TYPES:
BEGIN OF ty_upload,
field1 TYPE c length 12,
field2 TYPE c length 12,
field3 TYPE c length 12,
END OF ty_upload.
DATA it_upload TYPE STANDARD TABLE OF ty_upload WITH DEFAULT KEY.
DATA wa_upload TYPE ty_upload.
DATA itab TYPE STANDARD TABLE OF alsmex_tabline WITH DEFAULT KEY.
FIELD-SYMBOLS: <wa> type alsmex_tabline.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = filename
i_begin_col = 1
i_begin_row = 1
i_end_col = 3
i_end_row = 65535
TABLES
intern = itab.
LOOP AT itab ASSIGNING <wa>.
CASE <wa>-col.
WHEN '0001'.
wa_upload-field1 = <wa>-value.
WHEN '0002'.
wa_upload-field2 = <wa>-value.
WHEN '0003'.
wa_upload-field3 = <wa>-value.
ENDCASE.
APPEND wa_upload TO it_upload.
CLEAR wa_upload.
ENDLOOP.
Y.Ravi kumar
2007 May 17 10:52 AM
hi,
chk the sample code...
REPORT ZNTERACTIVEREPORTS NO STANDARD PAGE HEADING
LINE-COUNT 65(2).
PARAMETERS:
P_INFL like RLGRAP-FILENAME.
DATA:
BEGIN OF T_DATA1 OCCURS 0,
RESOURCE(25) TYPE C,
DATE(10) TYPE C,
DURATION TYPE P DECIMALS 2,
ACTIVITY(25) TYPE C,
B_NBILL(1) TYPE C,
END OF T_DATA1,
T_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
BEGIN OF T_FINAL OCCURS 0,
RESOURCE(25) TYPE C,
DATE(10) TYPE C,
DURATION(15) TYPE C,
ACTIVITY(25) TYPE C,
B_NBILL(10) TYPE C,
END OF T_FINAL.
DATA : HEADER TYPE XSTRING.
Work Variables Declaration.
CONSTANTS:
W_Y TYPE C VALUE 'Y',
W_N TYPE C VALUE 'N'.
Work area.
DATA:
WA_DATA LIKE T_FINAL.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFL.
PERFORM GET_FILENAME CHANGING P_INFL.
----
START-OF-SELECTION.
----
PERFORM UPLOAD_DATA_FROMEXCEL.
PERFORM PROCESS_DATA.
&----
*& Form download_data
&----
text
----
FORM UPLOAD_DATA_FROMEXCEL.
Downloading the data from presentation server
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_infl
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = T_DATA
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_data_fromexcel
&----
*& Form process_data
&----
text
----
FORM PROCESS_DATA .
T_FINAL-RESOURCE = 'Resource'.
T_FINAL-DATE = 'Date'.
T_FINAL-DURATION = 'Duration'.
T_FINAL-ACTIVITY = 'Activity'.
T_FINAL-B_NBILL = 'Billable'.
APPEND T_FINAL.
SORT T_DATA BY ROW COL.
LOOP AT T_DATA.
CASE T_DATA-COL.
WHEN 3.
T_DATA1-RESOURCE = T_DATA-VALUE.
WHEN 4.
T_DATA1-DATE = T_DATA-VALUE.
WHEN 5.
T_DATA1-DURATION = T_DATA-VALUE.
WHEN 6.
t_data1-activity = t_data-value.
WHEN 7.
T_DATA1-B_NBILL = T_DATA-VALUE.
ENDCASE.
AT END OF ROW.
COLLECT T_DATA1.
ENDAT.
ENDLOOP.
LOOP AT T_DATA1.
T_FINAL-RESOURCE = T_DATA1-RESOURCE.
T_FINAL-DATE = T_DATA1-DATE.
T_FINAL-DURATION = T_DATA1-DURATION.
T_FINAL-ACTIVITY = T_DATA1-ACTIVITY.
T_FINAL-B_NBILL = T_DATA1-B_NBILL.
APPEND T_FINAL.
ENDLOOP.
ENDFORM. " process_data
hope this helps,
do reward if it helps,
priya.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |