How to skip first record while inserting data from a flat file to BW system

Hi Experts,
In my project we have to upload flat file into a BW system. I have written a program and it is working fine.
Now we have got another requirement. The flat file will have a header record (first row). While uploading the flat file we have to skip this record. How I can do so?
The code is as below:
FORM upload1.
  DATA : wf_title    TYPE string,
          lt_filetab  TYPE filetable,
          l_separator TYPE char01,
          l_action    TYPE i,
          l_count     TYPE i,
          ls_filetab  TYPE file_table,
          wf_delemt TYPE rollname,
          wa_fieldcat TYPE lvc_s_fcat,
          tb_fieldcat TYPE lvc_t_fcat,
          rows_read TYPE i,
          p_error   TYPE char01,
          l_file      TYPE string.
  DATA: wf_object(30)  TYPE c,
          wf_tablnm TYPE rsdchkview.
  wf_object = 'myprogram'.
  DATA i TYPE i.
  DATA:
       lr_mdmt                TYPE REF TO cl_rsdmd_mdmt,
       lr_mdmtr               TYPE REF TO cl_rsdmd_mdmtr,
       lt_idocstate           TYPE rsarr_t_idocstate,
       lv_subrc               TYPE sysubrc.
  TYPES : BEGIN OF test_struc,
           /bic/myprogram TYPE  /bic/oimyprogram,
           txtmd   TYPE rstxtmd,
           END OF test_struc.
  DATA :    tb_assum TYPE TABLE OF /bic/pmyprogram.
  DATA: wa_ztext TYPE  /bic/tmyprogram,
        myprogram_temp TYPE ziott_assum,
        wa_myprogram TYPE /bic/pmyprogram.
  DATA : test_upload TYPE STANDARD TABLE OF test_struc,
         wa2 TYPE  test_struc.
  DATA : wa_test_upload TYPE test_struc,
         ztable_data TYPE TABLE OF /bic/pmyprogram,
         ztable_text TYPE TABLE OF /bic/tmyprogram,
         wa_upld_text TYPE /bic/tmyprogram,
         wa_upld_data TYPE /bic/pmyprogram,
          t_assum TYPE ziott_assum.
  DATA : wa1 LIKE  test_upload.
  wf_title = text-026.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = wf_title
      default_extension       = 'txt'
      file_filter             = 'Tab delimited Text Files (*.txt)'
    CHANGING
      file_table              = lt_filetab
      rc                      = l_count
      user_action             = l_action
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      OTHERS                  = 3.                          "#EC NOTEXT
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.
  LOOP AT lt_filetab INTO ls_filetab.
    l_file = ls_filetab.
  ENDLOOP.
  CHECK l_action = 0.
  IF l_file IS INITIAL.
    EXIT.
  ENDIF.
  l_separator = 'X'.
  wa_fieldcat-fieldname = 'test'.
  wa_fieldcat-dd_roll = wf_delemt.
  APPEND wa_fieldcat TO tb_fieldcat.
  CALL FUNCTION 'MESSAGES_INITIALIZE'.
  CLEAR wa_test_upload.
Upload file from front-end (PC)
File format is tab-delimited ASCII
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = l_file
      has_field_separator     = l_separator
    TABLES
     data_tab                = i_mara
    data_tab                   = test_upload
    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.
    EXIT.
  ELSE.
   CALL FUNCTION 'MESSAGES_INITIALIZE'.
    IF test_upload IS NOT INITIAL.
      DESCRIBE TABLE test_upload LINES rows_read.
      CLEAR : wa_test_upload,wa_upld_data.
      LOOP AT test_upload INTO wa_test_upload.
        CLEAR :  p_error.
        rows_read = sy-tabix.
        IF wa_test_upload-/bic/myprogram IS INITIAL.
          p_error = 'X'.
          MESSAGE s153 WITH wa_test_upload-/bic/myprogram sy-tabix.
          CONTINUE.
        ELSE.
          TRANSLATE wa_test_upload-/bic/myprogram TO UPPER CASE.
          wa_upld_text-txtmd  = wa_test_upload-txtmd.
          wa_upld_text-txtsh  = wa_test_upload-txtmd.
          wa_upld_text-langu =  sy-langu.
          wa_upld_data-chrt_accts = 'xyz1'.
          wa_upld_data-co_area = '12'.
          wa_upld_data-/bic/zxyzbcsg = 'Iy'.
          wa_upld_data-objvers = 'A'.
          wa_upld_data-changed = 'I'.
          wa_upld_data-/bic/zass_mdl = 'rrr'.
          wa_upld_data-/bic/zass_typ = 'I'.
          wa_upld_data-/bic/zdriver = 'yyy'.
          wa_upld_text-langu = sy-langu.
          MOVE-CORRESPONDING wa_test_upload TO wa_upld_data.
          MOVE-CORRESPONDING wa_test_upload TO wa_upld_text.
          APPEND wa_upld_data TO ztable_data.
          APPEND wa_upld_text TO ztable_text.
        ENDIF.
      ENDLOOP.
      DELETE ADJACENT DUPLICATES FROM ztable_data.
      DELETE ADJACENT DUPLICATES FROM ztable_text.
      IF ztable_data IS NOT INITIAL.
        CALL METHOD cl_rsdmd_mdmt=>factory
          EXPORTING
            i_chabasnm     = 'myprogram'
          IMPORTING
            e_r_mdmt       = lr_mdmt
          EXCEPTIONS
            invalid_iobjnm = 1
            OTHERS         = 2.
   CALL FUNCTION 'MESSAGES_INITIALIZE'.
   **Lock the Infoobject to update
        CALL FUNCTION 'RSDG_IOBJ_ENQUEUE'
          EXPORTING
            i_objnm      = wf_object
            i_scope      = '1'
            i_msgty      = rs_c_error
          EXCEPTIONS
            foreign_lock = 1
            sys_failure  = 2.
        IF sy-subrc = 1.
          MESSAGE i107(zddd_rr) WITH wf_object sy-msgv2.
          EXIT.
        ELSEIF sy-subrc = 2.
          MESSAGE i108(zddd_rr) WITH wf_object.
          EXIT.
        ENDIF.
