2008 Mar 28 4:52 AM
Hi ABAP Gurus,
Can any one send me sample code for bdc program to upload data using excel. i want the code in general abap not in oops .
Regards.
Hi ABAP Gurus,
Can any one send me sample code for bdc program to upload data using excel. i want the code in general abap not in oops .
Regards.
2008 Mar 28 4:54 AM
Refer the below code:
REPORT ZUPLOAD.
TYPE-POOLS: truxs.
PARAMETERS: p_file TYPE rlgrap-filename.
TYPES: BEGIN OF t_datatab,
col1(30) TYPE c,
col2(30) TYPE c,
col3(4069) TYPE c,
END OF t_datatab.
DATA: it_datatab type standard table of t_datatab,
it_words type table of tdline with header line,
wa_datatab type t_datatab.
DATA: it_raw TYPE truxs_t_text_data.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = it_datatab[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc ne 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
***********************************************************************
*END-OF-SELECTION.
LOOP AT it_datatab INTO wa_datatab.
WRITE:/ wa_datatab-col1,
wa_datatab-col2,
wa_datatab-col3.
ENDLOOP.
Or
you can use the function module ALSM_EXCEL_TO_INTERNAL_TABLE .
Check this thread for sample code.
&----
*& Report ZMM_BDC_MM02
*&
&----
*&
*&
&----
REPORT ZMM_BDC_MM02.
PARAMETERS: PR_FILE TYPE RLGRAP-FILENAME.
CONSTANTS: C_BEG_COL TYPE I VALUE 1,
C_BEG_ROW TYPE I VALUE 2,
C_END_COL TYPE I VALUE 10,
C_END_ROW TYPE I VALUE 10.
DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF IT_DATA OCCURS 0,
MATNR TYPE RMMG1-MATNR ,
MATKL TYPE MARA-MATKL ,
EKGRP TYPE MARC-EKGRP ,
DISPO TYPE MARC-DISPO ,
STRGR TYPE MARC-STRGR ,
DZEIT TYPE MARC-DZEIT ,
DZEIT TYPE D ,
PLIFZ TYPE D ,
PLIFZ TYPE MARC-PLIFZ ,
WERKS TYPE RMMG1-WERKS ,
END OF IT_DATA .
DATA: bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE .
DATA: it_messtab TYPE TABLE OF bdcmsgcoll INITIAL SIZE 0 ,
wa_messtab TYPE bdcmsgcoll .
DATA: w_fnam(30) TYPE c .
*CONSTANTS: C_WAIT TYPE BAPITA-WAIT VALUE '2'.
*DATA: IT_BAPI_HEAD LIKE BAPIMATHEAD ,"OCCURS 0 WITH HEADER LINE ,
IT_BAPI_MARA LIKE BAPI_MARA ,
IT_BAPI_MARAX LIKE BAPI_MARAX ,
IT_BAPI_MARC LIKE BAPI_MARC," OCCURS 0 WITH HEADER LINE ,
IT_BAPI_MARCX LIKE BAPI_MARCX," OCCURS 0 WITH HEADER LINE ,
IT_BAPI_MBEW LIKE BAPI_MBEW ,
IT_BAPI_MBEWX LIKE BAPI_MBEWX ,
IT_BAPI_RETURN LIKE BAPIRET2 oCCURS 0 WITH HEADER LINE .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PR_FILE.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
STATIC = ' '
MASK = ' '
CHANGING
file_name = pr_file
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2
.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
START-OF-SELECTION.
Read Excel Sheet.
PERFORM READ_FILE." CHANGING IT_TABLE.
Process Data.
PERFORM PROCESS_DATA.
PERFORM BAPI.
Insert Data to MM02.
PERFORM INSERT_DATA.
&----
*& Form READ_FILE
&----
text
-
<--P_IT_TABLE text
-
FORM READ_FILE." changing p_it_table LIKE IT_TABLE[].
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = PR_FILE
i_begin_col = C_BEG_COL
i_begin_row = C_BEG_ROW
i_end_col = C_END_COL
i_end_row = C_END_ROW
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. " READ_FILE
&----
*& Form PROCESS
&----
text
-
--> p1 text
<-- p2 text
-
FORM PROCESS_DATA .
LOOP AT IT_EXCEL.
CASE IT_EXCEL-COL.
WHEN '001'.
IT_DATA-MATNR = IT_EXCEL-VALUE.
WHEN '002'.
IT_DATA-MATKL = IT_EXCEL-VALUE.
WHEN '002'.
IT_DATA-EKGRP = IT_EXCEL-VALUE.
WHEN '003'.
IT_DATA-DISPO = IT_EXCEL-VALUE.
WHEN '004'.
IT_DATA-STRGR = IT_EXCEL-VALUE.
WHEN '005'.
IT_DATA-DZEIT = IT_EXCEL-VALUE.
WHEN '006'.
IT_DATA-PLIFZ = IT_EXCEL-VALUE.
WHEN '007'.
IT_DATA-WERKS = IT_EXCEL-VALUE.
ENDCASE.
AT END OF ROW.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDAT.
ENDLOOP.
ENDFORM. " PROCESS_DATA
&----
*& Form BAPI
&----
text
-
--> p1 text
<-- p2 text
-
FORM BAPI .
**LOOP AT IT_DATA.
*IT_BAPI_HEAD-MATERIAL = 'CD243622'.
*IT_BAPI_HEAD-PURCHASE_VIEW = 'X'.
*IT_BAPI_HEAD-MRP_VIEW = 'X'.
**APPEND IT_BAPI_HEAD.
*
**IT_BAPI_MARC-PLANT = IT_DATA-WERKS.
**IT_BAPI_MARC-PUR_GROUP = IT_DATA-EKGRP.
**IT_BAPI_MARC-MRP_CTRLER = IT_DATA-DISPO.
**IT_BAPI_MARC-PLAN_STRGP = IT_DATA-STRGR.
**IT_BAPI_MARC-INHSEPRODT = IT_DATA-DZEIT.
**IT_BAPI_MARC-PLND_DELRY = IT_DATA-PLIFZ.
*
*
*IT_BAPI_MARC-PLANT = '1000'.
*IT_BAPI_MARC-PUR_GROUP = 'BC2'.
*IT_BAPI_MARC-MRP_CTRLER = 'MFS'.
*IT_BAPI_MARC-PLAN_STRGP = '31'.
*IT_BAPI_MARC-INHSEPRODT = '2'.
*IT_BAPI_MARC-PLND_DELRY = '1'.
*
**APPEND IT_BAPI_MARC.
*
*IT_BAPI_MARCX-PLANT = 'X'.
*IT_BAPI_MARCX-PUR_GROUP = 'X'.
*IT_BAPI_MARCX-MRP_CTRLER = 'X'.
*IT_BAPI_MARCX-PLAN_STRGP = 'X'.
*IT_BAPI_MARCX-INHSEPRODT = 'X'.
*IT_BAPI_MARCX-PLND_DELRY = 'X'.
**APPEND IT_BAPI_MARCX.
*ENDLOOP.
ENDFORM. " BAPI
&----
*& Form INSERT_DATA
&----
text
-
FORM INSERT_DATA .
DATA: LW_DZEIT TYPE D,
LW_PLIFZ TYPE D.
LOOP AT IT_DATA.
REFRESH BDCDATA.
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-MATNR'
IT_DATA-MATNR.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
*perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(08)'.
perform bdc_field using 'BDC_OKCODE'
'=DEF_SAVE'.
*perform bdc_field using 'BDC_OKCODE'
'=SELA'.
perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(06)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(07)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(08)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
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'
IT_DATA-WERKS.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'MAKT-MAKTX'
'Hydraulic sleeve hose set'.
*perform bdc_field using 'BDC_CURSOR'
'MARC-EKGRP'.
*perform bdc_field using 'MARA-MEINS'
'EA'.
perform bdc_field using 'MARC-EKGRP'
'BD1'.
*perform bdc_field using 'MARA-MATKL'
'ASSET'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'MAKT-MAKTX'
'Hydraulic sleeve hose set'.
*perform bdc_field using 'MARA-MEINS'
'EA'.
perform bdc_field using 'MARC-EKGRP'
IT_DATA-EKGRP.
*perform bdc_field using 'BDC_CURSOR'
'MARC-DISPO'.
*perform bdc_field using 'MARC-DISMM'
'PD'.
perform bdc_field using 'MARC-DISPO'
IT_DATA-DISPO.
*perform bdc_field using 'MARC-DISLS'
'EX'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
*perform bdc_field using 'MAKT-MAKTX'
'Hydraulic sleeve hose set'.
*perform bdc_field using 'MARC-BESKZ'
'X'.
LW_DZEIT = IT_DATA-DZEIT.
CONDENSE LW_DZEIT .
perform bdc_field using 'MARC-DZEIT'
LW_DZEIT.
LW_PLIFZ = IT_DATA-PLIFZ.
CONDENSE LW_PLIFZ.
perform bdc_field using 'MARC-PLIFZ'
LW_PLIFZ.
*perform bdc_field using 'MARC-FHORI'
'000'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
*perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
*perform bdc_field using 'MAKT-MAKTX'
'Hydraulic sleeve hose set'.
*perform bdc_field using 'MARC-PERKZ'
'M'.
perform bdc_field using 'MARC-STRGR'
IT_DATA-STRGR.
*perform bdc_field using 'MARC-MTVFP'
'01'.
perform bdc_transaction using 'MM02'.
CLEAR: IT_DATA,LW_DZEIT,LW_PLIFZ.
ENDLOOP.
LOOP AT IT_DATA.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = IT_BAPI_HEAD
CLIENTDATA =
CLIENTDATAX =
PLANTDATA = IT_BAPI_MARC
PLANTDATAX = IT_BAPI_MARCX
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
IMPORTING
RETURN = IT_BAPI_RETURN.
TABLES
MATERIALDESCRIPTION =
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =.
*
ENDLOOP.
*APPEND IT_BAPI_RETURN.
*READ TABLE IT_BAPI_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC = '0'.
WRITE: 'Error'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = C_WAIT
IMPORTING
RETURN = IT_BAPI_RETURN.
.
*
ENDIF.
ENDFORM. " INSERT_DATA
&----
*& Form bdc_dynpro
&----
text
-
-->P_0187 text
-->P_0188 text
-
form bdc_dynpro using PROGRAM
DYNPRO.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
endform. " bdc_dynpro
&----
*& Form bdc_field
&----
text
-
-->P_0214 text
-->P_0215 text
-
form bdc_field using FNAM
FVAL.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
endform. " bdc_field
&----
*& Form bdc_transaction
&----
text
-
-->P_0623 text
-
form bdc_transaction using value(p_0623).
DATA: cmode LIKE ctu_params-dismode VALUE 'A'.
CALL TRANSACTION 'MM02' USING bdcdata
MODE cmode
UPDATE sy-datum
MESSAGES INTO it_messtab.
endform. " bdc_transaction
Reward points..
2008 Mar 28 5:29 AM
*&---------------------------------------------------------------------*
*& Report Z_CALL_TRANSACTION *
*& *
*&---------------------------------------------------------------------*
REPORT z_call_transaction NO STANDARD PAGE HEADING.
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS : pa_fname TYPE localfile.
SELECTION-SCREEN END OF BLOCK bk1.
*&---------------------------------------------------------------------*
*& TYPES
*&---------------------------------------------------------------------*
* Type declaration for Customer data
TYPES: BEGIN OF tw_customer,
kunnr TYPE kunnr,
ktokd TYPE ktokd,
name1 TYPE name1_gp,
sortl TYPE sortl,
ort01 TYPE ort01_gp,
land1 TYPE land1_gp,
spras TYPE spras,
pstlz TYPE pstlz,
lzone TYPE lzone,
END OF tw_customer,
tt_customer TYPE STANDARD TABLE OF tw_customer.
TYPES: BEGIN OF tw_errorlog,
kunnr TYPE kunnr,
name1 TYPE name1_gp,
message TYPE string,
END OF tw_errorlog,
tt_errorlog TYPE STANDARD TABLE OF tw_errorlog.
*&---------------------------------------------------------------------*
*& DATA
*&---------------------------------------------------------------------*
DATA: lf_fname TYPE string,
* Internal Table Declaration for Customer data
lw_customer TYPE tw_customer,
lt_customer TYPE tt_customer,
* Internal Table Declaration for BDCDATA
lw_bdcdata TYPE bdcdata,
lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
* Internal Table Declaration for BDCMSGCOLL
lw_bdcmsgcoll TYPE bdcmsgcoll,
lt_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll,
* Internal Table Declaration for Error Log
lw_errorlog TYPE tw_errorlog,
lt_errorlog TYPE tt_errorlog.
*&---------------------------------------------------------------------*
*& INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
* Initializing the File Name
pa_fname = 'C:\temp\'.
*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_fname.
* F4 functionality for File Name
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = pa_fname.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
lf_fname = pa_fname.
* Upload data from flat file and store it in an Internal table
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lf_fname
filetype = 'ASC'
has_field_separator = 'X'
read_by_line = 'X'
TABLES
data_tab = lt_customer.
* Process Customer Data
LOOP AT lt_customer INTO lw_customer.
CLEAR lw_bdcdata.
REFRESH lt_bdcdata[].
PERFORM bdc_dynpro USING 'SAPMF02D' '0107'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02D-KTOKD'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02D-KUNNR'
lw_customer-kunnr. "Customer No.
PERFORM bdc_field USING 'RF02D-KTOKD'
lw_customer-ktokd. "Acc.Group.
PERFORM bdc_dynpro USING 'SAPMF02D' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'KNA1-NAME1'
lw_customer-name1. "Name.
PERFORM bdc_field USING 'KNA1-SORTL'
lw_customer-sortl. "Search Term.
PERFORM bdc_field USING 'KNA1-ORT01'
lw_customer-ort01. "City.
PERFORM bdc_field USING 'KNA1-LAND1'
lw_customer-land1. "Country.
PERFORM bdc_field USING 'KNA1-SPRAS'
lw_customer-spras. "Language.
PERFORM bdc_field USING 'KNA1-PSTLZ'
lw_customer-pstlz. "Postol Code.
PERFORM bdc_dynpro USING 'SAPMF02D' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNA1-LZONE'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'KNA1-LZONE'
lw_customer-lzone. "Tran.Zone.
* Call Transaction
CALL TRANSACTION 'VD01' USING lt_bdcdata
MODE 'A' UPDATE 'S' MESSAGES INTO lt_bdcmsgcoll.
ENDLOOP.
PERFORM fr_format_message_text.
*&--------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&--------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR lw_bdcdata.
lw_bdcdata-program = program.
lw_bdcdata-dynpro = dynpro.
lw_bdcdata-dynbegin = 'X'.
APPEND lw_bdcdata TO lt_bdcdata.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR lw_bdcdata.
lw_bdcdata-fnam = fnam.
lw_bdcdata-fval = fval.
APPEND lw_bdcdata TO lt_bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
*&---------------------------------------------------------------------*
*& Form fr_format_message_text
*&---------------------------------------------------------------------*
FORM fr_format_message_text .
DATA: lf_msg TYPE string.
WRITE:/10 'Message Id',
35 'Megno',
45 'Msg.Type',
55 'Message Info'.
LOOP AT lt_bdcmsgcoll INTO lw_bdcmsgcoll.
* IF lw_bdcmsgcoll-msgtyp = 'E' OR
* lw_bdcmsgcoll-msgtyp = 'A'.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = lw_bdcmsgcoll-msgid
lang = sy-langu
no = lw_bdcmsgcoll-msgnr
v1 = lw_bdcmsgcoll-msgv1
v2 = lw_bdcmsgcoll-msgv2
v3 = lw_bdcmsgcoll-msgv3
v4 = lw_bdcmsgcoll-msgv4
IMPORTING
msg = lf_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
WRITE:/10 lw_bdcmsgcoll-msgid,
35 lw_bdcmsgcoll-msgnr,
45 lw_bdcmsgcoll-msgtyp,
55 lf_msg.
ENDIF.
* ENDIF.
ENDLOOP.
ENDFORM. " fr_format_message_text
2008 Mar 28 6:56 AM
Hi,
Check this sample program.
1. Create sample excell file with this data.
pernr bnksa zlsch bkplz bkort bankn
23001 0 T 640204 singapore 7171081205307389
23054 0 T 550198 Singapore 323434
23080 0 T 470132 Sims Avenue 5352348
23080 0 T 470132 Sims Avenue 5352348
23090 0 T 520942 Singapore 71710812053073892. run the below program
REPORT zvenkat-upload-xl NO STANDARD PAGE HEADING.
"----------------------------------------------------------------------
"Declarations.
"----------------------------------------------------------------------
"types
TYPES:
BEGIN OF t_bank_det,
pernr(8) TYPE c,
bnksa(4) TYPE c,
zlsch(1) TYPE c,
bkplz(10) TYPE c,
bkort(25) TYPE c,
bankn(18) TYPE c,
END OF t_bank_det.
"work areas
DATA:
w_bank_det TYPE t_bank_det.
"internal tables
DATA:
i_bank_det TYPE TABLE OF t_bank_det.
"---------------------------------------------------------------------
" selection-screen
"----------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
PARAMETERS p_file TYPE localfile.
SELECTION-SCREEN END OF BLOCK b1.
*---------------------------------------------------------------------
"At selection-screen on value-request for p_file.
*---------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_help.
*---------------------------------------------------------------------
"Start-of-selection.
*---------------------------------------------------------------------
START-OF-SELECTION.
PERFORM upload_data.
*---------------------------------------------------------------------
"End-of-selection.
*---------------------------------------------------------------------
END-OF-SELECTION.
PERFORM display_data.
*&---------------------------------------------------------------------*
"Form f4_help
*&---------------------------------------------------------------------*
FORM f4_help .
DATA:
l_file_name LIKE ibipparms-path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = l_file_name.
p_file = l_file_name.
ENDFORM. " f4_help
*---------------------------------------------------------------------*
"Form upload_data
*---------------------------------------------------------------------*
FORM upload_data .
TYPE-POOLS:truxs.
DATA:li_tab_raw_data TYPE truxs_t_text_data.
DATA:l_filename LIKE rlgrap-filename.
l_filename = p_file.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_tab_raw_data = li_tab_raw_data
i_filename = l_filename
TABLES
i_tab_converted_data = i_bank_det
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
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
*---------------------------------------------------------------------*
" Form display_data
*---------------------------------------------------------------------*
FORM display_data .
DATA: char100 TYPE char100.
LOOP AT i_bank_det INTO w_bank_det .
IF sy-tabix = 1.
WRITE w_bank_det.
WRITE / '------------------------------------------------------------'.
ELSE.
WRITE / w_bank_det.
ENDIF.
ENDLOOP.
ENDFORM. " display_dataRegards,
Venkat.O
2008 Mar 28 7:07 AM
Hi,
first you have to upload the data from flat file to Internal table using a Function module.
then you can pass the data as a transaction to SAP
in session or call transaction method...
the sample code:
&----
*& Report ZUK_WIP11_EXCEL_FILE
*&
&----
*&
*&
&----
REPORT ZUK_WIP11_EXCEL_FILE NO STANDARD PAGE HEADING MESSAGE-ID ZMSG44 LINE-SIZE 150 LINE-COUNT 65(3).
TYPES : BEGIN OF S_EMP,
F1(20),
F2(10),
F3 TYPE I,
F4 TYPE I,
F5 TYPE I,
F6 TYPE I,
F7 TYPE I,
F8 TYPE I,
F9 TYPE I,
END OF S_EMP.
Internal table to handle emp data
DATA : ITAB TYPE TABLE OF S_EMP,
WA TYPE S_EMP.
DATA : ITAB1 TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 10
I_END_ROW = 5
TABLES
INTERN = ITAB1
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.
LOOP AT ITAB1.
CASE ITAB1-COL.
WHEN '001'.
WA-F1 = ITAB1-VALUE.
WHEN '002'.
WA-F2 = ITAB1-VALUE.
WHEN '003'.
WA-F3 = ITAB1-VALUE.
WHEN '004'.
WA-F4 = ITAB1-VALUE.
WHEN '005'.
WA-F5 = ITAB1-VALUE.
WHEN '006'.
WA-F6 = ITAB1-VALUE.
WHEN '007'.
WA-F7 = ITAB1-VALUE.
WHEN '008'.
WA-F8 = ITAB1-VALUE.
WHEN '009'.
WA-F9 = ITAB1-VALUE.
ENDCASE.
AT END OF ROW.
APPEND WA TO ITAB.
CLEAR WA.
ENDAT.
ENDLOOP.
LOOP AT ITAB INTO WA.
WRITE : / WA-F1, WA-F2,WA-F3,WA-F4,WA-F5,WA-F6,WA-F6,WA-F7,WA-F8,WA-F9.
ENDLOOP.
reward if helpful
Rgds
Umakanth
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |