FM to upload to excel

Hi,,
   i have data in internal table now i want that data to be uploaded to excel sheet can any body let me know wht is the Function Module to upload the data to excel sheet.
points will be rewarded for sure

Hi
SEE THIS PROGRAM WHERE i had uploaded the data from excel sheet to internal table and then to application sever
*& Report  ZSD_EXCEL_INT_APP
REPORT  ZSD_EXCEL_INT_APP.
parameter: file_nm type localfile.
types : begin of it_tab1,
        f1(20),
        f2(40),
        f3(20),
       end of it_tab1.
data : it_tab type table of ALSMEX_TABLINE with header line,
       file type rlgrap-filename.
data : it_tab2 type it_tab1 occurs 1,
       wa_tab2 type it_tab1,
       w_message(100)  TYPE c.
at selection-screen on value-request for file_nm.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
  PROGRAM_NAME        = SYST-REPID
  DYNPRO_NUMBER       = SYST-DYNNR
  FIELD_NAME          = ' '
   STATIC              = 'X'
  MASK                = ' '
  CHANGING
   file_name           = file_nm
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.
refresh it_tab2[].clear wa_tab2.
file = file_nm.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
  EXPORTING
    filename                      = file
    i_begin_col                   = '1'
    i_begin_row                   =  '1'
    i_end_col                     = '10'
    i_end_row                     = '35'
  tables
    intern                        = it_tab
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 it_tab.
  case it_tab-col.
   when '002'.
    wa_tab2-f1 = it_tab-value.
   when '004'.
    wa_tab2-f2 = it_tab-value.
  when '008'.
    wa_tab2-f3 = it_tab-value.
endcase.
at end of row.
  append wa_tab2 to it_tab2.
clear wa_tab2.
  endat.
endloop.
data : p_file TYPE  rlgrap-filename value 'TEST3.txt'.
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
*--- Display error messages if any.
  IF sy-subrc NE 0.
    MESSAGE e001(zsd_mes).
    EXIT.
  ELSE.
*---Data is downloaded to the application server file path
    LOOP AT it_tab2 INTO wa_tab2.
      TRANSFER wa_tab2 TO p_file.
    ENDLOOP.
  ENDIF.
*--Close the Application server file (Mandatory).
  CLOSE DATASET p_file.
loop at it_tab2 into wa_tab2.
  write : / wa_tab2-f1,wa_tab2-f2,wa_tab2-f3.
endloop.