*****Update Master Table
        IF ztable_data IS NOT INITIAL.
          CALL FUNCTION 'RSDMD_WRITE_ATTRIBUTES_TEXTS'
                EXPORTING
                  i_iobjnm                     = 'myprogram'
                  i_tabclass                   = 'M'
       I_T_ATTR                     = lt_attr
                TABLES
                  i_t_table                    = ztable_data
                  EXCEPTIONS
                 attribute_name_error         = 1
                 iobj_not_found               = 2
                 generate_program_error       = 3
                 OTHERS                       = 4.
          IF sy-subrc <> 0.
            CALL FUNCTION 'MESSAGE_STORE'
              EXPORTING
                arbgb  = 'zddd_rr'
                msgty  = 'E'
                txtnr  = '054'
                msgv1  = text-033
              EXCEPTIONS
                OTHERS = 3.
            MESSAGE e054(zddd_rr) WITH 'myprogram'.
          ELSE.
            CALL FUNCTION 'MESSAGE_STORE'
              EXPORTING
                arbgb  = 'zddd_rr'
                msgty  = 'S'
                txtnr  = '053'
                msgv1  = text-033
              EXCEPTIONS
                OTHERS = 3.
          ENDIF.
*endif.
*****update Text Table
          IF ztable_text IS NOT INITIAL.
            CALL FUNCTION 'RSDMD_WRITE_ATTRIBUTES_TEXTS'
              EXPORTING
                i_iobjnm               = 'myprogram'
                i_tabclass             = 'T'
              TABLES
                i_t_table              = ztable_text
              EXCEPTIONS
                attribute_name_error   = 1
                iobj_not_found         = 2
                generate_program_error = 3
                OTHERS                 = 4.
            IF sy-subrc <> 0.
              CALL FUNCTION 'MESSAGE_STORE'
                EXPORTING
                  arbgb  = 'zddd_rr'
                  msgty  = 'E'
                  txtnr  = '055'
                  msgv1  = text-033
                EXCEPTIONS
                  OTHERS = 3.
            ENDIF.
          ENDIF.
        ELSE.
          MESSAGE s178(zddd_rr).
        ENDIF.
      ENDIF.
      COMMIT WORK.
      CALL FUNCTION 'RSD_CHKTAB_GET_FOR_CHA_BAS'
        EXPORTING
          i_chabasnm = 'myprogram'
        IMPORTING
          e_chktab   = wf_tablnm
        EXCEPTIONS
          name_error = 1.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
****Release locks on Infoobject
      CALL FUNCTION 'RSDG_IOBJ_DEQUEUE'
        EXPORTING
          i_objnm = 'myprogram'
          i_scope = '1'.
    ENDIF.
  ENDIF.
  PERFORM data_selection .
  PERFORM update_alv_grid_display.
  CALL FUNCTION 'MESSAGES_SHOW'.
ENDFORM.
Please let me know how I can skip first record of the flat file?
Regards,
S

go through this hope u can get some idea
REPORT  ztest no standard page heading line-size 255.
                      Declaration                            *
TYPES t_itab1 TYPE alsmex_tabline.
types: begin of t_csks,
       kostl like csks-kostl,
      end of t_csks.
types: begin of t_cska,
       kstar like cska-kstar,
      end of t_cska.
data: begin of t_flatfile,
      docdate like COHEADER-BLDAT,
      postdate like COHEADER-BUDAT,
      doctext like COHEADER-BLTXT,
       costele like RK23F-KSTAR,
       amount like RK23F-WTGBTR,
       scostctr like RK23F-SKOSTL,
       rcostctr like RK23F-EKOSTL,
       rintorder like RK23F-EAUFNR,
     end of t_flatfile.
data: begin of t_flatfile1,
      docdate like COHEADER-BLDAT,
      postdate like COHEADER-BUDAT,
      doctext like COHEADER-BLTXT,
       costele like RK23F-KSTAR,
       amount like RK23F-WTGBTR,
       scostctr like RK23F-SKOSTL,
       rcostctr like RK23F-EKOSTL,
       rintorder like RK23F-EAUFNR,
       NUM LIKE SY-INDEX,
     end of t_flatfile1.
data: itab like table of t_flatfile with header line.
data: itab2 like table of t_flatfile1 with header line.
DATA: it_itab1 TYPE STANDARD TABLE OF t_itab1 WITH HEADER LINE,
      MESSTAB1 LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,
      MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
data: begin of bdcdata occurs 0.
        include structure bdcdata.
data: end of bdcdata.
data:t_lin type i VALUE '0',
     u_rec type i VALUE '0',
     s_rec type i VALUE '0'.
data: it_csks type standard table of t_csks,
      wa_csks type t_csks.
data: it_cska type standard table of t_cska,
      wa_cska type t_cska.
*Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME  TITLE text-010.
parameters: p_docdat  LIKE  COHEADER-BLDAT obligatory,
            p_postda LIKE  COHEADER-BUDAT obligatory,
            p_doctxt  LIKE  COHEADER-BLTXT.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME  TITLE text-011.
parameters: p_file LIKE RLGRAP-FILENAME obligatory,
            DIS_MODE LIKE CTU_PARAMS-DISMODE DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK b2.
              A T  S E L E C T I O N   S C R E E N                  *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_local_file_name USING p_file.
*Start of Selection
START-OF-SELECTION.
  Perform get_Excel_data.
  perform validate_data.
  Perform Process_Data.
                end-of-selection
