Application Development and Automation 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: 
Read only

To upload bdc using excel

Former Member
0 Likes
1,742

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.

4 REPLIES 4
Read only

Former Member
0 Likes
901

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..

Read only

Former Member
0 Likes
901
*&---------------------------------------------------------------------*
*& 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
Read only

venkat_o
Active Contributor
0 Likes
901

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   	7171081205307389

2. 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_data

Regards,

Venkat.O

Read only

Former Member
0 Likes
901

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