Similar Messages

  • Error While uploading a EXCEL file in Web dynpro - HR_KR_XSTRING_TO_STRING

    Hi,
       I am getting an error while trying to upload a excel file.  I am using the function HR_KR_XSTRING_TO_STRING for conversion. The error message is  "Unable to interpret    as a number"

    First of all, are you sure you know what you are working with here.  If this is standard Excel file in the Microsoft binary/propriatery format there is not function module or class in ABAP that can magically just transform this to a character string.  You should search the forums as this has been discussed extensively.  On that topic, please also do not post duplicate threads.  I have already locked your other thread with the same basic question.
    Instead of the binary/propriatery format of Excel, the file should be saved on the client as a text based format - like XML or Text Tab Delimited. You can then use several different options on the server to convert the XSTRING to STRING and process the content (becuase it was text based to begin with).  You could use CL_BCS_CONVERT, the function modules in the function group SCMS_CONV, or the class CL_ABAP_CONV_IN_CE.

  • Regarding upload from excel to alv.

    Hi
    here is my code:
    TABLES
    TABLES: ioheader,        " IOC Communication structure
            ioitem,          " IOC Communication structure
            klah,            " Class and Class type
            ksml,            " Characteristic Keys for Class and Type
            cabn,            " Characteristics
            cabnt,           " Characteristic Descriptions
            vbap,            " SAles details
            sscrfields.
    Includes
    INCLUDE rvreuse_global_data.  " ALV Types etc
    DATA - INTERNAL TABLES AND FIELD LISTS
    Types
    TYPE-POOLS: ibco2.           " Characteristic types
    DATA - CONSTANTS
    CONSTANTS: c_true(1)    TYPE c             VALUE 'X',
               c_false(1)   TYPE c             VALUE ' ',
               c_zioheader  TYPE dd02l-tabname VALUE 'ZIOHEADER',
               c_command    TYPE slis_formname VALUE 'USER_COMMAND',
               c_backhoe(7) TYPE c             VALUE 'BACKHOE',
               c_300(3)     TYPE c             VALUE '300',
               c_no_data(7) TYPE c             VALUE 'No Data',
               c_save(1)    TYPE c             VALUE 'A'.
    Internal Tables
    Main IO Table
    DATA: i_header LIKE zioheader OCCURS 0 WITH HEADER LINE.
    Characteristic Values
    DATA: i_config TYPE ibco2_instance_tab2.
    Characteristics Keys
    DATA: BEGIN OF i_imerk OCCURS 0,
            imerk LIKE ksml-imerk,
          END OF i_imerk.
    ALV Grid Control
    DATA: i_grid TYPE sd_alv.
    Catalogues
    DATA: wa_cat LIKE LINE OF i_grid-fieldcat.
    Structures
    Structure for layout variant
    DATA: s_variant LIKE disvariant.
    DATA : filename TYPE string.
    DATA - WORKING VARIABLES
    DATA - FIELD GROUPS
    *field-groups:
    SELECTION SCREEN
    Variant control
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t02.
    PARAMETERS: p_var LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK b1.
    Printer Control
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
    PARAMETERS: rad1 RADIOBUTTON GROUP rad USER-COMMAND radio,
                rad2 RADIOBUTTON GROUP rad,
                rad3 RADIOBUTTON GROUP rad.
    PARAMETER p_floc(128) DEFAULT '/usr/tmp/testfile.dat'
                             LOWER CASE.
    SELECTION-SCREEN END OF BLOCK b3.
    MAIN PROGRAM *************************
    INITIALIZATION.
      PERFORM initialise.             " Set up program defaults
    move 'Report Only' to rad1.
    move 'Export Sequence List' to s_but2.
    move 'Import Sequence List' to S_but3.
    Selection Screen Options
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
      PERFORM get_variant CHANGING p_var.             " ALV Layout
    DATA :   l_no_of_lines TYPE i,
              la_matnr LIKE s_matnr.
    DESCRIBE TABLE s_matnr LINES l_no_of_lines.
    IF l_no_of_lines > 1.
       MESSAGE e000(z1) WITH 'Enter only one product'.
    ENDIF.
    READ TABLE s_matnr INTO la_matnr WITH KEY sign = 'I'
                               option = 'EQ'.
    IF sy-subrc NE 0.
       MESSAGE e000(z1) WITH 'Enter only one product'.
    ENDIF.
    AT SELECTION-SCREEN.
      DATA :   l_no_of_lines TYPE i,
                la_matnr LIKE s_matnr.
      DESCRIBE TABLE s_matnr LINES l_no_of_lines.
      IF l_no_of_lines > 1.
        MESSAGE e000(z1) WITH 'Enter only one product'.
      ENDIF.
    READ TABLE s_matnr INTO la_matnr WITH KEY sign = 'I'
                                option = 'EQ'.
      IF sy-subrc NE 0.
        MESSAGE e000(z1) WITH 'Enter only one product'.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR  p_floc.
    data : pname type syst-repid.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
       PROGRAM_NAME        = pname
       DYNPRO_NUMBER       = SYST-DYNNR
       FIELD_NAME          = 'P_FLOC'
      STATIC              = ' '
      MASK                = ' '
      CHANGING
        FILE_NAME           = p_floc
    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.
      PERFORM set_catalogue.          " Set up basic headings from Itab
      PERFORM get_char_keys.          " Get the characteristic keys
      PERFORM modify_catalogue_key.   " Amend headings for char keys
    IOC Logical Database Event
      GET ioheader.
      PERFORM get_subsequent_data.    " Retrieve additional data
    END-OF-SELECTION.
    PERFORM modify_catalogue_title. " Place correct titles for AVL
    PERFORM alv_display.            " Display in ALV Grid
    if rad1 = 'X' .
      PERFORM modify_catalogue_title. " Place correct titles for AVL
      PERFORM alv_display.            " Display in ALV Grid
    elseif rad2 = 'X' .
    *if p_floc is initial .
    MESSAGE e000(z1) WITH
       ' Enter the file location'.
    *else.
       PERFORM download.               " Export sequence list to excel
    PERFORM modify_catalogue_title. " Place correct titles for AVL
      PERFORM alv_display.            " Display in ALV Grid
    *endif.
    elseif rad3 = 'X' .
    if p_floc is initial .
    MESSAGE e000(z1) WITH
        ' Enter the file location'.
    else .
         PERFORM upload.
    endif.
    endif.
    *AT SELECTION-SCREEN OUTPUT.
    *TOP-OF-PAGE.
    *END-OF-PAGE.
    *AT USER-COMMAND.
    perform PF_STATUS_SET.
    SUBROUTINES *******************************
          FORM get_variant                                              *
          Retrieve ALV display variant                                  *
    -->  X_VAR Variant                                                 *
    FORM get_variant CHANGING x_var.
      PERFORM f4_alv_layout(ppio_entry) USING i_grid-program
                                     CHANGING x_var.
    ENDFORM.
          FORM get_subsequent_data                                      *
          Retrieve additional data and place into I_HEADER Itab         *
    FORM get_subsequent_data.
    Prime extended table
      i_header = ioheader.
      PERFORM get_serial_number. " Get Sales Order Serial No
      PERFORM get_char_values.   " Get Characteristic Values
      PERFORM build_char_entries." Put Char Values into I_HEADER
    Add to extended table
      APPEND i_header.
    ENDFORM.
          FORM get_serial_number                                        *
          Retrieve the serial number                                    *
    FORM get_serial_number.
      SELECT SINGLE zuonr submi
        INTO (i_header-zuonr,i_header-submi)
        FROM vbak
       WHERE vbeln EQ i_header-kdauf_aufk.
    ENDFORM.
          FORM get_char_values                                          *
          Retrieve the characteristic values for the production order   *
    FORM get_char_values.
    Get Ready
      REFRESH i_config.
    Get Object key
      SELECT SINGLE cuobj
      FROM vbap
      INTO vbap-cuobj
      WHERE vbeln EQ i_header-kdauf_aufk
        AND matnr EQ i_header-plnbez.
    Get characteristic config values
      CALL FUNCTION 'CUCB_GET_CONFIGURATION'
           EXPORTING
                instance                     = vbap-cuobj
           IMPORTING
                configuration                = i_config
           EXCEPTIONS
                invalid_input                = 1
                invalid_instance             = 2
                instance_is_a_classification = 3
                OTHERS                       = 4.
    Not found, no config values will be pulled through
      IF sy-subrc <> 0.
      ENDIF.
    ENDFORM.
          FORM build_char_entries                                       *
          For each character value. Find the relevent "slot" in the     *
          table by checking the characteristic key against the catalogue*
          stored key
    FORM build_char_entries.
      DATA: la_config LIKE LINE OF i_config,       " i_config header line
            li_values TYPE ibvalue0 OCCURS 0,      " Charact'ic Values Itab
            la_values LIKE LINE OF li_values,      " li_values header line
            l_atwrt LIKE la_values-atwrt,          " Characteristic Value
            l_atinn LIKE la_values-atinn,          " Characteristic Key
            l_key(20),                             " Working built key
            l_entry(20),                           " FieldName to be updated
            l_len LIKE sy-tabix,                   " Length of string
            l_tabix LIKE sy-tabix.                 " Index position of Itab
      FIELD-SYMBOLS: <f_field>.       " This will be the field to update
    Loop on characteristics
      LOOP AT i_config INTO la_config.
    Extract the characteristic values imbedded table
        MOVE la_config-values TO li_values.
    Loop on the characteristics values
        LOOP AT li_values INTO la_values.
    We now have the charecteristic key la_values-atinn
    and the value in la_values-atwrt. However, there may be
    Multiple values for key la_values-atinn
    So if they are the same append to one long string.
    Is it a new value
          IF la_values-atinn EQ l_atinn.
            CONCATENATE l_atwrt '|' la_values-atwrt INTO l_atwrt.
            CONTINUE.
          ENDIF.
    New Value (and not first pass) so save built values
          IF NOT l_atinn IS INITIAL.
    Find the correct field to place the value in.
    This is done by finding the Itab field description in the AVL display
    field Catalogue called "No Data|nnnnnn" where nnnn is the
    characteristic Key
    Build the key
            CONCATENATE c_no_data '|' l_atinn INTO l_key.
    Loop till we find it. This gives us the field name
            LOOP AT i_grid-fieldcat INTO wa_cat WHERE seltext_l = l_key.
    Set up the field name to be amended
              CONCATENATE wa_cat-tabname '-' wa_cat-fieldname INTO l_entry.
              ASSIGN (l_entry) TO <f_field>.
    Update field with the Char value
              MOVE l_atwrt TO <f_field>.
    No need to continue this loop
              EXIT.
            ENDLOOP.
          ENDIF.
    Prime for next value
          l_atinn = la_values-atinn.
          l_atwrt = la_values-atwrt.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.
          FORM alv_display                                              *
          Display data in ALV grid                                      *
    FORM alv_display.
    Set up Variant
      i_grid-variant-variant = p_var.     " Variant
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
        i_callback_program             = i_grid-program
       I_CALLBACK_PF_STATUS_SET       =  i_grid-pf_status_set
        i_callback_user_command        = i_grid-user_command
      i_structure_name               = i_grid-structure
      is_layout                      = i_grid-layout
        it_fieldcat                    = i_grid-fieldcat
      IT_EXCLUDING                   = i_grid-excluding
      IT_SPECIAL_GROUPS              = i_grid-special_groups
      IT_SORT                        = i_grid-sort
      IT_FILTER                      = i_grid-filter
      IS_SEL_HIDE                    = i_grid-sel_hide
      I_DEFAULT                      = i_grid-default
        i_save                         = I_grid-save
        is_variant                     = i_grid-variant
      IT_EVENTS                      = i_grid-events
      IT_EVENT_EXIT                  = i_grid-event_exit
      IS_PRINT                       = i_grid-print
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = i_grid-start_column
      I_SCREEN_START_LINE            = i_grid-start_line
      I_SCREEN_END_COLUMN            = i_grid-end_column
      I_SCREEN_END_LINE              = i_grid-end_line
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        = i_grid-exit
      ES_EXIT_CAUSED_BY_USER         = i_grid-user_exit
        TABLES
         t_outtab                      = i_header
       EXCEPTIONS
        program_error                  = 1
        OTHERS                         = 2.
    ALV Failed.
      IF sy-subrc <> 0.
        WRITE: / 'Failed with',sy-subrc.
      ENDIF.
    ENDFORM.
          FORM initialise                                               *
          Set up basic report details                                   *
    FORM initialise.
    ALV controls
      i_grid-program = sy-repid.          " Program Name
      i_grid-user_command = c_command.    " ALV user FORM
      i_grid-save = c_save.               " Save Options
    ALV Variant Details for saved report layouts
      i_grid-variant-report = i_grid-program.
      i_grid-variant-username = sy-uname.
    ENDFORM.
          FORM user_command                                             *
          Routine called by ALV                                         *
    -->  X_UCOMM    Function selected                                  *
    -->  X_SELFIELD Selection field Itab                               *
    FORM user_command USING x_ucomm    LIKE sy-ucomm
                            x_selfield TYPE slis_selfield.
      DATA: l_answer(1).        " Answer returned from popup box
    Only allow drill down on Order number
      CHECK x_selfield-fieldname = 'AUFNR'.
    Get option for display or modify
      CALL FUNCTION 'POPUP_TO_DECIDE'
           EXPORTING
                textline1    = 'Please Choose'
                text_option1 = 'Display'
                text_option2 = 'Modify'
                titel        = 'Production Order'
           IMPORTING
                answer       = l_answer.
    Did they cancel
      CHECK l_answer NE 'A'.
    Set up parameters.
      SET PARAMETER ID 'ANR' FIELD x_selfield-value.
    Display
      IF l_answer = '1'.
        CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.
    Modify
      ELSEIF l_answer = '2'.
        CALL TRANSACTION 'CO02' AND SKIP FIRST SCREEN.
      ENDIF.
    *IF rad2 = 'X'.
    If sy-ucomm ='%PC'.
    IF sy-subrc <> 0.
        WRITE: / 'Failed with',sy-subrc.
      else.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          TITEL         = 'File Transfer Status'
          TXT1          = 'File transfered to location:'
          TXT2          = filename
        TXT3          = ' '
        TXT4          = ' '
        ENDIF.
    endif.
    ENDFORM.
          FORM set_catalogue                                            *
          Retrieve the title and field information from the             *
          Data Dictionary. This will then be amended to the correct     *
          Characteristic titles during the end-of-selection event       *
    FORM set_catalogue.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                i_program_name         = i_grid-program
                i_internal_tabname     = 'I_HEADER'
                i_structure_name       = c_zioheader
                i_client_never_display = 'X'
           CHANGING
                ct_fieldcat            = i_grid-fieldcat.
    ENDFORM.
          FORM get_char_keys                                            *
          Retrieve the list of characteristic keys                      *
          template of BACKHOE class 300                                 *
    FORM get_char_keys.
      DATA : la_inob TYPE inob.
      SELECT SINGLE * FROM inob INTO la_inob
                     WHERE objek = s_matnr-low.
      IF sy-subrc NE 0.
        MESSAGE e000(z1) WITH
        ' Could not get INOB table for ' s_matnr-low.
      ENDIF.
    Get Major Object key
      SELECT SINGLE clint
        FROM klah
        INTO klah-clint
       WHERE klart = la_inob-klart
         AND class = s_matnr-low.
      IF sy-subrc NE 0.
        MESSAGE e001(z296) WITH c_backhoe c_300.
      ENDIF.
    Use Major key to retrieve Characteristics keys
    This is the template for the headings
      SELECT imerk
        FROM ksml
        INTO TABLE i_imerk
       WHERE clint EQ klah-clint    " Objct Key
         AND lkenz EQ space         " Delete Indicator
         AND datuv LE sy-datum.     " Validity to
      IF sy-subrc NE 0.
        MESSAGE e002(z296) WITH klah-clint.
      ENDIF.
    ENDFORM.
          FORM modify_catalogue_key                                     *
          Change the default "No Data" titles with the characteristic   *
          key values in the form "No Data|nnnnnnn" where nnnnnn is      *
          the characteristic key. This is used as a method of allocating*
          characteristic values to the I_HEADER Itab positions          *
          CHAR_001 to CHAR_100                                          *
    FORM modify_catalogue_key.
      DATA: l_index LIKE sy-tabix,              " Table Index for Read
            l_tabix LIKE sy-tabix,              " Table Index Position
            l_seltext_l LIKE dd03p-scrtext_l.   " Heading Text
    Get into Key Sequence
      SORT i_imerk.
    Loop on catalogue for dummy titles
      LOOP AT i_grid-fieldcat INTO wa_cat WHERE seltext_l(7) = c_no_data.
        l_tabix = sy-tabix.
    Get the next characteristic
        l_index = l_index + 1.
        READ TABLE i_imerk INDEX l_index.
    No Characteristic, No display
        IF sy-subrc NE 0.
          wa_cat-no_out = c_true.
          wa_cat-tech = c_true.
          MODIFY i_grid-fieldcat FROM wa_cat INDEX l_tabix.
          CONTINUE.
        ENDIF.
    Place the char key against the "No Data" title
    so that later we know what values to place against the keys
    the title will become "No Data:nnnnnnnnnn" (nnn = Key)
        CONCATENATE c_no_data '|' i_imerk-imerk INTO wa_cat-seltext_l.
        MODIFY i_grid-fieldcat FROM wa_cat INDEX l_tabix.
      ENDLOOP.
    ENDFORM.
          FORM modify_catalogue_title                                   *
          At this stage the catalogue titles for the characteristics    *
          are in the form "No Data|nnnnn" Where nnnn is the             *
          characteristic key. Using the Key, replace this text with     *
          the real characteristic title
    FORM modify_catalogue_title.
      DATA: l_key(20),                 " Characteristic Key in Alpha form
            l_len LIKE sy-tabix.       " Length of string
    Loop on the characteristic keys
      LOOP AT i_imerk.
    Get the real title
        SELECT SINGLE atbez
          FROM cabnt
          INTO cabnt-atbez
         WHERE atinn EQ i_imerk-imerk.
    Not found, leave alone
        CHECK sy-subrc EQ 0.
    Place key into char form for comparison in loop
        l_key = i_imerk-imerk.
    Now loop on the catalogue to get the key
        LOOP AT i_grid-fieldcat INTO wa_cat WHERE seltext_l+8 = l_key.
    Place the title into the catalogue
          wa_cat-seltext_l = cabnt-atbez.
          wa_cat-seltext_m = cabnt-atbez.
          wa_cat-seltext_s = cabnt-atbez.
          wa_cat-reptext_ddic = cabnt-atbez.
    And update
          MODIFY i_grid-fieldcat FROM wa_cat.
        ENDLOOP.
      ENDLOOP.
    IF rad2 = 'X'.
    LOOP AT i_grid-fieldcat INTO wa_cat.
    *IF wa_cat-fieldname = 'AUFNR'.
    *wa_cat-col_pos = '10'.
    *endif.
    case wa_cat-fieldname.
    when 'AUFNR'.
    wa_cat-fix_column = 'X'.
    when 'CY_SEQNR'.
    wa_cat-fix_column = 'X'.
    when 'ZOUNR'.
    wa_cat-fix_column = 'X'.
    when 'GLTRP'.
    wa_cat-fix_column = 'X'.
    when 'SUBMI'.
    wa_cat-fix_column = 'X'.
    endcase.
    modify  i_grid-fieldcat FROM wa_cat.
    endloop.
    endif.
    ENDFORM.
    *SELECT z099seqno z099heading
          INTO table i_header
          FROM z099 join z100 ON
          z099seqno = z100seqno WHERE
    z100~product = s_matnr.
    *&      Form  download
          Download file to excel
    *FORM download.
    *filename = p_floc .
    *CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      BIN_FILESIZE                  =
       FILENAME                      = filename
       FILETYPE                      = 'ASC'
       APPEND                        = 'X'
      WRITE_FIELD_SEPARATOR         = ','
      HEADER                        = 'l_seltext_l'
      TRUNC_TRAILING_BLANKS         = ' '
      WRITE_LF                      = 'X'
      COL_SELECT                    = ' '
      COL_SELECT_MASK               = ' '
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
    TABLES
       DATA_TAB                      = i_header
    EXCEPTIONS
      FILE_WRITE_ERROR              = 1
      NO_BATCH                      = 2
      GUI_REFUSE_FILETRANSFER       = 3
      INVALID_TYPE                  = 4
      NO_AUTHORITY                  = 5
      UNKNOWN_ERROR                 = 6
      HEADER_NOT_ALLOWED            = 7
      SEPARATOR_NOT_ALLOWED         = 8
      FILESIZE_NOT_ALLOWED          = 9
      HEADER_TOO_LONG               = 10
      DP_ERROR_CREATE               = 11
      DP_ERROR_SEND                 = 12
      DP_ERROR_WRITE                = 13
      UNKNOWN_DP_ERROR              = 14
      ACCESS_DENIED                 = 15
      DP_OUT_OF_MEMORY              = 16
      DISK_FULL                     = 17
      DP_TIMEOUT                    = 18
      FILE_NOT_FOUND                = 19
      DATAPROVIDER_EXCEPTION        = 20
      CONTROL_FLUSH_ERROR           = 21
      OTHERS                        = 22
    IF sy-subrc <> 0.
       WRITE: / 'Failed with',sy-subrc.
    else.
    CALL FUNCTION 'POPUP_TO_INFORM'
       EXPORTING
         TITEL         = 'File Transfer Status'
         TXT1          = 'File transfered to location:'
         TXT2          = filename
        TXT3          = ' '
        TXT4          = ' '
       ENDIF.
    *ENDFORM.                    " download
    *&      Form  upload
          text
    -->  p1        text
    <--  p2        text
    FORM upload.
    *DATA : i_upload TYPE STANDARD TABLE OF alsmex_tabline.
    **data : i_upload like zioheader occurs 0 with header line.
    data file like RLGRAP-FILENAME.
    file = p_floc .
    DATA: BEGIN OF i_upload OCCURS 0.
            INCLUDE STRUCTURE  alsmex_tabline.
    DATA: END OF i_upload.
    DATA: BEGIN OF i_upload1 OCCURS 0.
            INCLUDE STRUCTURE  alsmex_tabline.
    DATA: END OF i_upload1.
    DATA: BEGIN OF t_col OCCURS 0,
           col LIKE alsmex_tabline-col,
           size TYPE i.
    DATA: END OF t_col.
    DATA: zwlen TYPE i,
          zwlines TYPE i.
    DATA: BEGIN OF fieldnames OCCURS 3,
            title(60),
            table(6),
            field(10),
            kz(1),
          END OF fieldnames.
    DATA: tind(4) TYPE n.
    FIELD-SYMBOLS: <fs1>.
    DATA: zwfeld(19).
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = file
        I_BEGIN_COL                   = '1'
        I_BEGIN_ROW                   = '1'
        I_END_COL                     = '200'
        I_END_ROW                     = '6500'
      TABLES
        INTERN                        = i_upload.
    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 i_upload.
        i_upload1 = i_upload.
        CLEAR i_upload1-row.
        APPEND i_upload1.
      ENDLOOP.
      SORT i_upload1 BY col.
      LOOP AT i_upload1.
        AT NEW col.
          t_col-col = i_upload1-col.
          APPEND t_col.
        ENDAT.
        zwlen = strlen( i_upload1-value ).
        READ TABLE t_col WITH KEY col = i_upload1-col.
        IF sy-subrc EQ 0.
          IF zwlen > t_col-size.
            t_col-size = zwlen.
                             Internal Table, Current Row Index
            MODIFY t_col INDEX sy-tabix.
          ENDIF.
        ENDIF.
      ENDLOOP.
      DESCRIBE TABLE t_col LINES zwlines.
      SORT i_upload BY row col.
    IF kzheader = 'X'.
        LOOP AT i_upload.
          fieldnames-title = i_upload-value.
          APPEND fieldnames.
          AT END OF row.
            EXIT.
          ENDAT.
        ENDLOOP.
    ELSE.
        DO zwlines TIMES.
          WRITE sy-index TO fieldnames-title.
          APPEND fieldnames.
        ENDDO.
    ENDIF.
      SORT i_upload BY row col.
      LOOP AT i_upload.
       IF kzheader = 'X'
        i_upload-row = 1.
          CONTINUE.
       ENDIF.
        tind = i_upload-col.
        CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
        ASSIGN (zwfeld) TO <fs1>.
        <fs1> = i_upload-value.
        AT END OF row.
          APPEND i_upload.
          CLEAR i_upload.
        ENDAT.
      ENDLOOP.
    if sy-subrc = 0.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                =
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = i_grid-program
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = i_grid-fieldcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = i_save
       IS_VARIANT                        = i_grid-variant
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_ADD_FIELDCAT                   =
      IT_HYPERLINK                      =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = i_upload.
    EXCEPTIONS
      PROGRAM_ERROR                     = 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.
    endif.
    when i execute the program i am getting a short dump
    GETWA_NOT_ASSIGNED
    what might be the problem.
    this is a very urgent question.
    pls suggest me the clear way to over come this problem.

    HI
    use this code for uploading the excel file to internal table....
    data: begin of itab_string occurs 0,
          record type char255,
          end of itab_string.
    data:  L_FILETABLE TYPE FILETABLE,
    L_FILETAB_H TYPE FILETABLE WITH HEADER LINE.
    data: p_file1 type string.
    selection screen .
    PARAMETERS: P_FILE TYPE LOCALFILE.
    initialization.
    at selection-screen on value-request for P_FILE.
    IF THE USER SELECT EXTENTION BUTTON IT WILL OPEN THE LOCAL DIRECTORY FOR SELECTING THE FILE LOCATION.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
       WINDOW_TITLE            =
       DEFAULT_EXTENSION       = 'CSV'
       DEFAULT_FILENAME        = 'C:\Documents and Settings\196093\Desktop\STATUS.csv'
       FILE_FILTER             =
       INITIAL_DIRECTORY        = 'C:\Documents and Settings\196093\Desktop\'
       MULTISELECTION          =
       WITH_ENCODING           =
      CHANGING
        FILE_TABLE              = L_FILETABLE
        RC                      = RC
       USER_ACTION             =
       FILE_ENCODING           =
      EXCEPTIONS
        FILE_OPEN_DIALOG_FAILED = 1
        CNTL_ERROR              = 2
        ERROR_NO_GUI            = 3
        NOT_SUPPORTED_BY_GUI    = 4
        others                  = 5
    IF SY-SUBRC <> 0.
    ELSE.
    LOOP AT l_filetable INTO L_FILETAB_H.
    P_FILE = L_FILETAB_H-FILENAME.
    move p_file to p_file1.
    EXIT.
    ENDLOOP.
    ENDIF.
    passing the selected file name to gui_upload for loading the data
    into internal table
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = p_file1
      FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = itab_string
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE I000(Z00) WITH 'PLEASE PROVIDE CORRECT FILE NAME'.
    ENDIF.
    reward points to all helpful answers
    kiran.M

  • I would like to upload a excel file using jsp

    Hi,
    I would like to upload the excel file using jsp in my netbeans ide. Please help.
    I don Know what is the error in this jsp file. It is not showing any thing and the file is also not getting uploaded.
    Please gothru the code below.
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ page import="java.io.*" errorPage="err.jsp"%>
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="<html:rewrite page="/design.css" />" rel="stylesheet" type="text/css">
    <title>Upload Page</title>
    </head>
    <body onKeyDown="DisablingBackFunctionality()" onLoad="DisablingBackFunctionality()">
    <html:form action="download" >
    <div style="position:absolute; left:100;top:200;">Select an excel File :<input type="file" name="uploadfile"></div>
    <div style="position:absolute; left:190;top:250;"><input type="submit" name="Submit" value="Read"></div>
    <div style="position:absolute; left:336;top:250;"><input type="reset" name="Reset" value="Clear"></div>
    mainmenu
    </html:form>
    </body>
    </html>
    <%
    String contentType = request.getContentType();
    if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
    DataInputStream in = new DataInputStream(request.getInputStream());
    int formDataLength = request.getContentLength();
    byte dataBytes[] = new byte[formDataLength];
    int byteRead = 0;
    int totalBytesRead = 0;
    while (totalBytesRead < formDataLength) {
    byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
    totalBytesRead += byteRead;
    String file = new String(dataBytes);
    //out.println("<br> file :"+file);
    String saveFile = file.substring(file.indexOf("filename=\"") + 10);
    //out.println("<br> savefile :"+saveFile);
    saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
    //out.println("<br> now file1 :"+saveFile);
    saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1, saveFile.indexOf("\""));
    //out.println("<br> now file2 :"+saveFile);
    //out.print(dataBytes);
    String ext = "";
    if (saveFile.indexOf(".") != -1) {
    ext = saveFile.substring(saveFile.lastIndexOf("."));
    int lastIndex = contentType.lastIndexOf("=");
    //out.println("<br>lst index of"+lastIndex);
    String boundary = contentType.substring(lastIndex + 1, contentType.length());
    //out.println("<br> boundary"+boundary);
    //out.println("<br> file :"+file);
    int pos;
    pos = file.indexOf("filename=\"");
    //out.println("<br> now 0 :"+pos);
    pos = file.indexOf("\n", pos) + 1;
    //out.println("<br>now 1 :"+pos);
    pos = file.indexOf("\n", pos) + 1;
    //out.println("<br>now 2 :"+pos);
    pos = file.indexOf("\n", pos) + 1;
    //out.println("<br>now 3"+pos);
    int boundaryLocation = file.indexOf(boundary, pos) - 4;
    int startPos = ((file.substring(0, pos)).getBytes()).length;
    int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
    FileOutputStream fileOut = new FileOutputStream("D:\\" + saveFile);
    //FileOutputStream fileOut = new FileOutputStream(saveFile);
    //fileOut.write(dataBytes);
    fileOut.write(dataBytes, startPos, (endPos - startPos));
    fileOut.flush();
    fileOut.close();
    session.setAttribute("fil", saveFile);
    //out.println("File saved as " +saveFile);
    %>
    <script type="text/javascript" >
    function DisablingBackFunctionality()
    var URL;
    var i ;
    var QryStrValue;
    URL=window.location.href ;
    i=URL.indexOf("?");
    QryStrValue=URL.substring(i+1);
    if (QryStrValue!='X')
    window.location=URL + "?X";
    </script>
    Please let me know the result as soon as possible. Its my very urgent.
    Thanking Yu,
    Muthu Kumar.R

    No.
    Mylenium

  • To upload a excel file to dB table through webdynpro ABAP

    HI,
        I am unable to upload a excel file directly by using  func module   "HR_KR_XSTRING_TO_STRING".
        If file is in tab delimited then only, I am able to upload.
        Suggest me if there are any other options to upload a excel file.

    Hi,
    The below link gives you an explanation of how you can upload an excel file to web dynpro.
    http://www.****************/Tutorials/WebDynproABAP/Upload/Page1.htm
    Kindly read go through the below link, as this issue have been brought up before
    http://forums.sdn.sap.com/thread.jspa?threadID=1831838
    Thanks and regards.
    Edited by: Suraj Ravindran Nair on Feb 24, 2012 6:24 AM

  • Uploading an Excel File

    I'm doing a test on uploading an Excel file using JAVA. Right now I have my code set up to upload to an Access database. Everything works great except the last record in my Excel file is not being uploaded. I can make it load the last record by adding redundant code { stSQL.executeUpdate(strSQL);  }
    outside the loop as shown below. This doesn't really make sense to me since I am printing the last SQL statement twice, once inside the loop and once outside the loop so why the SQL statement isn't executed is beyond me. Any thoughts? Thanks,
    import java.io.*;
    import java.sql.*;
    import java.util.regex.*;
    public class UploadExcel{
    public static void main(String[] args){
    Connection connection = null;
    String TableName = "GSABill";
    String strBeginSQL = "INSERT INTO " + TableName + " VALUES( ";
    try{
    int iCount = 0;
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                
    Connection con = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=c:/test3.xls;DriverID=22;READONLY=false;" );
    Connection Access = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/temp/test.mdb;Uid=Admin;Pwd=;");
    Statement st = con.createStatement();
    Statement stSQL = Access.createStatement();
    ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );      
    ResultSetMetaData rsmd = rs.getMetaData();
    int numberOfColumns = rsmd.getColumnCount();
    int rows;
    String strSQL;
    strSQL = "";
    while (rs.next()) {
    strSQL = strBeginSQL;
    iCount++;
    strSQL = strBeginSQL + iCount + ", ";
         for (int i = 1; i <= numberOfColumns; i++) {                                             
              String columnValue = rs.getString(i);                          
    try{
    if (!columnValue.equals("")){
    strSQL = strSQL.substring(0, strSQL.length()-1) + "'" + columnValue + "', ";
    } else {
    strSQL = strSQL.substring(0, strSQL.length()-1) + "'', ";
    } catch(Exception e) {
    strSQL = strSQL.substring(0, strSQL.length()-1) + "'', ";
    strSQL = strSQL.substring(0, strSQL.length() - 2) + ")";
    System.out.println(strSQL);
    stSQL.executeUpdate(strSQL);
    System.out.println(strSQL);
    stSQL.executeUpdate(strSQL);
    stSQL.close();
         st.close();
         con.close();
    } catch(Exception ex) {
         System.err.print("Exception: ");
         System.err.println(ex.getMessage());

    jsp file upload code (any type of file): (fileUpload.jsp)
    <%@ page import="java.io.*,javax.servlet.http.HttpServletRequest,javax.servlet.ServletInputStream" %>
    <%@ page import="java.io.FileWriter,java.io.IOException" %>
    <%
         String savePath = "", filepath = "", filename = "";
         String contentType = "", fileData = "", strLocalFileName = "";
         int startPos = 0;
         int endPos = 0;
    %>
    <%!
         //copy specified number of bytes from main data buffer to temp data buffer
         void copyByte(byte [] fromBytes, byte [] toBytes, int start, int len)
              for(int i=start;i<(start+len);i++)
                   toBytes[i - start] = fromBytes;
    %>
    <%
         int BOF = 0, EOF = 0;
         contentType = request.getContentType();
         out.println("<br>Content type is :: " +contentType);
         if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0))
              DataInputStream in = new DataInputStream(request.getInputStream());
              DataInputStream in1 = in;
              int formDataLength = request.getContentLength();
              byte dataBytes[] = new byte[formDataLength];
              int byteRead = 0;
              int totalBytesRead = 0;
              while (totalBytesRead < formDataLength)
                   byteRead = in1.read(dataBytes, totalBytesRead, formDataLength);
                   totalBytesRead += byteRead;
              out.println("<br>totalBytesRead : " + totalBytesRead + " : formDataLength = " + formDataLength);
              //String file = new String(dataBytes);
              //out.println("<br>File Contents:<br>////////////////////////////////////<br>" + file + "<br>////////////////////////////////<br>");
              byte[] line = new byte[128];
              if (totalBytesRead < 3)     
              return;     //exit if file length is not sufficiently large
              String boundary = "";
              String s = "";
              int count = 0;          
              int pos = 0;
              //loop for extracting boundry of file
              //could also be extracted from request.getContentType()
              do
                   copyByte(dataBytes, line, count ,1);     //read 1 byte at a time
                   count+=1;
                   s = new String(line, 0, 1);
                   fileData = fileData + s;
                   pos = fileData.indexOf("Content-Disposition: form-data; name=\""); //set the file name
                   if(pos != -1)
                        endPos = pos;
              }while(pos == -1);
              boundary = fileData.substring(startPos, endPos);
              //loop for extracting filename
              startPos = endPos;
              do
                   copyByte(dataBytes, line, count ,1);     //read 1 byte at a time
                   count+=1;
                   s = new String(line, 0, 1);
                   fileData = fileData + s;
                   pos = fileData.indexOf("filename=\"", startPos); //set the file name
                   if(pos != -1)
                        startPos = pos;
              }while(pos == -1);                         
              do
                   copyByte(dataBytes, line, count ,1);     //read 1 byte at a time
                   count+=1;
                   s = new String(line, 0, 1);
                   fileData = fileData + s;
                   pos = fileData.indexOf("Content-Type: ", startPos);
                   if(pos != -1)
                        endPos = pos;                              
              }while(pos == -1);
              filename = fileData.substring(startPos + 10, endPos - 3);     //to eliminate " from start & end
              strLocalFileName = filename;
              int index = filename.lastIndexOf("\\");
              if(index != -1)
                   filename = filename.substring(index + 1);
              else
                   filename = filename;
              //loop for extracting ContentType
              boolean blnNewlnFlag = false;
              startPos = endPos;     //added length of "Content-Type: "
              do
                   copyByte(dataBytes, line, count ,1);     //read 1 byte at a time
                   count+=1;
                   s = new String(line, 0, 1);
                   fileData = fileData + s;               
                   pos = fileData.indexOf("\n", startPos);
                   if(pos != -1)
                        if(blnNewlnFlag == true)
                             endPos = pos;                         
                        else
                             blnNewlnFlag = true;
                             pos = -1;
              }while(pos == -1);
              contentType = fileData.substring(startPos + 14, endPos);
              //loop for extracting actual file data (any type of file)
              startPos = count + 1;
              do
                   copyByte(dataBytes, line, count ,1);     //read 1 byte at a time
                   count+=1;
                   s = new String(line, 0, 1);
                   fileData = fileData + s;
                   pos = fileData.indexOf(boundary, startPos);     //check for end of file data i.e boundry value               
              }while(pos == -1);
              endPos = count - boundary.length();
              //file data extracted
              out.println("<br><br>0. Local File Name = " + strLocalFileName);
              out.println("<br><br>1. filename = " + filename);
              out.println("<br>2. contentType = " + contentType);
              out.println("<br>3. startPos = " + startPos);
              out.println("<br>4. endPos = " + endPos);
              out.println("<br>5. boundary = " + boundary);
              //create destination path & save file there
              String appPath = application.getRealPath("/");
              out.println("<br>appPath : " + appPath);
              String destFolder = appPath + "images/banner/";
              filename= destFolder + filename;
              FileOutputStream fileOut = new FileOutputStream(filename);
              fileOut.write(dataBytes, startPos, (endPos - startPos));
              fileOut.flush();
              fileOut.close();
              out.println("<br>File saved as >> " + filename);          
              //file saved at destination
              //out.println("<br>File data : <br><br>**************************<br>" + (new String(dataBytes,startPos, (endPos - startPos))) + "<br><br>**************************");
         else
              out.println("Error in uploading ");
    %>
    supporting html file:
    <form method="post" action="fileUpload.jsp" name="upform" enctype="multipart/form-data">
      <table width="60%" border="0" cellspacing="1" cellpadding="1" align="center" class="style1">
        <tr>
          <td align="left"><b>Select a file to upload :</b></td>
        </tr>
        <tr>
          <td align="left">
            <input type="file" name="uploadfile" size="50">
            </td>
        </tr>
        <tr>
          <td align="left">
              <input type="hidden" name="todo" value="upload">
            <input type="submit" name="Submit" value="Upload">
            <input type="reset" name="Reset" value="Cancel">
            </td>
        </tr>
      </table> 
    </form>
    </body>
    </html>

  • Problem in uploading an excel file in wd abap

    I am trying to upload an excel file in wd abap but on uploading it shows me the data in the form of some codes but when i try to do the same thing using text file it works well.Plese refer the code .
    METHOD onactionon_upload .
      TYPES : BEGIN OF itab_str1,
       name(10) TYPE c,
       age(10) TYPE c,
       END OF itab_str1.
      DATA : t_table1 TYPE STANDARD TABLE OF itab_str1,
            i_data TYPE STANDARD TABLE OF string,
            lo_nd_sflight TYPE REF TO if_wd_context_node,
            lo_el_sflight TYPE REF TO if_wd_context_element,
            l_string TYPE string,
            fs_table TYPE itab_str1,
            l_xstring TYPE xstring,
            fields TYPE string_table,
            lv_field TYPE string.
      DATA : t_table TYPE if_main=>elements_data_tab,
            data_table TYPE if_main=>elements_data_tab.
      wd_context->get_attribute(
      EXPORTING
        name = 'DATASOURCE'
        IMPORTING
          value = l_xstring
    CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
      EXPORTING
        in_xstring          = l_xstring
    IMPORTING
       out_string          = l_string.
    SPLIT l_string AT cl_abap_char_utilities=>newline  INTO TABLE i_data.
    LOOP AT i_data INTO l_string.
    SPLIT l_string AT cl_abap_char_utilities=>horizontal_tab INTO TABLE fields.
    READ TABLE fields INTO lv_field index 1.
    fs_table-name = lv_field.
    READ TABLE fields INTO lv_field index 2.
    fs_table-age = lv_field.
    APPEND fs_table TO t_table1.
    ENDLOOP.
    lo_nd_sflight = wd_context->get_child_node( 'DATA_TAB').
    lo_nd_sflight->bind_table( t_table1 ).
    ENDMETHOD.

    Problem is not with the file format  nor Upload element.
    problem is with conversion function module, still now for conversion of xcel data to string format we dont have perfect function module.
    CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
    EXPORTING
    in_xstring = l_xstring
    IMPORTING
    out_string = l_string.
    That's a bug with xcel conversion  As of now I dont find any fm which converts  xcel data to string without any problem.
    Regards
    Srinvivas
    Edited by: sanasrinivas on Dec 23, 2011 7:02 AM

  • ADF 11g : Live messages about status/errors while uploading a Excel file

    Hi,
    Im using ADF 11.1.1.2. In the ADF application, there is a module where the user will upload a excel sheet with lot of data(50,000 lines) in multi sheets. We are validating the data against certain business validations and inserting this data into Database tables once all the validations are successful. In case any validation errors are there we write them into a log file and send it to the user.
    Now the requirement we are stuck with is to show the validation messages/errors on a screen while the upload is in progress. The messages are to be live i.e in case now the code is validating row 10 and there is a error then that error message with row number is to be displayed on the screen and when the validation process continues with row 11, we need to show message saying 'Row 11 validation in process...'.
    thanks,
    Manasa.

    For this you can use a progress bar together with an DefaultBoundedRangeModel where you run the validation in a thread. This thread put the messages somewhere where the UI picks them up.
    On the other side, your requirement is hard to do. I did some math: 50,000 records to validate and you want to show a message for each row; If each message need only a second you end up with more then 12 hours of work. Nobody will stare at the screen for that long. If the validation takes longer then a second it gets worse. If you show the message for less then a second, the user can read it anyway, so you don't need to show a message for every row.
    We do this kind of work in the background. The user has to ask for the progress of the process and can look at errors reported so far. This way the user can do something else even if the job runs for a long time.
    Timo

  • How to upload an excel to a dynamically generated internal table?

    Hi,
    I have an excel sheet. I have to create an internal table dynamically according to the fields of the excel sheet. The internal table i have created successfully, the fields are exactly coming as the excel sheet. I need to upload the excel sheet directly to my Internal table.
    Similar to the FM GUI_UPLOAD, which directly uploads the text document into the internal table
    I am not able to pass my dynamic internal table to the GUI_UPLOAD, The tables parameter in the GUI_UPLOAD is accepting only the standard tables.
    How to do?
    -Sudheer

    Hi,
    Use TEXT_CONVERT_XLS_TO_SAP  Function  Module.
    AWARD POINTS IF USEFUL

  • Uploading an excel file in an internal table.

    hi experts,
    I m trying to upload a excel file comprising of 16,000 records using the function module 'ALSM_EXCEL_TO_INTERNAL_TABLE' as follws
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           EXPORTING
                filename                = p_input
                i_begin_col             = 1
                i_begin_row             = 1
                i_end_col               = 30
                i_end_row               = 65000
           TABLES
                intern                  = g_t_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.
    My problem is I am unable to upload  record number 10001 else all the records are uploaded successfully
    can anyone help me in solving this problem

    FORM upload_itab .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      CODEPAGE                      = ' '
       FILENAME                      = p_file
       FILETYPE                      = 'ASC'
      HEADLEN                       = ' '
      LINE_EXIT                     = ' '
      TRUNCLEN                      = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      DAT_D_FORMAT                  = ' '
    IMPORTING
      FILELENGTH                    =
      TABLES
        DATA_TAB                      = itab
    EXCEPTIONS
      CONVERSION_ERROR              = 1
      FILE_OPEN_ERROR               = 2
      FILE_READ_ERROR               = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      NO_AUTHORITY                  = 10
      OTHERS                        = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  • Need help in uploading an excel file into SAP

    Hi All,
    I got a requirement to upload an excel file to SAP.
    But When i tried with the FM "ALSM_EXCEL_TO_INTERNAL_TABLE" , file  not getting uploaded to internal table.
    Getting expection 2, UPLOAD_OLE...
    I think the problem is with the file... the following the sample text of the file...
    Technical IdentNo.     Line No.     Text                                 Location
    BS-PZ-180                   1     035-05 EXZENTER-SCHNECKENPUMPE             0026
    BS-PZ-180                   2          LIEFERANT : SOCSIL-INTER SA  ECUBLENS     0026
    BS-PZ-180                   3          HERSTELLER : MONO PUMPS LIMITED  MANCH     0026
    BS-PZ-180                   4          MODELL/TYP : SH 60                             0026
    But when I tried with only one Column..its getting successfully uploaded...
    Pls suggest me how to upload the file? ( May be with sample code)
    Also pls let me know hw to handle the file..which contains 5 differnt sheets of texts.. ( May be with sample code)
    Your suggestion will be highly appreciated...
    Thanks,
    Priya

    Hi,
    Use the FM: TEXT_CONVERT_XLS_TO_SAP.  It will work perfectly.  I used this function module and uploaded data from xls to sap.  check the following code:
    TYPE-POOLS: truxs.
    PARAMETERS: p_file TYPE  rlgrap-filename.
    TYPES: BEGIN OF t_datatab,
          PROP_NAME like SDOKPROP-PROP_NAME,
          PROP_CHECK like SDOKPROP-PROP_CHECK,
          TABNAME like SDOKPROP-TABNAME,
          FIELDNAME like SDOKPROP-FIELDNAME,
          DESCRIPT(30) type c,
          END OF t_datatab.
    DATA: it_datatab type standard table of t_datatab,
          itab  TYPE STANDARD TABLE OF t_datatab,
          wa_itab TYPE t_datatab,
          wa_datatab type t_datatab.
    DATA: it_raw TYPE truxs_t_text_data.
    At selection screen
    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.
    SELECT * FROM sdokprop INTO CORRESPONDING FIELDS OF TABLE itab
    WHERE PROP_NAME LIKE 'DMS%'.
    WRITE / 'Before Modification'.
      LOOP AT itab INTO wa_itab.
        WRITE:/1 wa_itab-PROP_NAME, 27 wa_itab-PROP_CHECK, 31 wa_itab-TABNAME, 65 wa_itab-FIELDNAME, 96 wa_itab-DESCRIPT.
        CLEAR wa_itab.
      ENDLOOP.
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
        I_FIELD_SEPERATOR        =
          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 <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    END-OF-SELECTION.
    END-OF-SELECTION.
      WRITE / 'After Modification'.
    MODIFY sdokprop FROM TABLE it_datatab.
      LOOP AT it_datatab INTO wa_datatab.
        WRITE:/1 wa_datatab-PROP_NAME, 27 wa_datatab-PROP_CHECK, 31 wa_datatab-TABNAME, 65 wa_datatab-FIELDNAME, 96 wa_datatab-DESCRIPT.
        CLEAR wa_datatab.
      ENDLOOP.
      IF sy-subrc = 0.
        MESSAGE 'successfull' TYPE 'S'.
      ELSE.
        MESSAGE 'failed' TYPE 'E'.
      ENDIF.
    Regards,
    Bhaskar

  • Help with uploading an excel file to a table using an application

    Hello,
    Can anyone please help me out with this issue. I have apex application where in the end users upload an excel file to a table. For this I have followed the solution provided in this link
    http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
    Using the above solution, I was able to upload the excel data to a table "sample_tbl1" successfully with fields Id,acct_no,owner_name,process_dt. But the thing is I want accomdate a particular condition while uploading the file data, to check see if the acct_no already exists in another table say "sample_tbl2" or not. If acct_nos already exists in sample_tbl2 then give out an error displaying the list of account numbers that already exists in the database. Below is the code which I am using to upload file data to a table.
    DECLARE
    v_blob_data       BLOB; 
    v_blob_len        NUMBER; 
    v_position        NUMBER; 
    v_raw_chunk       RAW(10000); 
    v_char            CHAR(1); 
    c_chunk_len       number       := 1; 
    v_line            VARCHAR2 (32767)        := NULL; 
    v_data_array      wwv_flow_global.vc_arr2; 
    v_rows            number; 
    v_sr_no           number         := 1; 
    l_cnt             BINARY_INTEGER := 0;
    l_stepid          NUMBER := 10;
    BEGIN
    --Read data from wwv_flow_files</span> 
    select blob_content into v_blob_data 
    from wwv_flow_files 
    where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER) 
    and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER); 
    v_blob_len := dbms_lob.getlength(v_blob_data); 
    v_position := 1; 
    /* Evaluate and skip first line of data
    WHILE (v_position <= v_blob_len ) LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    -- Clear out 
    v_line := NULL;
    EXIT;
    END IF;
    END LOOP;
    -- Read and convert binary to char</span> 
    WHILE ( v_position <= v_blob_len ) LOOP 
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position); 
    v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk))); 
    v_line := v_line || v_char; 
    v_position := v_position + c_chunk_len; 
    -- When a whole line is retrieved </span> 
    IF v_char = CHR(10) THEN
    -- Convert comma to : to use wwv_flow_utilities </span> 
    v_line := REPLACE (v_line, ',', ':'); 
    -- Convert each column separated by : into array of data </span> 
    v_data_array := wwv_flow_utilities.string_to_table (v_line); 
    -- Insert data into target table
    EXECUTE IMMEDIATE 'insert into sample_tbl1(ID,ACCT_NO,OWNER_NAME,PROCESS_DT) 
    values (:1,:2,:3,:4)'
    USING 
    v_sr_no, 
    v_data_array(1), 
    v_data_array(2),
    to_date(v_data_array(3),'MM/DD/YYYY');
    -- Clear out 
    v_line := NULL; 
    v_sr_no := v_sr_no + 1; 
    l_cnt := l_cnt + SQL%ROWCOUNT;
    END IF; 
    END LOOP;
    delete from wwv_flow_files
    where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER)
    and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER);
    l_stepid  := 20;
    IF l_cnt = 0 THEN
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold">Please select a file to upload.</span></p>' ;
    ELSE
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:green">File uploaded and processed ' || l_cnt || ' record(s) successfully.</span></p>';
    END IF;
    l_stepid  := 30;
    EXCEPTION WHEN OTHERS THEN
    ROLLBACK;
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:red">Failed to upload the file. '||REGEXP_REPLACE(SQLERRM,'[('')(<)(>)(,)(;)(:)(")('')]{1,}', '') ||'</span></p>';
    END;
    {code}
    Can anyone please help me, how do i accomdate the condition within my existing code.
    thanks,
    Orton                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Orton,
    From your code it appears that the account No comes in the second column of the file = > v_data_array(1)
    So You can put a conditional block around the execute immediate code that inserts the records
    For instance
      SELECT count(1) INTO ln_account_no_exists from <"sample_tbl2> where account_no = v_data_array(1);
      IF (  ln_account_no_exists > 0 ) THEN
         --Account No: already exists
        <Do what you want to do here >
      ELSE
        EXECUTE IMMEDIATE ...
      END IF:
    {code}
    Inorder to handle the account no records which exists you can
      <li>Raise an exception
      <li> Write record to table or insert into collection and then use a report region in the page based on this table/collection to show error records
      <li> Append errored account No:s to the Success Message Variable programmatically(this variable is used by PLSQL process success/error message )
       {code}
        IF ( record exists)
          apex_application.g_print_success_message := apex_application.g_print_success_message||','|| v_data_array(1) ; -- Comma separated list of errored account no:s
        ELSE ...
       {code}
    Hope it helps                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How to upload an excel file using ABAP.

    Hi,
    Can anyone please help me in understanding how to upload an excel file using ABAP.
    Thanks!!

    http://diocio.wordpress.com/2007/02/12/sap-upload-excel-document-into-internal-table/
    check the link
    TYPES: Begin of t_record,
    name1 like itab-value,
    name2 like itab-value,
    age   like itab-value,
    End of t_record.
    DATA: it_record type standard table of t_record initial size 0,
    wa_record type t_record.
    DATA: gd_currentrow type i.
    *Selection Screen Declaration
    PARAMETER p_infile like rlgrap-filename.
    *START OF SELECTION
    call function ‘ALSM_EXCEL_TO_INTERNAL_TABLE’
    exporting
    filename                = p_infile
    i_begin_col             = ‘1&#8242;
    i_begin_row             = ‘2&#8242;  “Do not require headings
    i_end_col               = ‘14&#8242;
    i_end_row               = ‘31&#8242;
    tables
    intern                  = itab
    exceptions
    inconsistent_parameters = 1
    upload_ole              = 2
    others                  = 3.
    if sy-subrc <> 0.
    message e010(zz) with text-001. “Problem uploading Excel Spreadsheet
    endif.
    Sort table by rows and colums
    sort itab by row col.
    Get first row retrieved
    read table itab index 1.
    Set first row retrieved to current row
    gd_currentrow = itab-row.
    loop at itab.
      Reset values for next row
    if itab-row ne gd_currentrow.
    append wa_record to it_record.
    clear wa_record.
    gd_currentrow = itab-row.
    endif.
    case itab-col.
    when ‘0001&#8242;.                              “First name
    wa_record-name1 = itab-value.
    when ‘0002&#8242;.                              “Surname
    wa_record-name2 = itab-value.
    when ‘0003&#8242;.                              “Age
    wa_record-age   = itab-value.
    endcase.
    endloop.
    append wa_record to it_record.
    *!! Excel data is now contained within the internal table IT_RECORD
    Display report data for illustration purposes
    loop at it_record into wa_record.
    write:/     sy-vline,
    (10) wa_record-name1, sy-vline,
    (10) wa_record-name2, sy-vline,
    (10) wa_record-age, sy-vline.
    endloop.

  • Upload of excel file in to purchase order

    hi guys,
                  i want to upload a excel file to the internal table and then to create the purchase order.
    i know the name of function module and bapi.
    but how to make use of them in implementation!!!
    fun module : ALSM_EXCEL_TO_INTERNAL_TABLE
    bapi :       BAPI_PO_CREATE1.
                                                                                    arun and vishnu from
                                                                    infotech solutions

    *CREATION OF A TEMPORARY STRUCTURE FOR INSERTING FIELDS OF EXCEL TO INTERNAL TABLE.
    TYPES : BEGIN OF STR_FINAL,
             COMP_CODE TYPE BAPIMEPOHEADER-COMP_CODE,    " STRUCTURE : BAPIMEPOHEADER
             ITEM_INTVL TYPE BAPIMEPOHEADER-ITEM_INTVL,
             VENDOR TYPE BAPIMEPOHEADER-VENDOR,
             PMNTTRMS TYPE BAPIMEPOHEADER-PMNTTRMS,
             PURCH_ORG TYPE BAPIMEPOHEADER-PURCH_ORG,
             PUR_GROUP  TYPE BAPIMEPOHEADER-PUR_GROUP,
             CURRENCY TYPE BAPIMEPOHEADER-CURRENCY,
             PO_ITEM  TYPE BAPIMEPOITEM-PO_ITEM,         " STRUCTURE : BAPIMEPOITEM
             MATERIAL TYPE BAPIMEPOITEM-MATERIAL,
             PLANT TYPE BAPIMEPOITEM-PLANT,
             STGE_LOC  TYPE BAPIMEPOITEM-STGE_LOC,
             QUANTITY TYPE BAPIMEPOITEM-QUANTITY,
             TAX_CODE  TYPE BAPIMEPOITEM-TAX_CODE,
             ITEM_CAT TYPE BAPIMEPOITEM-ITEM_CAT,
             ACCTASSCAT TYPE BAPIMEPOITEM-ACCTASSCAT,
             SCHED_LINE TYPE BAPIMEPOSCHEDULE-SCHED_LINE,        " STRUCTURE : BAPIMEPOSCHEDULE
             DELIVERY_DATE TYPE BAPIMEPOSCHEDULE-DELIVERY_DATE,
             SERIAL_NO TYPE BAPIMEPOACCOUNT-SERIAL_NO,           " STRUCTURE  : BAPIMEPOACCOUNT
             GL_ACCOUNT TYPE BAPIMEPOACCOUNT-GL_ACCOUNT,
             COSTCENTER TYPE BAPIMEPOACCOUNT-COSTCENTER,
             CO_AREA TYPE BAPIMEPOACCOUNT-CO_AREA,
             END OF STR_FINAL.
    DATA :   IT_FINAL TYPE TABLE OF STR_FINAL,
             WA_FINAL TYPE STR_FINAL.
    DATA: ST_BAPIMEPOHEADER TYPE BAPIMEPOHEADER,
          ST_BAPIMEPOHEADERX TYPE BAPIMEPOHEADERX.
    *it is for item data
    DATA: WA_POITEM TYPE BAPIMEPOITEM,
          IT_POITEM TYPE TABLE OF BAPIMEPOITEM,
          WA_POITEMX TYPE BAPIMEPOITEMX,
          IT_POITEMX TYPE TABLE OF BAPIMEPOITEMX,
          WA_POSCHEDULE TYPE BAPIMEPOSCHEDULE,
          IT_POSCHEDULE TYPE TABLE OF BAPIMEPOSCHEDULE,
          WA_POSCHEDULEX TYPE BAPIMEPOSCHEDULX,
          IT_POSCHEDULEX TYPE TABLE OF BAPIMEPOSCHEDULX,
          WA_POACCOUNT TYPE BAPIMEPOACCOUNT,
          IT_POACCOUNT TYPE TABLE OF BAPIMEPOACCOUNT,
          WA_POACCOUNTX TYPE BAPIMEPOACCOUNTX,
          IT_POACCOUNTX TYPE TABLE OF BAPIMEPOACCOUNTX,
          WA_RETURN TYPE BAPIRET2,
          IT_RETURN TYPE TABLE OF BAPIRET2.
    selection-screen skip 1.
    parameters: p_file type localfile default 'D:\VISHNU\DEMO.XLS'.
    *selection-screen skip 1.
    at selection-screen on value-request for p_file.
      call function 'KD_GET_FILENAME_ON_F4'
           exporting
                static    = 'X'
           changing
                file_name = p_file.
    start-of-selection.
    clear IT_FINAL.
    refresh IT_FINAL.
      perform upload_data.
    loop at IT_FINAL INTO WA_FINAL.
        write:/  WA_FINAL-COMP_CODE,
              /  WA_FINAL-ITEM_INTVL,
              /  WA_FINAL-VENDOR,
              /  WA_FINAL-PMNTTRMS,
              /  WA_FINAL-PURCH_ORG,
              /  WA_FINAL-PUR_GROUP,
              /  WA_FINAL-CURRENCY,
              /  WA_FINAL-PO_ITEM,
              /  WA_FINAL-MATERIAL,
              /  WA_FINAL-PLANT,
              /  WA_FINAL-STGE_LOC,
              /  WA_FINAL-QUANTITY,
              /  WA_FINAL-TAX_CODE,
              /  WA_FINAL-ITEM_CAT,
              /  WA_FINAL-ACCTASSCAT,
              /  WA_FINAL-SCHED_LINE,
              /  WA_FINAL-DELIVERY_DATE,
              /  WA_FINAL-SERIAL_NO,
              /  WA_FINAL-GL_ACCOUNT,
              /  WA_FINAL-COSTCENTER,
              /  WA_FINAL-CO_AREA.
      endloop.
    LOOP AT IT_FINAL INTO WA_FINAL.
    ST_BAPIMEPOHEADER-COMP_CODE = WA_FINAL-COMP_CODE.
    ST_BAPIMEPOHEADER-DOC_TYPE = 'NB'.
    ST_BAPIMEPOHEADER-ITEM_INTVL = WA_FINAL-ITEM_INTVL.
    ST_BAPIMEPOHEADER-VENDOR = WA_FINAL-VENDOR.
    ST_BAPIMEPOHEADER-LANGU = SY-LANGU.
    ST_BAPIMEPOHEADER-PMNTTRMS = WA_FINAL-PMNTTRMS.
    ST_BAPIMEPOHEADER-PURCH_ORG = WA_FINAL-PURCH_ORG.
    ST_BAPIMEPOHEADER-PUR_GROUP = WA_FINAL-PUR_GROUP.
    ST_BAPIMEPOHEADER-CURRENCY = WA_FINAL-CURRENCY.
    *insert ST_BAPIMEPOHEADERX values
    ST_BAPIMEPOHEADERX-COMP_CODE = 'X'.
    ST_BAPIMEPOHEADERX-DOC_TYPE = 'X'.
    ST_BAPIMEPOHEADERX-ITEM_INTVL = 'X'.
    ST_BAPIMEPOHEADERX-VENDOR = 'X'.
    ST_BAPIMEPOHEADERX-LANGU = 'X'.
    ST_BAPIMEPOHEADERX-PMNTTRMS = 'X'.
    ST_BAPIMEPOHEADERX-PURCH_ORG = 'X'.
    ST_BAPIMEPOHEADERX-PUR_GROUP = 'X'.
    ST_BAPIMEPOHEADERX-CURRENCY = 'X'.
    *insert IT_POITEM values
    WA_POITEM-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POITEM-MATERIAL = WA_FINAL-MATERIAL.
    WA_POITEM-PLANT = WA_FINAL-PLANT.
    WA_POITEM-STGE_LOC = WA_FINAL-STGE_LOC.
    WA_POITEM-QUANTITY = WA_FINAL-QUANTITY.
    WA_POITEM-TAX_CODE = WA_FINAL-TAX_CODE.
    WA_POITEM-ITEM_CAT = WA_FINAL-ITEM_CAT.
    WA_POITEM-ACCTASSCAT = WA_FINAL-ACCTASSCAT.
    APPEND WA_POITEM TO IT_POITEM.
    CLEAR WA_POITEM.
    *insert IT_POITEMX values
    WA_POITEMX-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POITEMX-PO_ITEMX = 'X'.
    WA_POITEMX-MATERIAL = 'X'.
    WA_POITEMX-PLANT = 'X'.
    WA_POITEMX-STGE_LOC = 'X'.
    WA_POITEMX-QUANTITY = 'X'.
    WA_POITEMX-TAX_CODE = 'X'.
    WA_POITEMX-ITEM_CAT = 'X'.
    WA_POITEMX-ACCTASSCAT = 'X'.
    APPEND WA_POITEMX TO IT_POITEMX.
    CLEAR WA_POITEMX.
    *insert IT_POSCHEDULE values
    WA_POSCHEDULE-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POSCHEDULE-SCHED_LINE =  WA_FINAL-SCHED_LINE.
    WA_POSCHEDULE-DELIVERY_DATE = WA_FINAL-DELIVERY_DATE .
    WA_POSCHEDULE-QUANTITY = WA_FINAL-QUANTITY.
    APPEND WA_POSCHEDULE TO IT_POSCHEDULE.
    CLEAR WA_POSCHEDULE.
    *insert IT_POSCHEDULEX values
    WA_POSCHEDULEX-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POSCHEDULEX-SCHED_LINE = WA_FINAL-SCHED_LINE.
    WA_POSCHEDULEX-PO_ITEMX = 'X' .
    WA_POSCHEDULEX-SCHED_LINEX = 'X' .
    WA_POSCHEDULEX-DELIVERY_DATE = 'X' .
    WA_POSCHEDULEX-QUANTITY = 'X' .
    WA_POSCHEDULEX-PO_ITEM = WA_FINAL-PO_ITEM .
    WA_POSCHEDULEX-SCHED_LINE = WA_FINAL-SCHED_LINE.
    WA_POSCHEDULEX-PO_ITEMX = 'X'.
    WA_POSCHEDULEX-SCHED_LINEX = 'X' .
    WA_POSCHEDULEX-DELIVERY_DATE = 'X' .
    WA_POSCHEDULEX-QUANTITY = 'X'.
    WA_POSCHEDULEX-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POSCHEDULEX-SCHED_LINE = WA_FINAL-SCHED_LINE.
    WA_POSCHEDULEX-PO_ITEMX = 'X'.
    WA_POSCHEDULEX-SCHED_LINEX = 'X'.
    WA_POSCHEDULEX-DELIVERY_DATE = 'X' .
    WA_POSCHEDULEX-QUANTITY = 'X'.
    APPEND WA_POSCHEDULEX TO IT_POSCHEDULEX.
    CLEAR WA_POSCHEDULEX.
    *insert IT_POACCOUNT values
    WA_POACCOUNT-PO_ITEM = WA_FINAL-PO_ITEM.
    WA_POACCOUNT-SERIAL_NO = WA_FINAL-SERIAL_NO.
    WA_POACCOUNT-QUANTITY = WA_FINAL-QUANTITY .
    WA_POACCOUNT-GL_ACCOUNT = WA_FINAL-GL_ACCOUNT.
    WA_POACCOUNT-COSTCENTER = WA_FINAL-COSTCENTER.
    WA_POACCOUNT-CO_AREA = WA_FINAL-CO_AREA.
    APPEND WA_POACCOUNT TO IT_POACCOUNT.
    CLEAR WA_POACCOUNT.
    *insert IT_POACCOUNTX values
    WA_POACCOUNTX-PO_ITEM = 00001.
    WA_POACCOUNTX-SERIAL_NO = 01.
    WA_POACCOUNTX-QUANTITY = 'X'.
    WA_POACCOUNTX-GL_ACCOUNT = 'X'.
    WA_POACCOUNTX-COSTCENTER = 'X' .
    WA_POACCOUNTX-CO_AREA = 'X'.
    APPEND WA_POACCOUNTX TO IT_POACCOUNTX.
    CLEAR WA_POACCOUNTX.
    ENDLOOP.
    CALL FUNCTION 'BAPI_PO_CREATE1'
      EXPORTING
        POHEADER                     = ST_BAPIMEPOHEADER
       POHEADERX                     = ST_BAPIMEPOHEADERX
      POADDRVENDOR                 =
      TESTRUN                      =
      MEMORY_UNCOMPLETE            =
      MEMORY_COMPLETE              =
      POEXPIMPHEADER               =
      POEXPIMPHEADERX              =
      VERSIONS                     =
    IMPORTING
      EXPPURCHASEORDER             =
      EXPHEADER                    =
      EXPPOEXPIMPHEADER            =
    TABLES
       RETURN                       = IT_RETURN
       POITEM                       = IT_POITEM
       POITEMX                      = IT_POITEMX
      POADDRDELIVERY               =
       POSCHEDULE                   = IT_POSCHEDULE
       POSCHEDULEX                  = IT_POSCHEDULEX
       POACCOUNT                    = IT_POACCOUNT
      POACCOUNTPROFITSEGMENT       =
       POACCOUNTX                   = IT_POACCOUNTX
      POCONDHEADER                 =
      POCONDHEADERX                =
      POCOND                       =
      POCONDX                      =
      POLIMITS                     =
      POCONTRACTLIMITS             =
      POSERVICES                   =
      POSRVACCESSVALUES            =
      POSERVICESTEXT               =
      EXTENSIONIN                  =
      EXTENSIONOUT                 =
      POEXPIMPITEM                 =
      POEXPIMPITEMX                =
      POTEXTHEADER                 =
      POTEXTITEM                   =
      ALLVERSIONS                  =
      POPARTNER                    =
    *this is for save the porder number
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    *dispaly the results
    LOOP AT IT_RETURN INTO WA_RETURN.
      WRITE:/ WA_RETURN-MESSAGE,
              ST_BAPIMEPOHEADER-PO_NUMBER.
    ENDLOOP.
    form upload_data.
      data: file type  rlgrap-filename.
      data: IT_XCEL type table of alsmex_tabline,
            WA_XCEL TYPE ALSMEX_TABLINE.
      file = p_file.
      call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           exporting
                filename                = file
                i_begin_col             = '1'
                i_begin_row             = '1'
                i_end_col               = '21'
                i_end_row               = '1'
           tables
                intern                  = IT_xcel
           exceptions
                inconsistent_parameters = 1
                upload_ole              = 2
                others                  = 3.
      loop at IT_xcel INTO WA_XCEL.
        case
            WA_XCEL-COL.
            when '0001'.
            WA_FINAL-COMP_CODE = WA_xcel-value.
            WHEN '0002'.
            WA_FINAL-ITEM_INTVL = WA_XCEL-VALUE.
            WHEN '0003'.
            WA_FINAL-VENDOR = WA_XCEL-VALUE.
            WHEN '0004'.
            WA_FINAL-PMNTTRMS = WA_XCEL-VALUE.
            WHEN '0005'.
            WA_FINAL-PURCH_ORG = WA_XCEL-VALUE.
            WHEN '0006'.
            WA_FINAL-PUR_GROUP = WA_XCEL-VALUE.
            WHEN '0007'.
            WA_FINAL-CURRENCY = WA_XCEL-VALUE.
            WHEN '0008'.
            WA_FINAL-PO_ITEM = WA_XCEL-VALUE.
            WHEN '0009'.
            WA_FINAL-MATERIAL = WA_XCEL-VALUE.
            WHEN '00010'.
            WA_FINAL-PLANT = WA_XCEL-VALUE.
            WHEN '00011'.
            WA_FINAL-STGE_LOC = WA_XCEL-VALUE.
            WHEN '00012'.
            WA_FINAL-QUANTITY = WA_XCEL-VALUE.
            WHEN '00013'.
            WA_FINAL-TAX_CODE = WA_XCEL-VALUE.
            WHEN '00014'.
            WA_FINAL-ITEM_CAT = WA_XCEL-VALUE.
            WHEN '00015'.
            WA_FINAL-ACCTASSCAT = WA_XCEL-VALUE.
            WHEN '00016'.
            WA_FINAL-SCHED_LINE = WA_XCEL-VALUE.
            WHEN '00017'.
            WA_FINAL-DELIVERY_DATE = WA_XCEL-VALUE.
            WHEN '00018'.
            WA_FINAL-SERIAL_NO = WA_XCEL-VALUE.
            WHEN '00019'.
            WA_FINAL-GL_ACCOUNT = WA_XCEL-VALUE.
            WHEN '00020'.
            WA_FINAL-COSTCENTER = WA_XCEL-VALUE.
            WHEN '00021'.
            WA_FINAL-CO_AREA = WA_XCEL-VALUE.
            ENDCASE.
            at end of row.
          append WA_FINAL TO  IT_FINAL.
         clear WA_FINAL.
        endat.
    ENDLOOP.
    ENDFORM.

  • I am uploading an Excel Workbook (xlsx format) to convert to a pdf and it has taken over an hour and it is still not uploading. I have even tried to restart it and that did not work.

    I'm trying to upload an Excel Workbook (in xlsx format) to have it converted to a PDF file and that little circle has been spinning forever. I tried to restart the process but it did the same thing. So I tried to open up each individual worksheet of the workbook and save them individually. I "think" I got that to work, but when I go to the combine tab, I see the four pages that I have selected with spinning "thinking" circles on all of them. Please help. I have a client waiting for this proposal and I don't know what to do!
    LisaWoz

    Hi Lisa Wozniak,
    Are you on a slow Network Connection? I would recommend you to Clear the browser Cache and History and  then try again or try using a different browser on a different Network Connection.
    Let me know if it works or not.
    Regards,
    Rahul Tyagi

  • CX_SY_CONVERSION_NO_NUMBER?While uploading an Excel File.

    Hi,
    I am trying to upload an excel which contains customer number, shipping point details , time details....... The upload program was working before upgrade to ECC 6.0.
    But right now when i try to uplaod the file i get the following dump messege.
    Unable to interpret "*000" as a number.
    Can anyone tell me what is the correct number format and how I can resolve this problem.
    Regards,
    MD

    Hi 
    You may  check the excel value ,this error  show you ,it's not a number!
    thanks
    Edited by: Tom zhang on Jul 3, 2009 3:37 AM

Maybe you are looking for

  • Reading binary data from a URL

    Below are 2 snippets of code that read data from a binary file. A small sample of the output is shown at the bottom of each code fragment. The first one uses the URL class to read a remote file. The ouput for this fragment is incorrect in some cases.

  • Error within FIELD-command in dailogue-program (Release 4.6B)

    Hello together, I have a problem with a table-control in release 4.6b: We use the FIELD-command to transport the data from the screen to the ABAP-report. The field, which makes trouble is a currency-value (Format: CURR in the screen). The ABAP-field

  • 11 Updates not Installed Not Needed

    KB3021952 Kb3004361 KB3013445 KB3023562 KB3029944 KB3031432 KB2976978 KB3016074 KB3019858 KB3020338 And the Malicious Software Removal Tool Windows 8 and 8.1 for February 2015 All show up in Windows Update but won't install because it says they are N

  • Portable Hard Disk Drive

    Hi All, I am in the market to purchase a Portable Hard Disk Drive, as I had purchased an EZQ drive that is now DOA. I am interested in the LaCie Rugged line, but I was looking for more storage space for a good price. Any suggestions or help would be

  • SAP Career advice

    Hi I am kumar, MCA having Total 10Yrs of experience, working in SAP field for past 8 Years. First 3 to 4Years i was working as ABAP consultant, I tried to explore SD module but could not get chance to work as Functional consultant. After 4Years, It w