end-of-selection.
  perform display_data.
*&      Form  get_local_file_name
      text
     -->P_P_FILE  text
FORM get_local_file_name  USING    P_P_FILE.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
      file_name = p_file.
ENDFORM.                    " get_local_file_name
*&      Form  get_Excel_data
      text
-->  p1        text
<--  p2        text
FORM get_Excel_data .
  FIELD-SYMBOLS : <FS>.
  DATA : V_INDEX TYPE I.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_file
      i_begin_col             = 1
    i_begin_row             = 2
      i_begin_row             = 1
      i_end_col               = 256
      i_end_row               = 9999                        "65536
    TABLES
      intern                  = it_itab1
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.
  IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    Message text-013 type 'E'.
  ENDIF.
  IF IT_ITAB1[] IS INITIAL.
    Message text-001 type 'E'.
  else.                                    "IF IT_ITAB1[] IS INITIAL.
    data: itab2 like itab occurs 0 with header line.
    SORT IT_ITAB1 BY ROW COL.
    LOOP AT IT_ITAB1.
      MOVE :IT_ITAB1-COL TO V_INDEX.
      ASSIGN COMPONENT V_INDEX OF STRUCTURE itab2 TO  <FS>.
      MOVE : IT_ITAB1-VALUE TO <FS>.
      AT END OF ROW.
        MOVE-CORRESPONDING itab2 TO itab.
        APPEND itab.
        CLEAR:itab,itab2.
      ENDAT.
    endloop.
    describe table itab lines t_lin.
  endif.               "IF IT_ITAB1[] IS INITIAL.
ENDFORM.                    " get_Excel_data
*&      Form  Process_Data
      text
-->  p1        text
<--  p2        text
FORM Process_Data .
  data:l_tabix type sy-tabix.
  data:l_periv like t001-periv,
       l_monat like bkpf-monat,
       l_gjahr like bkpf-gjahr,
       l_amt(21) type c.
  data: l_ddate(10),
        l_pdate(10).
  WRITE p_docdat TO l_ddate.
  WRITE p_postda TO l_pdate.
  clear: l_periv,l_monat,l_gjahr.
  select single periv from t001 into l_periv where bukrs = '5000'. "P_bukrs
  if sy-subrc eq 0.
    l_gjahr = p_postda+0(4).
    call function 'FI_PERIOD_DETERMINE'
      EXPORTING
        i_budat = p_postda
        i_bukrs = '5000'     "p_bukrs
        i_periv = l_periv
        i_gjahr = l_gjahr
      IMPORTING
        e_monat = l_monat.
    clear:l_periv.
  endif.
  loop at itab2.
    refresh:bdcdata.
    clear:bdcdata.
    l_tabix = sy-tabix.
    perform bdc_dynpro      using 'SAPLK23F1' '1200'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'COHEADER-SEND_REC_REL'
                                  '10SAP'.
    perform bdc_field       using 'RK23F-STATUS'
                                  'S'.
    perform bdc_field       using 'COHEADER-BLDAT'
                             itab-docdate.
                                  l_ddate.
    perform bdc_field       using 'COHEADER-BUDAT'
                             itab-postdate.
                                  l_pdate.
    perform bdc_field       using 'COHEADER-PERIO'
                                   l_monat.                 "'9'.
    perform bdc_field       using 'COHEADER-BLTXT'
                             itab-doctext.
                                  p_doctxt.
    perform bdc_field       using 'RK23F-KSTAR'
                                  itab2-costele.
    WRITE itab2-amount TO l_amt.
l_amt = itab-amount.
    condense l_amt no-gaps.
    perform bdc_field       using 'RK23F-WTGBTR'
                                   l_amt.
                             itab-amount.
    perform bdc_field       using 'RK23F-WAERS'
                                  'USD'.
*perform bdc_field       using 'RK23F-SGTXT'
                             itab-doctext.
    perform bdc_field       using 'RK23F-SKOSTL'
                                  itab2-scostctr.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RK23F-EAUFNR'.
    perform bdc_field       using 'RK23F-EKOSTL'
                                  itab2-rcostctr.
    perform bdc_field       using 'RK23F-EAUFNR'
                                  itab2-rintorder.
    perform bdc_dynpro      using 'SAPLK23F1' '1200'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=POST'.
    perform bdc_field       using 'COHEADER-SEND_REC_REL'
                                  '10SAP'.
    perform bdc_field       using 'RK23F-STATUS'
                                  'S'.
    perform bdc_field       using 'COHEADER-BLDAT'
                             itab-docdate.
                                  l_ddate.
    perform bdc_field       using 'COHEADER-BUDAT'
                              itab-postdate.
                                  l_pdate.
    perform bdc_field       using 'COHEADER-PERIO'
                             '9'.
                                    l_monat.
    perform bdc_field       using 'COHEADER-BLTXT'
                              itab-doctext.
                                  p_doctxt.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RK23F-KSTAR'.
    perform bdc_field       using 'RK23F-WAERS'
                                  'USD'.
    CALL TRANSACTION 'KB15N' USING BDCDATA MODE DIS_MODE MESSAGES INTO MESSTAB.
    If sy-subrc = 0.
      s_rec = s_rec + 1.
    ELSE.
      u_rec = u_rec + 1.
      move ITAB2-NUM to messtab1-msgv1.
      concatenate itab2-costele ' | ' itab2-scostctr  ' | '  itab2-rcostctr ' | ' itab2-rintorder  into  messtab1-msgv2.
      condense messtab1-msgv2.
      condense messtab1-msgv1.
      append messtab1.
    endif.
    clear:itab2.
  endloop.
ENDFORM.                    " Process_Data
      BDC_DYNPRO                                                     *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.                    "BDC_DYNPRO
       BDC_FIELD                                                     *
FORM BDC_FIELD USING FNAM FVAL.
  IF FVAL <> ''. "NODATA.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.                    "BDC_FIELD
*&      Form  display_data
      text
-->  p1        text
<--  p2        text
FORM display_data .
  skip 2.
  write:/15 text-002.
  skip 2.
  write:/8 text-003.
  SKIP.
  write:/12 text-008,
         25 P_DOCDAT.
  SKIP.
  write:/12 text-009,
         25 P_POSTDA.
  SKIP.
  write:/12 text-012,
          25 P_DOCTXT.
  SKIP.
  write:/12 text-004,
         25 p_file.
  skip 2.
  write:/8 text-005,
        60 t_lin.
  skip.
  write:/8 text-006,
        60 s_rec.
  skip.
  write:/8 text-007,
        60 u_rec.
  skip.
  write:/10 'row no',
         20 'Information'.
  skip.
  loop at messtab1.
    write:/10 messtab1-msgv1,
           20 messtab1-msgv2.
    clear:messtab1.
  endloop.
ENDFORM.                    " display_data
*&      Form  validate_data
      text
-->  p1        text
<--  p2        text
FORM validate_data .
  data: l_tabix1 type sy-tabix.
data: l_tabix2 type sy-tabix.
  if not itab[] is initial.
    select kostl from CSKS into table it_csks.
    if sy-subrc eq 0.
      sort it_csks by kostl.
    endif.
    select kstar from CSKA into table it_cska.
    if sy-subrc eq 0.
      sort it_cska by kstar.
    endif.
    loop at itab.
      l_tabix1 = sy-tabix.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT         = itab-scostctr
IMPORTING
   OUTPUT        = itab-scostctr .
      read table it_csks into wa_csks with key kostl = itab-scostctr.
      if sy-subrc ne 0.
        u_rec = u_rec + 1.
       L_TABIX2 = l_tabix1 + 1.
       move l_tabix2 to messtab1-msgv1.
        move l_tabix1 to messtab1-msgv1.
        move itab-rintorder to messtab1-msgv2.
        concatenate itab-costele  ' | ' itab-scostctr  ' | '  itab-rcostctr  ' | ' itab-rintorder  into  messtab1-msgv2.
        condense messtab1-msgv2.
        condense messtab1-msgv1.
        append messtab1.
        clear:wa_csks.
       CLEAR:L_TABIX2.
        continue.
      endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT         = itab-rcostctr
IMPORTING
   OUTPUT        = itab-rcostctr .
      read table it_csks into wa_csks with key kostl = itab-rcostctr.
      if sy-subrc ne 0.
        u_rec = u_rec + 1.
       L_TABIX2 = l_tabix1 + 1.
       move l_tabix2 to messtab1-msgv1.
        move l_tabix1 to messtab1-msgv1.
          concatenate itab-costele ' | ' itab-scostctr  ' | '  itab-rcostctr ' | ' itab-rintorder  into  messtab1-msgv2.
        condense messtab1-msgv2.
        condense messtab1-msgv1.
        append messtab1.
        clear:wa_csks.
       CLEAR:L_TABIX2.
        continue.
      endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT         = itab-costele
IMPORTING
   OUTPUT        = itab-costele .
      read table it_cska into wa_cska with key kstar = itab-costele.
      if sy-subrc ne 0.
        u_rec = u_rec + 1.
       L_TABIX2 = l_tabix1 + 1.
       move l_tabix2 to messtab1-msgv1.
        move l_tabix1 to messtab1-msgv1.
        concatenate itab-costele ' | ' itab-scostctr  ' | '  itab-rcostctr ' | ' itab-rintorder  into  messtab1-msgv2.
        condense messtab1-msgv2.
        condense messtab1-msgv1.
        append messtab1.
        clear:wa_csks.
       CLEAR:L_TABIX2.
        continue.
      endif.
move-corresponding itab to itab2.
MOVE l_tabix1  TO ITAB2-NUM.
append itab2.
clear: itab2.
      clear:itab.
    endloop.
  else.
    message 'No records in File'  type 'S'.
  endif.
ENDFORM.                    " validate_data

Similar Messages

  • Error while uploading data from a flat file

    Hi All,
    I am trying to load data from a flat file to an ODS. The flat file contains a field, say FLAT01, of numerical type(Type Decimal, Length 18, Decimals 2). I have created an infoobject, say ZIO10, with type CURR and currency field, 0CURRENCY. In the transfer rules, I have assigned a constant for 0CURRENCY as the flat file doesn't have any currecy field.
    The problem is the flat file doesn't have any value in that field, FLAT01, for some records, infact most of the records. When I try to load it to BW,from applicatin server, it is throwing an error "Contents from field ZIO10 cannot be converted in type CURR ->longtext".
    I have debugged the transfer rules and find that the empty value is being represented as '#' and when it is trying to copy it into the CURR type field, it is throwing the error.
    Can someone please let me know how to solve it? why is it taking '#' for enpty value? Can't we change that?
    Any help would be highly appreciated.
    Best Regards,
    James.
    Message was edited by:
            James Helsinki

    Hi SS,
    I am sorry that I was not clear with my explanation. I have created ZIO10 as a keyfigure with type AMOUNT and the currency as 0CURRENCY.
    There is no currency coming in from the flat file so I used a constant in transfer rules to fill 0CURRENCY.
    The field which is coming as '#' is FLAT01 which is assigned to ZIO10.
    Best Regards,
    James.

  • Error while uploading data from a flat file to the hierarchy

    Hi guys,
    after i upload data from a flat file to the hierarchy, i get a error message "Please select a valid info object" am loading data using PSA, having activated all external chars still get the problem..some help on this please..
    regards
    Sri

    there is o relation of infoobject name in flat file and infoobjet name at BW side.
    please check with the object in the BW and their lengths and type of the object and check your flat file weather u have the same type there,
    now check the sequence of the objects in the transfer rules  and activate them.
    there u go.

  • How to skip first records while reading a csv file

    Hi,
    How to skip the first 5 records while reading csv file.
    I have a file which contains first 5 records as dummy records, I want to skip those records and load the rest into RDBMS.
    How to achieve this?
    Thanks,
    Naveen Suram

    Hi Guru,
    Actually I have converted an excel to CSV format, which is generating first 4 rows as some dummy records. 5th row is my header record. But in hearder record, two column names are same. Thats why while reversing it is giving an error.
    With zero in number of columns in header, I am getting the column names as C1, C2...
    If not in reversing, can we reject the first records while loading into RDMBS table using an interface?
    Thanks,
    Naveen Suram

  • How to skip footer details when loading data from a .txt file

    Hello experts,
    i have to import data from a txt file into my database. I have skipped my header info by using SKIP but how can i ignore my footer details.
    Thanks

    Reply on your other thread:
    Processing txt file for a required format

  • How to load data from a  flat file which is there in the application server

    HI All,
              how to load data from a  flat file which is there in the application server..

    Hi,
    Firstly you will need to place the file(s) in the AL11 path. Then in your infopackage in "Extraction" tab you need to select "Application Server" option. Then you need to specify the path as well as the exact file you want to load by using the browsing button.
    If your file name keeps changing on a daily basis i.e. name_ddmmyyyy.csv, then in the Extraction tab you have the option to write an ABAP routine that generates the file name. Here you will need to append sy-datum to "name" and then append ".csv" to generate complete filename.
    Please let me know if this is helpful or if you need any more inputs.
    Thanks & Regards,
    Nishant Tatkar.

  • Step by Step details on how to load data from a flat file

    hi can anyone explain how to load data from a flat file. Pls giv me step by step details. thnx

    hi sonam.
    it is very easy to load data from flat file. whn compared with other extrations methods...
    here r the step to load transation data from a flat file.......
    step:1 create a Flat File.
    step:2 log on to sap bw (t.code : rsa1 or rsa13).
    and observe the flat file source system icon. i.e pc icon.
    step:3 create required info objects.
    3.1: create infoarea
         (infoObjects Under Modeling > infoObjects (root node)-> context menu -
    > create infoarea).
    3.2:  create char /keyfig infoObject Catalog.(select infoArea ---.context menu --->create infoObject catalog).
    3.3:   create char.. infoObj and keyFig infoObjects accourding to ur requirement and activate them.
    step:4 create infoSource for transaction data and create transfer structure and maintain communication structure...
        4.1: first create a application component.(select InfoSources Under modeling-->infosources<root node>>context menu-->create  applic...component)
       4.2: create infoSource  for transation data(select appl..comp--.context menu-->create infosource)
    >select O flexible update and give info source name..
    >continue..
    4.4: *IMp* ASSIGN DATASOURCE..
      (EXPAND APPLIC ..COMP..>EXPAND YOUR INFOSOURCE>CONTEXT MENU>ASSIGN DATASOURCE.)
    >* DATASOURCE *
    >O SOURCE SYSTEM: <BROWSE AND CHOOSE YOUR FLAT FILE SOURCE SYSTEM>.(EX:PC ICON).
    >CONTINUE.
    4.5: DEFINE DATASOURCE/TRANSFER STRUCTURE  FOR IN FOSOURCE..
    > SELECT TRANSFER STRUCTURE TAB.
    >FILL THE INFOOBJECT FILLED WITH THE NECESSARY  INFOOBJ IN THE ORDER OR SEQUENCE OF FLAT FILE STRUCTURE.
    4.6: ASSIGN TRANSFER RULES.
    ---> NOW SELECT TRANSFER RULES TAB. AND SELECT PROPOSE TRANSFER RULES SPINDLE LIKE ICON.
    (IF DATA TARGET IS ODS -
    INCLUDE 0RECORDMODE IN COMMUNICATION STRUCTURE.)
    --->ACTIVATE...
    STEP:5  CREATE DATATARGET.(INFOCUBE/ODS OBJECT).
    5.1: CREATE INFO CUBE.
    -->SELECT YOUR INFOAREA>CONTEXT MENU>CREATE INFOCUBE.
    5.2: CREATE INFOCUBE STRUCTURE.
    ---> FILL THE STRUCTURE PANE WILL REQUIRE INFOOBJECTS...(SELECT INFOSOURCE ICON>FIND UR INFOSOURCE >DOUBLE CLICK > SELECT "YES" FOR INFOOBJECT ASSIGNMENT ).
    >MAINTAIN ATLEAST  ON TIME CHAR.......(EX; 0CALDAY).
    5.3:DEFINE AND ASSIGN DIMENSIONS FOR YOUR CHARACTERISTICS..
    >ACTIVATE..
    STEP:6 CREATE UPDATE RULES FOR INFOCUDE USING INFOSOURCE .
    >SELECT UR INFOCUBE >CONTEXT MENU> CREATE UPDATE RULES.
    > DATASOURCE
    > O INFOSOURCE : _________(U R INFOSOURCE). AND PRESS ENTER KEY.......
    >ACTIVATE.....UR UPDATE RULES....
    >>>>SEE THE DATA FLOW <<<<<<<<----
    STEP:7  SCHEDULE / LOAD DATA..
    7.1 CREATE INFOPACKAGE.
    --->SELECT INFOSOURCE UNDER MODELING> EXPAND UR APPLIC.. COMP..> EXPAND UR INFOSOURCE..> SELECT UR DATASOURCE ASSIGN MENT ICON....>CONTEXT MENU> CREAE INFOPACKAGE..
    >GIVE INFOPACKAGE DISCREPTION............_________
    >SELECT YOUR DATA SOURCE.-------> AND PRESS CONTINUE .....
    >SELECT EXTERNAL DATA TAB...
    > SELECT *CLIENT WORKSTATION oR APPLI SERVER  >GIVE FILE NAME > FILE TYPE> DATA SAPARATER>
    >SELECT PROCESSING TAB
    > PSA AND THEN INTO DATATARGETS....
    >DATATARGET TAB.
    >O SELECT DATA TARGETS
    [ ] UPDATE DATATARGET CHECK BOX.....
    --->UPDATE TAB.
    O FULL UPDATE...
    >SCHEDULE TAB..
    >SELECT O START DATA LOAD IMMEDIATELY...
    AND SELECT  "START" BUTTON........
    >>>>>>>>>>
    STEP:8 MONITOR DATA
    > CHECK DATA IN PSA
    CHECK DATA IN DATA TARGETS.....
    >>>>>>>>>>> <<<<<<<<<----
    I HOPE THIS LL HELP YOU.....

  • Uploading the data from a flat file into ztable

    Hi,
    I have a requirement where I have to upload the data from 2 flat files into 2 z tables(ZRB_HDR,ZRB_ITM).From the 1st flat file only data for few fields have to be uploaded into ztable(ZRB_HRD) .Fromthe 2nd flat file data for all the fields have to me uploaded into ztable(ZRB_ITM). How can I do this?
    Regards,
    Hema

    hi,
    declare two internal table with structur of your tables.
    your flat files should be .txt files.
    now make use of GUI_UPLOAD function module to upload your flatfile into internal tables.
    CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = 'c:\file1.txt'
          has_field_separator = 'X'
        TABLES
          data_tab            = itab1
        EXCEPTIONS
          OTHERS              = 1.
    use this function twice for two tables.
    then loop them individually and make use of insert command.

  • Problem in the BDC program to upload the data from a flat file.

    Hi,
    I am required to write a BDC program to upload the data from a flat file. The conditions are as mentioned below:-
    1) Selection Screen will be prompted to user and user needs to provide:- File Path on presentation server (with F4 help for this obligatory parameter) and File Separator e.g. @,#,$,%,... etc(fields in the file will be separated by using this special character) or fields may be separated by tab(tab delimited).
    2) Finally after the data is uploaded, following messages need to be displayed:-
    a) Total Number of records successfully uploaded.
    b) Session Name
    c) Number of Sessions created.
    Problem is when each record is fetched from flat file, the record needs to be split into individual fields separated by delimiter or in case tab separated, then proceeding in usual manner.
    It would be great if you provide me either the logic, pseudocode, or sample code for this BDC program.
    Thanks,

    Here is an example program,  if you require the delimitor to be a TAB, then enter TAB on the selection screen, if you require the delimitor to be a comma, slash, pipe, whatever, then simply enter that value.  This example is simply the uploading of the file, not the BDC, I assume that you know what to do once you have the data into the internal table.
    REPORT zrich_0001.
    TYPES: BEGIN OF ttab,
            rec TYPE string,
           END OF ttab.
    TYPES: BEGIN OF tdat,
           fld1(10) TYPE c,
           fld2(10) TYPE c,
           fld3(10) TYPE c,
           fld4(10) TYPE c,
           END OF tdat.
    DATA: itab TYPE TABLE OF ttab.
    data: xtab like line of itab.
    DATA: idat TYPE TABLE OF tdat.
    data: xdat like line of idat.
    DATA: file_str TYPE string.
    DATA: delimitor TYPE string.
    PARAMETERS: p_file TYPE localfile.
    PARAMETERS: p_del(5) TYPE c.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      DATA: ifiletab TYPE filetable.
      DATA: xfiletab LIKE LINE OF ifiletab.
      DATA: rc TYPE i.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        CHANGING
          file_table = ifiletab
          rc         = rc.
      READ TABLE ifiletab INTO xfiletab INDEX 1.
      IF sy-subrc = 0.
        p_file = xfiletab-filename.
      ENDIF.
    START-OF-SELECTION.
      TRANSLATE p_del TO UPPER CASE.
      CASE p_del.
        WHEN 'TAB'.
          delimitor = cl_abap_char_utilities=>horizontal_tab.
        WHEN others.
          delimitor = p_del.
      ENDCASE.
      file_str = p_file.
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename = file_str
        CHANGING
          data_tab = itab.
      LOOP AT itab into xtab.
        CLEAR xdat.
        SPLIT xtab-rec AT delimitor INTO xdat-fld1
                                         xdat-fld2
                                         xdat-fld3
                                         xdat-fld4.
        APPEND xdat to idat.
      ENDLOOP.
      LOOP AT idat into xdat.
        WRITE:/ xdat-fld1, xdat-fld2, xdat-fld3, xdat-fld4.
      ENDLOOP.
    Regards,
    Rich Heilman

  • Uploading Data from a Flat File

    Hi
    I am trying to Upload data from a Flat File to the MDS. I have a few questions on the Process.
    a) XI would be the Interface, and one end would be a file adapter with the Flat File format. On the other end, which Interface should I use - ABA Business Partner In or MDM Business Partner In. I do not understand the differences between them and where should which one be used?
    B) At the moment,I want to map the data to standard Object type, Business Partner  BUS1006. This also has a staging area already defined in the System. Can I view the data which is imported into the Staging area ? How so ?
    C) The struture (or data) that I wish to upload has few fields, and does not map to the BP structure easily. In such a scenario does it make sense to
    Create a new Object type
    (ii) Create a new Business Partner type with the appropriate fields only ..
    What I need to know is if either of these options is feasible and what are the pros & cons of doing this, in terms of effort, skillset & interaction with SAP Development ?
    Kindly do reply if you have any answers to these questions.
    Regards,
    Gaurav

    Hi Markus,
    Thanks for your inputs.
    I have tried uploading some dats from a Flat file to the Business Partner Onject type, BUS1006. I initially got some ABAP Parsing errors on the MDM side, but after correcting that, I find my message triggers a short dump - with the Method SET_OBJECTKEYS, not finding any keys in the BP structure that has been created.
    Q1 - How do I get around this problem ? Is it necessary for me to specify Keys in the PartyID node of the Interface ABABusinessPartnerIn. or is it something else ?
    Q2 - How is this general process supposed to work? I would assume that for staging, I would get incomplete Master data or data from flat files, which need not neccesarily contain keys. The aim is to use the matching strategies in the CI to identify duplicates and consolidate them.
    Thanks in advance for your reply.
    Regards,
    Gaurav

  • BAPI to upload data from a flat file to VA01

    Hi guys,
    I have a requirement wherein i need to upload data  from a flat file to VA01.Please tell me how do i go about this.
    Thanks and regards,
    Frank.

    Hi
    previously i posted code also
        Include           YCL_CREATE_SALES_DOCU                         *
         Form  salesdocu
         This Subroutine is used to create Sales Order
         -->P_HEADER           Document Header Data
         -->P_HEADERX          Checkbox for Header Data
         -->P_ITEM             Item Data
         -->P_ITEMX            Item Data Checkboxes
         -->P_LT_SCHEDULES_IN  Schedule Line Data
         -->P_LT_SCHEDULES_INX Checkbox Schedule Line Data
         -->P_PARTNER  text    Document Partner
         <--P_w_vbeln  text    Sales Document Number
    DATA:
      lfs_return like line of t_return.
    FORM create_sales_document changing P_HEADER  like fs_header
                                       P_HEADERX like fs_headerx
                                       Pt_ITEM   like t_item[]
                                       Pt_ITEMX  like t_itemx[]
                                       P_LT_SCHEDULES_IN  like t_schedules_in[]
                                       P_LT_SCHEDULES_INX like t_schedules_inx[]
                                       Pt_PARTNER  like t_partner[]
                                       P_w_vbeln  like w_vbeln.
    This Perform is used to fill required data for Sales order creation
      perform sales_fill_data changing p_header
                                       p_headerx
                                       pt_item
                                       pt_itemx
                                       p_lt_schedules_in
                                       p_lt_schedules_inx
                                       pt_partner.
    Function Module to Create Sales and Distribution Document
      perform sales_order_creation using p_header
                                         p_headerx
                                         pt_item
                                         pt_itemx
                                         p_lt_schedules_in
                                         p_lt_schedules_inx
                                         pt_partner.
      perform return_check using p_w_vbeln .
    ENDFORM.                                 " salesdocu
        Form  commit_work
        To execute external commit                                    *
    FORM commit_work .
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
       WAIT          = c_x
    ENDFORM.                                 " Commit_work
    Include ycl_sales_order_header          " To Fill Header data and Item data
    Include ycl_sales_order_header.
         Form  return_check
        To validate the sales order creation
    FORM return_check using pr_vbeln type vbeln.
    if pr_vbeln is initial.
        LOOP AT t_return into lfs_return .
          WRITE / lfs_return-message.
          clear lfs_return.
        ENDLOOP.                             " Loop at return
      else.
        perform commit_work.                 " External Commit
        Refresh t_return.
        fs_disp-text = text-003.
        fs_disp-number = pr_vbeln.
        append fs_disp to it_disp.
      if p_del eq c_x or p_torder eq c_x or
        p_pgi eq c_x or p_bill eq c_x.
        perform delivery_creation.           " Delivery order creation
        endif.                               " If p_del eq 'X'......
      endif.                                 " If p_w_vbeln is initial
    ENDFORM.                                 " Return_check
    *&      Form  sales_order_creation
          text
         -->P_P_HEADER  text
         -->P_P_HEADERX  text
         -->P_PT_ITEM  text
         -->P_PT_ITEMX  text
         -->P_P_LT_SCHEDULES_IN  text
         -->P_P_LT_SCHEDULES_INX  text
         -->P_PT_PARTNER  text
    FORM sales_order_creation  USING    P_P_HEADER like fs_header
                                        P_P_HEADERX like fs_headerx
                                        P_PT_ITEM like t_item[]
                                        P_PT_ITEMX like t_itemx[]
                                        P_P_LT_SCHEDULES_IN like t_schedules_in[]
                                        P_P_LT_SCHEDULES_INX like t_schedules_inx[]
                                        P_PT_PARTNER like t_partner[].
        CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
        EXPORTING
          sales_header_in     = p_p_header
          sales_header_inx    = p_p_headerx
        IMPORTING
          salesdocument_ex    = w_vbeln
        TABLES
          return              = t_return
          sales_items_in      = p_pt_item
          sales_items_inx     = p_pt_itemx
          sales_schedules_in  = p_p_lt_schedules_in
          sales_schedules_inx = p_p_lt_schedules_inx
          sales_partners      = p_pt_partner.
    ENDFORM.                    " sales_order_creation
    plzz reward if i am usefull plzz

  • What is the best way to load and convert data from a flat file?

    Hi,
    I want to load data from a flat file, convert dates, numbers and some fields with custom logic (e.g. 0,1 into N,Y) to the correct format.
    The rows where all to_number, to_date and custom conversions succeed should go into table STG_OK. If some conversion fails (due to an illegal format in the flat file), those rows (where the conversion raises some exception) should go into table STG_ERR.
    What is the best and easiest way to archive this?
    Thanks,
    Carsten.

    Hi,
    thanks for your answers so far!
    I gave them a thought and came up with two different alternatives:
    Alternative 1
    I load the data from the flat file into a staging table using sqlldr. I convert the data to the target format using sqlldr expressions.
    The columns of the staging table have the target format (date, number).
    The rows that cannot be loaded go into a bad file. I manually load the data from the bad file (without any conversion) into the error table.
    Alternative 2
    The columns of the staging table are all of type varchar2 regardless of the target format.
    I define data rules for all columns that require a later conversion.
    I load the data from the flat file into the staging table using external table or sqlldr without any data conversion.
    The rows that cannot be loaded go automatically into the error table.
    When I read the data from the staging table, I can safely convert it since it is already checked by the rules.
    What I dislike in alternative 1 is that I manually have to create a second file and a second mapping (ok, I can automate this using OMB*Plus).
    Further, I would prefer using expressions in the mapping for converting the data.
    What I dislike in alternative 2 is that I have to create a data rule and a conversion expression and then keep the data rule and the conversion expression in sync (in case of changes of the file format).
    I also would prefer to have the data in the staging table in the target format. Well, I might load it into a second staging table with columns having the target format. But that's another mapping and a lot of i/o.
    As far as I know I need the data quality option for using data rules, is that true?
    Is there another alternative without any of these drawbacks?
    Otherwise I think I will go for alternative 1.
    Thanks,
    Carsten.

  • Data from a Flat file int a Cube

    Hi experts!
    Just a quick one, could we load data from a flat file directly to an infocube?
    Or we woud need to create a ODS to load that from the flat file there and later on form the ODS to the cube?
    Thanks you very much for your time!!

    Hi,
    You can directly load the flat data into the info cube. This should not be a problem.
    Create a flat file datasource according to the structure of the flat file. Create Transformations and DTP to the Cube.
    Load the flat file data into the PSA and then DTP the request into the cube.
    If the flat file load is a full load and one time load and data has to be deleted and loaded on the next load then above approach is fine.
    But if your load is every day load and delta then it would be appropriate to have a DSO in between the data flow.
    Hope it helps.

  • How to extract data from multiple flat files to load into corresponding tables in SQL Server 2008 R2 ?

    Hi,
              I have to implement the following scenario in SSIS but don't know how to do since I never worked with SSIS before. Please help me.
              I have 20 different text files in a single folder and 20 different tables corresponding to each text file in SQL Server 2008 R2 Database. I need to extract the data from each text file and
    load the data into corresponding table in Sql Server Database. Please guide me in how many ways I can do this and which is the best way to implement this job.  Actually I have to automate this job. Few files are in same format(with same column names
    and datatypes) where others are not.
    1. Do I need to create 20 different projects ?
                   or
        Can I implement this in only one project by having 20 packages?
                 or
        Can I do this in one project with only one package?
    Thanks in advance.

    As I said I don't know how to use object data type, I just given a shot as below. I know the following code has errors can you please correct it for me.
    Public
    Sub Main()
    ' Add your code here 
    Dim f1
    As FileStream
    Dim s1
    As StreamReader
    Dim date1
    As
    Object
    Dim rline
    As
    String
    Dim Filelist(1)
    As
    String
    Dim FileName
    As
    String
    Dim i
    As
    Integer
    i = 1
    date1 =
    Filelist(0) =
    "XYZ"
    Filelist(1) =
    "123"
    For
    Each FileName
    In Filelist
    f1 = File.OpenRead(FileName)
    s1 = File.OpenText(FileName)
    rline = s1.ReadLine
    While
    Not rline
    Is
    Nothing
    If Left(rline, 4) =
    "DATE"
    Then
    date1 (i)= Mid(rline, 7, 8)
     i = i + 1
    Exit
    While
    End
    If
    rline = s1.ReadLine
    End
    While
    Next
    Dts.Variables(
    "date").Value = date1(1)
    Dts.Variables(
    "date1").Value = date1(2)
    Dts.TaskResult = ScriptResults.Success
    End
    Sub

  • Dump while downloading data from Application Server File in 4.6 system

    Hi,
    When we are trying to upload data from Application Server to internal table using dataset statements, it is resulting in a dump. System we are using is 4.6c.
    When we faced similar kind of issue in ECC version, we have used the statement, Ignoring Conversion Errors.
    Please let me know how to handle this situation in 4.6 System.
    Thanks for your inputs.
    Regards,
    Phani

    Hi All,
    I am sorry. My question was wrong. It should be while uploading data from internal table to application server, if there are any special characters, it is going to dump.
    I will let you know the dump details and code at the earliesst.
    Sorry and Thanks again for your prompt response.
    Regards,
    Phani.

Maybe you are looking for

  • Layout problem in screen painter

    hi all,         the screen is not appearing when i click 'layout' button in screen painter when i am enabling a wsp client proxy server. Is there any solution?

  • Adobe reader crashes when 2 fillable PDF's are open

    We are having trouble with Adobe reader on all levels. versions 9 10 and 11 are having this problem. When we have 2 fillable PDF's open and we Tab in one or copy and paste from one to another the program crashes with no warnings. It will close both f

  • Goa for product category

    Hi experts I am creating a GOA with 2 items, one for product category and one for normal item, but an error occur 'No condition price exist for item 1', someone knows if it's normal? As a know there is no conditions for product categories. Thanks in

  • How to use Java Action in fault policy

    Hi , I want to execute custom java Action as fault handler in fault-policy implemntation. I have done but it is not working. I am putting code for fault-policies.xml and also java Action class. <?xml version="1.0" encoding="UTF-8"?> <faultPolicies xm

  • "fpsane.cpp" in line 269 appears when trying to save ma VI after the 1st run!

    Hi LV-users, this is a problem some of you may had before. But I still don't know how to solve this problem. LV crashes when I try to save my VI after the 1st run telling me about the fpsane.cpp-error. It also tells about "INSANE object at FPHP+3EE4