Flat file duplicates

Hello,
I’m extracting attributes from flat file with 1M records. The flat file contains duplicate records. In the end of the extraction I want to know which records are duplicated (error list that I have to fix). I can find the error records in the PSA but I have to go thorough many data packages. Is it possible to get on list with all the duplicated records (not separated to data packages)?
Regards,
David

Hi,
By saying selecting ennormous records while going into PSA, I mean to say while going into PSA it shows all the data packet names with selection options like max no of records, from to, records only = ennormous this option will show you only the error records.
If not BI7 then check in details and follow the second option which I suggested. This will give you the data packet number having error records and you can easily go inside that data pack and select by red status.
Mayank

Similar Messages

  • How to find out duplicate record contained in a flat file

    Hi Experts,
    For my project I have written a program for flat file upload.
    Requirement 1
    In the flat file there may be some duplicate record like:
    Field1   Field2
    11        test1
    11        test2
    12        test3
    13        test4
    Field1 is primary key.
    Can you please let me know how I can find out the duplicate record.
    Requirement 2
    The flat file contains the header row as shown above
    Field1   Field2
    How our program can skip this record and start reading / inserting records from row no 2 ie
    11        test1
    onwards.
    Thanks
    S
    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.

    Can you please let me know how I can find out the duplicate record.
    you need to split the records from flat file structure into your internal table ans use a delete ADJACENT duplicates comparing fields
    split flat_str into wa_f1 wa_f2 wa_f2 at tab_space.

  • Hierarchy from flat file loading with errors - duplicate node names

    Hello experts,
    I am loading a product hierarchy from a flat file into a custom hierarchy
    object.  The issue is that it errors out saying I am loading
    duplicates within nodes, however all node IDs within a level are unique.
    It seems to be looking at the node name to determine uniqueness and I know
    we have some duplication within the text there especially when you factor
    in the 32 character limitation for the node name.  Does anyone have an idea
    as to whether it is possible to have it only consider the node ID instead
    of the node name to determine uniqueness?
    A colleague suggested using the link ID to fix this problem but I don't know how that field works or how to populate it.
    I'm working in a BI 7.0 environment (I don't know if that makes a difference since you still have to use the 3.x objects to extract the hierarchy).
    Any help would be appreciated.
    Nancy

    Hi Nancy,
    You may wish to check this OSS Note 1026749 - Hierarchies: Consistency check for duplicate nodes and 912115 (old one)
    Symptom -
    When you load or activate a hierarchy it terminates with error message RH 109 or RH 211. The hierarchy contains duplicate nodes and this is not allowed. The long texts of messages RH 109 or RH 211 do not describe the reason for the problem sufficiently or they are partially incorrect.
    There is uncertainty about in which cases duplicate nodes exist in a hierarchy and in which cases duplicate nodes are allowed.
    Hope this helps,
    Bye...
    Naga Timmaraju

  • How can i duplicate records from a flat file to a cube

    Hi all,
    i got the next problem, i m loading a flat file, fur example:
    Material KF1 KF2
    A 10 12
    B 25 30
    01 02
    I Need duplicate the records for material A and B but with the values of Not assign, in other words the result in the cube would be like this:
    Material KF1 KF2
    A 10 12
    B 25 30
    01 02
    A 01 02
    B 01 02
    How can i do this, i know this must be a rutine, but where in the star? final? expert rutine? and how would be the code to do it, help guys and thanks!

    you can use end routine to accomplish that...
    hope the below code helps...
    DATA : IT_RESULT_PACKAGE LIKE TABLE OF RESULT_PACKAGE.
    DATA : WA_RESULT_PACKAGE LIKE RESULT_PACKAGE.
    SORT RESULT_PACKAGE BY MATERIAL.
    IT_RESULT_PACKAGE[] = RESULT_PACKAGE[].
    LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
    READ TABLE RESULT_PACKAGE INTO WA_RESULT_PACKAGE WITH KEY MATERIAL IS INITIAL BINARY SEARCH.
    IF SY-SUBRC = 0.
    WA_RESULT_PACKAGE-MATERIAL = <RESULT_FIELDS>-MATERIAL.
    APPEND WA_RESULT_PACKAGE INTO IT_RESULT_PACKAGE.
    CLEAR WA_RESULT_PACKAGE.
    ENDIF.
    ENDLOOP.
    CLEAR RESULT_PACKAGE[].
    RESULT_PACKAGE[] = IT_RESULT_PACKAGE[].
    this code will be suitable only if the material as unique entry with initial value...
    else you would require to use a loop statement instead of the read statement which has been used...
    rgds, Ghuru

  • Find out duplicate rows in a flat file before using sqlldr

    Hello i want to import via sqlldr from a flat file to a table inside my data base. My flat file has unfortunately some duplicate copies inside. So, i defined my upload table with two primary keys- date and time(and sometimes there are more than one row with the same time and date inside the flat file). These primaries are important to me because i want to use them for later tables and i can't use the direct path and parallel method by using primaries.
    Is there any tool which can find duplicate copies before i use sqlldr. But, the special case here is, that the rows not really duplicated but date and time rows twice. And for my interest it isn't necessary whether there are different values in the second row of the same date and time. The file contains data which is monitored every second and that's enough.
    It would be nice if someone could help me
    cheers

    I simply upload from sqlldr to staging tables first.
    The staging tables allow duplicates then I do what I need to do in regards to duplicates or missing data during the transfer from the staging tables to the real tables.
    The staging tables are also global temporary tables so I don't have to worry about cleaning them up or multiple sessions trampling each other.
    I have also used an external table on the datafile instead of sqlldr, this allows me to get rid of the staging table. But that is only good for very small datasets in the file being loaded.

  • Duplicate records in flat file extracted using openhub

    Hi folks
    I am extracting data from the cube to opnhub into a flat file, I see duplicate records in the file.
    I am doing a full load to a flat file
    I cannot have technical key because I am using a flat file.
    Poonam

    I am using aggregates(In DTP there is a option to use aggregates) and the aggregates are compressed and I am still facing thiis issue.
    Poonam

  • 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

  • How can I load a flat file into a ZTABLE dynamically

    I need to create a program which can Load a ZTABLE from a flat file structure (delimited and fixed options required).  We have many ZTables where this will be required so I was hoping to do it dynamically somehow.  Otherwise I will have to create one ABAP for every ZTable we have to load.
    My Inputs should be
    PARAMETERS:  p_ztable TYPE ddobjname,         "Z Table Name
                 p_infile(132) LOWER CASE,        "File Name
                 p_delim(1).                      "Delimiter
      I know that I can read the file by using gui_upload
        CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = c_infile
          has_field_separator     = p_delim
        TABLES
          data_tab                = indata
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
            OTHERS                  = 9.
    I know that  I can split the contents of this file (if a delimiter is used).  However I will not know the actual field names of the table until runtime as to what to fields to split it into.  In the example below I have the actual table (t_rec) and each of the fields (pernr, lgart, etc) in the code but each table I
    need to load will be different – it will have a different # of fields as well.
    FORM read_data_pc.
      LOOP AT indata.
        PERFORM splitdata USING indata.
        APPEND t_rec.
        CLEAR t_rec.
      ENDLOOP.
    ENDFORM.
    FORM splitdata USING p_infile.
       SPLIT p_infile AT p_delim INTO
            t_rec-pernr                 "Employee #
            t_rec-lgart                 "Wage Type
            t_rec-begda                 "Effective date
            t_rec-endda.                 "End date
      ENDFORM.                       
    Once I split the data into the fields then I can just look and insert the record.
    Does anyone have any ideas?  Specific code examples would be great if you do.  Thx!!

    Hi janice,,
    Try this sample code where you can upload data from a flat file into the internal table.
    REPORT  z_test.
    TABLES: mara.
    FIELD-SYMBOLS : <fs> .
    DATA : fldname(50) TYPE c.
    DATA : col TYPE i.
    DATA : cmp LIKE TABLE OF rstrucinfo WITH HEADER LINE.
    DATA: progname LIKE sy-repid,
    dynnum LIKE sy-dynnr.
    DATA itab TYPE TABLE OF alsmex_tabline WITH HEADER LINE.
    DATA: BEGIN OF ZUPLOAD1_T OCCURS 0 ,
             matnr like mara-matnr,
             ersda like mara-ersda,
             ernam like mara-ernam,
             laeda like mara-laeda,
          END OF ZUPLOAD1_T.
    *DATA: ZUPLOAD1_T LIKE mara OCCURS 0 WITH HEADER LINE.
    DATA: wa_data LIKE TABLE OF  ZUPLOAD1_T WITH HEADER LINE.
    selection-screen
    SELECTION-SCREEN: BEGIN OF BLOCK blk WITH FRAME TITLE text-001.SELECTION-SCREEN : SKIP 1. PARAMETERS : p_file LIKE rlgrap-filename.SELECTION-SCREEN : SKIP 1.SELECTION-SCREEN : END OF BLOCK blk
    . AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    F4 Value for File
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'   EXPORTING
                          PROGRAM_NAME        = SYST-REPID
                          DYNPRO_NUMBER       = SYST-DYNNR
                          FIELD_NAME          = ' '
         static              = 'X'
                          MASK                = ' '
        CHANGING      file_name           = p_file   EXCEPTIONS     mask_too_long       = 1     OTHERS              = 2 
              .  IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    START-OF-SELECTION.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' 
    EXPORTING    filename                      = P_FILE   
    i_begin_col                   = 1   
    i_begin_row                   = 1   
    i_end_col                     = 5   
    i_end_row                     = 12507 
         tables   
       intern                        = ITAB
    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.
    CALL FUNCTION 'GET_COMPONENT_LIST' 
    EXPORTING  
        program          = SY-REPID   
        fieldname        = 'ZMARA' 
           tables   
           components       = CMP.
    LOOP AT itab.    AT NEW row.     
    IF sy-tabix = 1.        APPEND ZUPLOAD1_T.     
    ENDIF.   
    ENDAT.   
    col = itab-col.   
    READ TABLE cmp INDEX col.  
    CONCATENATE 'ZUPLOAD1_T-' cmp-compname INTO fldname.  
    ASSIGN (fldname) TO <fs>.  
    <fs> = itab-COL.  
      APPEND ZUPLOAD1_T.  ENDLOOP.
    DELETE ZUPLOAD1_T where matnr eq space.
    LOOP AT ZUPLOAD1_T INTO wa_data.
    insert mara from  wa_data .
        WRITE: / ZUPLOAD1_T-matnr, 20 ZUPLOAD1_T-ersda , 45 ZUPLOAD1_T-ernam, 55 ZUPLOAD1_T-laeda.
    *HERE IAM JUST CHECKING I NEED TO UPDATE A ZTABLE
      ENDLOOP.
    insert ZMARA FROM table itab ACCEPTING DUPLICATE KEYS.
    I have tried it for mara.Please let me know whether it was helful.
    Regards,
    Kannan

  • 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

  • Flat-file Reconciliaiton

    I have used the following link to perform a flat-file reconciliation. I assumed this sample would handle adds, updates and deletions. However, that does not seem to be the case. If I modify or delete an existing record from the file and then re-run the recon I get errors that process failed. For the modifications it complains about a duplicate ID. Is there some other configurations that I need to do in order to make this work?
    A second question I have is there a way to build custom Mapping Actions? I need to create on that generates a login based on the first and last name instead of it being passed in as in the example. I would also like a Concat action that allows more than two attributes.
    Thanks,
    Pete

    I have been able to complete a successfully creation. However, I am still unable to successfully capture updates or deletes. I am using the Process Definition that was created by the GTC. By default the Process has the following tasks: Reconciliation Update Received and Reconciliation Delete Received. I assume that these are the tasks that should handle the update and deletes, respectively.
    As far as I can tell the error I am getting during an update is the following:
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataBase/readPartialStatement entered.
    INFO,06 Oct 2009 14:05:50,166,[XELLERATE.DATABASE],DB read: select evt.evt_key, evt.evt_name, evt.evt_package from dob dob, evt evt, dvt dvt where dob.dob_key=dvt.dob_key and dvt.evt_key=evt.evt_key and (dob.dob_name='com.thortech.xl.dataobj.tcRCE' or dob.dob_name='com.thortech.xl.dataobj.tcTableDataObj' or dob.dob_name='com.thortech.xl.dataobj.tcDataObj' ) and dvt.dvt_post_update_sequence>0 order by dvt.dvt_post_update_sequence
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.DATABASE],select evt.evt_key, evt.evt_name, evt.evt_package from dob dob, evt evt, dvt dvt where dob.dob_key=dvt.dob_key and dvt.evt_key=evt.evt_key and (dob.dob_name='com.thortech.xl.dataobj.tcRCE' or dob.dob_name='com.thortech.xl.dataobj.tcTableDataObj' or dob.dob_name='com.thortech.xl.dataobj.tcDataObj' ) and dvt.dvt_post_update_sequence>0 order by dvt.dvt_post_update_sequence
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj/update left.
    ERROR,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj/save Error :Data Update Failed
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataBase/getError entered.
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataBase/readPartialStatement entered.
    INFO,06 Oct 2009 14:05:50,166,[XELLERATE.DATABASE],DB read: select err_key, err_code, err_desc, err_rowver, err_remedy, err_count, err_last_occurance, err_action, err_help_url, err_severity from err where err_code='DOBJ.UPDATE_FAILED'
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.DATABASE],select err_key, err_code, err_desc, err_rowver, err_remedy, err_count, err_last_occurance, err_action, err_help_url, err_severity from err where err_code='DOBJ.UPDATE_FAILED'
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataBase/substitute entered.
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataBase/substitute entered.
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isAction - Value: E
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isCode - Value: DOBJ.UPDATE_FAILED
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isDescription - Value: Update failed.
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isRemedy - Value:
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isDetail - Value:
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcErrorList/addError entered.
    DEBUG,06 Oct 2009 14:05:50,166,[XELLERATE.SERVER],Class/Method: tcDataObj/doRollback entered.
    ERROR,06 Oct 2009 14:05:50,166,[XELLERATE.DATABASE],Class/Method: tcDataBase/rollbackTransaction encounter some problems: Rollback Executed From
    java.lang.Exception: Rollback Executed From
    at com.thortech.xl.dataaccess.tcDataBase.rollbackTransaction(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.rollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.doRollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.finishDataReceived(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.finishReconciliationEvent(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.execute(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.MessageProcessUtil.processMessage(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.ReconMessageHandlerMDB.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4547)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4233)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3709)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5058)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    INFO,06 Oct 2009 14:05:50,182,[XELLERATE.DATABASE],Class/Method: tcDataBase/setTransaction: ##########setTransaction getting called from: #######
    DEBUG,06 Oct 2009 14:05:50,182,[XELLERATE.SERVER],Class/Method: tcDataObj/doRollback left.
    DEBUG,06 Oct 2009 14:05:50,182,[XELLERATE.SERVER],Class/Method: tcDataObj/save left.
    ERROR,06 Oct 2009 14:05:50,182,[XELLERATE.JMS],An error occurred while processing the off lined reconciliation events
    ERROR,06 Oct 2009 14:05:50,182,[XELLERATE.JMS],Processing Reconciliation Message with ID 47 failed.
    Unfortunately I can't seem to find the root cause of the error from this message. Is there something I was supposed to configure during the creation of the GTC in order to support updates/deletes? One post mentioned that "Match Only" should be checked. I am not sure what they really means or how it would effect updates.
    Thanks,
    Pete

  • Upload Flat File in Z-table

    Hello everyone,
    We have a Z custom table which contains data about Customer Class. I was wondering if it is possible to load a flat file into the Z Table. Kindly advice how to load a flat file in z-table.
    Thanks,
    Sanju

    PLS WATCH THE CODE and kindly tell me the error
    REPORT  z_test.
    TABLES: mara.
    FIELD-SYMBOLS : <fs> .
    DATA : fldname(50) TYPE c.
    DATA : col TYPE i.
    DATA : cmp LIKE TABLE OF rstrucinfo WITH HEADER LINE.
    DATA: progname LIKE sy-repid,
    dynnum LIKE sy-dynnr.
    DATA itab TYPE TABLE OF alsmex_tabline WITH HEADER LINE.
    DATA: BEGIN OF ZUPLOAD1_T OCCURS 0 ,
             matnr like mara-matnr,
             ersda like mara-ersda,
             ernam like mara-ernam,
             laeda like mara-laeda,
          END OF ZUPLOAD1_T.
    *DATA: ZUPLOAD1_T LIKE mara OCCURS 0 WITH HEADER LINE.
    DATA: wa_data LIKE TABLE OF  ZUPLOAD1_T WITH HEADER LINE.
    selection-screen
    SELECTION-SCREEN: BEGIN OF BLOCK blk WITH FRAME TITLE text-001.
    SELECTION-SCREEN : SKIP 1.
    PARAMETERS : p_file LIKE rlgrap-filename.
    SELECTION-SCREEN : SKIP 1.
    SELECTION-SCREEN : END OF BLOCK blk.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    F4 Value for File
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
                          PROGRAM_NAME        = SYST-REPID
                          DYNPRO_NUMBER       = SYST-DYNNR
                          FIELD_NAME          = ' '
         static              = 'X'
                          MASK                = ' '
        CHANGING
          file_name           = p_file
       EXCEPTIONS
         mask_too_long       = 1
         OTHERS              = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    START-OF-SELECTION.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        filename                      = P_FILE
        i_begin_col                   = 1
        i_begin_row                   = 1
        i_end_col                     = 5
        i_end_row                     = 12507
      tables
        intern                        = ITAB
    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.
    CALL FUNCTION 'GET_COMPONENT_LIST'
      EXPORTING
        program          = SY-REPID
        fieldname        = 'ZMARA'
      tables
        components       = CMP.
      LOOP AT itab.
        AT NEW row.
          IF sy-tabix = 1.
            APPEND ZUPLOAD1_T.
          ENDIF.
        ENDAT.
        col = itab-col.
        READ TABLE cmp INDEX col.
        CONCATENATE 'ZUPLOAD1_T-' cmp-compname INTO fldname.
        ASSIGN (fldname) TO <fs>.
        <fs> = itab-COL.
        APPEND ZUPLOAD1_T.
      ENDLOOP.
    DELETE ZUPLOAD1_T where matnr eq space.
      LOOP AT ZUPLOAD1_T INTO wa_data.
    insert mara from  wa_data .
        WRITE: / ZUPLOAD1_T-matnr, 20 ZUPLOAD1_T-ersda , 45 ZUPLOAD1_T-ernam, 55 ZUPLOAD1_T-laeda.
    *HERE IAM JUST CHECKING I NEED TO UPDATE A ZTABLE
      ENDLOOP.
    insert ZMARA FROM table itab ACCEPTING DUPLICATE KEYS.
    Edited by: shivu kishu on Feb 7, 2011 10:29 AM

  • Question in Flat file GTC  Recon

    HI,
    I wanted to know how Reconciliation works in GTC with respect to Reconciliation Key.
    My requirement is ,i have a flat file with attributes firstname,lastname,empno and i would like to reconcile users from this file into OIM. OIM UserID will be generated as Firstname-lastname,for which I have written an "Pre-Insert" Event handler.
    Now,when I run the GTC with a record
    *#firstame,lastname,empo*
    aaaa,bbb,111
    recon went fie and user gets created in OIM with userid aaaa-bbb .
    Now,I want to run the recon with only empno changed,like
    *#firstame,lastname,empo*
    aaaa,bbb,112
    When i run the recon now,my event handler again get triggered and generating same userid as aaaa-bbb and user creation in OIM failled with the message duplicate userid.
    I wanted to know,where and how can i mention my Recon field key ( which will be some attribute which is unique in the flat file) ?
    Thanks in Advance

    Hi,
    You need to define recon rules for that GTC with username==userlogin.
    Define it and then run the recon for update. it should work. And make sure you have the rule is valid checkbox as selected.
    Thanks
    Kunal Jain

  • Error occurred in the data uploading from Flat File in BPC NW

    Hi,
    I am doing Migration project from BPC MS to NW.
    In this i am loading data from flat file to BPC NW. One error occured in this process that is Record Duplication.
    Total 17000 records in that  7000 recards rejected by the reason of duplication.
    The Information about Package Log
    /CPMB/MODIFY completed in 0 seconds
    /CPMB/CONVERT completed in 2 seconds
    /CPMB/LOAD completed in 7 seconds
    /CPMB/CLEAR completed in 0 seconds
    [Selection]
    FILE= DATAMANAGER\DATAFILES\Aprilmayjun_2011_Budget_V1.CSV
    TRANSFORMATION= DATAMANAGER\TRANSFORMATIONFILES\ZAPRMAYJUN_2011BUDGET.xls
    CLEARDATA= No
    RUNLOGIC= Yes
    CHECKLCK= No
    [Messages]
    Task name CONVERT:
    No 1 Round:
    Record count: 17064
    Accept count: 17064
    Reject count: 0
    Skip count: 0
    Task name LOAD:
    Reject count: 7230
    Submit count: 9834
    Application: CorpBudget Package status: WARNING
    Could you help me in this at the earliest.
    Thanks and Regards
    Krishna

    Hi,
    You cannot send the duplicated with the standard import package. You need to create or add a new package and link to /CPMB/APPEND process chain and do the import. This would consider the duplicate entries also. It looks like you need somehow load all the records including the duplicate ones.
    So on excel go to Manage Data -> Maintain Data management -> organize package list and add a new package and link to the standard BPC process chain /CPMB/APPEND.
    Thanks,
    Sreeni

  • Program to load a flat file in a Hierarchy

    Hello Experts,
    I have this huge hierarchy which we are trying to load through a flat file.
    It is about 10 levels and it is huge and all the readings and guide here are just not helping. It will probably take forever creating this file with the Node ID, Next ID, Parent ID, stuff....
    Does any one has a code out there which can go into an Excel file and create the table for loading a hierarchy from a gflat file?
    Thanks.

    Hi ,
       I have a code which will create BW hierarchy file, this code is for 4 level hierarchy  you need to modify the code as per your requirement.
    report zbiw_glacc_hier line-size 250.
    data :
         begin of itab occurs 0,
          seg(5),
          segname(30),
          spu(5),
          spuname(30),
          bu(5),
          buname(30),
          pu(15),
          puname(30),
    *      cust(8),
    *      custname(60),
          end of itab.
    data : itab_all like itab occurs 0 with header line,
             itab_root like itab occurs 0 with header line.
    data : begin of i_hier occurs 0.    " BIW Structure to hold hirearchy
    *        INCLUDE STRUCTURE E1RSHND.
    data:   nodeid like e1rshnd-nodeid,           "NODE ID
            infoobject like e1rshnd-infoobject,   "infoobjectNAME
            nodename like e1rshnd-nodename,       "nodename year
            link(5), "   LIKE E1RSHND-LINK,              "linkname
            parentid like e1rshnd-parentid.       "parent id
    data:   leafto(32),                           "Interval - to
            leaffrom(32).                         "Interval - from
            include structure e1rsrlt.
            include structure rstxtsml.
    *DATA : PARENT LIKE E1RSHND-NODENAME.
    data : end of i_hier.
    data : sr(8) type n value '00000000'.
    data : begin of itab1 occurs 0, " Node Level1 of Hierarchy
           z_ah_level1 like itab-seg,
           z_ah_level2 like itab-spu,
           z_ah_desc_level2 like itab-spuname,
           end of itab1.
    data : begin of itab2 occurs 0, " Node Level1 of Hierarchy
           z_ah_level2 like itab-spu,
           z_ah_level3 like itab-bu,
           z_ah_desc_level3 like itab-buname,
           end of itab2.
    data : begin of itab3 occurs 0,   " Node Level3 of Hierarchy
           z_ah_level3 like itab-bu,
           z_ah_level4 like itab-pu,
           z_ah_desc_level4 like itab-puname,
           end of itab3.
    data wa like itab.
    data : begin of itab_first occurs 0, " Node Level2 of Hierarchy
           z_ah_level1 like ITAB-SEG,
           end of itab_first.
    data : begin of itab_sec occurs 0, " Node Level2 of Hierarchy
           z_ah_level2 like ITAB-SPU,
           end of itab_sec.
    data : begin of itab_third occurs 0, " Node Level2 of Hierarchy
           z_ah_level3 like ITAB-BU,
           end of itab_third.
    data : begin of i_download occurs 0,
           record(250),
           end of i_download.
    data : v_pid like e1rshnd-nodeid,
           v_line(250).
    start-of-selection.
    CALL FUNCTION 'UPLOAD'
    EXPORTING
    *   CODEPAGE                      = ' '
       FILENAME                      = 'C:/'
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = itab .
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    itab_all[] = itab[].
      itab_root[] = itab_all[].
      sort itab_all by seg spu bu pu .
      sort itab_root by seg.
      delete adjacent duplicates from itab_root comparing seg.
    * Appending Root level of node
    *  sr = 00000001.
    *  move : sr to i_hier-nodeid,
    *        '0HIER_NODE' to i_hier-infoobject,
    *        'SHA HIERARCHY' to i_hier-nodename,
    *        '00000000' to i_hier-parentid,
    *        'EN' to i_hier-langu,
    *        'SHA HIERARCHY' to i_hier-txtmd.
    *  append i_hier.
    *  clear i_hier.
    v_pid  = '00000000'.
    loop at itab_root.
    if itab_root-seg = itab_root-spu.
      delete itab_root.
    endif.
    endloop.
      loop at itab_root.
    * Appending first level of the node
        sr = sr + 1.
        move : sr to i_hier-nodeid,
              '0HIER_NODE' to i_hier-infoobject,
               itab_root-seg to i_hier-nodename,
               v_pid to i_hier-parentid,
              'EN' to i_hier-langu,
              itab_root-segname to i_hier-txtsh,
              itab_root-segname to i_hier-txtmd,
              itab_root-segname to i_hier-TXTLG.
        append i_hier.
        clear i_hier.
      endloop.
      loop at itab_all.
        move itab_all to wa.
    * Separation of level 3 of the node
        at new spu.
          if not wa-spu is initial.
            move : wa-seg to itab1-z_ah_level1,
                   wa-spu to itab1-z_ah_level2,
                   wa-spuname to itab1-z_ah_desc_level2.
            append itab1.
            clear itab1.
          endif.
        endat.
    * Separation of level 3 of the node
        at new bu.
          if not wa-bu is initial.
            move : wa-spu to itab2-z_ah_level2,
                   wa-bu to itab2-z_ah_level3,
                   wa-buname to itab2-z_ah_desc_level3.
            append itab2.
            clear itab2.
          endif.
        endat.
    * Separation of level 2 of the node
        at new pu.
          if not wa-pu  is initial.
            move : wa-bu to itab3-z_ah_level3,
                   wa-pu to itab3-z_ah_level4,
                   wa-puname to itab3-z_ah_desc_level4.
            append itab3.
            clear itab3.
          endif.
        endat.
        clear wa.
      endloop.
      sort itab1 by z_ah_level1 z_ah_level2.
      delete adjacent duplicates from itab1 comparing z_ah_level1
                                                  z_ah_level2.
      sort itab2 by z_ah_level2 z_ah_level3.
      delete adjacent duplicates from itab2 comparing z_ah_level2
                                                      z_ah_level3.
      sort itab3 by z_ah_level3 z_ah_level4.
      delete adjacent duplicates from itab3 comparing z_ah_level3
                                                      z_ah_level4.
    loop at itab_root.
    move itab_root-SEG to itab_first-z_ah_level1.
    append itab_first.
    clear itab_first.
    endloop.
    itab_sec[] = itab2[].
    itab_third[] = itab3[].
    sort itab_first by z_ah_level1.
    delete adjacent duplicates from itab_first.
    sort itab_sec by z_ah_level2.
    delete adjacent duplicates from itab_sec.
    sort itab_third by z_ah_level3.
    delete adjacent duplicates from itab_third.
    data : indx like sy-tabix.
    clear indx.
    loop at itab_first.
    indx = sy-tabix.
    read table itab_sec with key z_ah_level2 = itab_first-z_ah_level1
                            binary search.
    if sy-subrc eq 0.
    delete itab_first index indx.
    endif.
    endloop.
    clear indx.
    loop at itab_sec.
    indx = sy-tabix.
    read table itab_third with  key z_ah_level3 = itab_sec-z_ah_level2
                            binary search.
    if sy-subrc eq 0.
    delete itab_sec index indx.
    endif.
    endloop.
    clear indx.
    clear indx.
    loop at itab1.
    If itab1-z_ah_level1 = itab1-z_ah_level2.
      delete itab1.
    endif.
    endloop.
    loop at itab2.
    If itab2-z_ah_level2 = itab2-z_ah_level3.
      delete itab2.
    endif.
    endloop.
    loop at itab3.
    If itab3-z_ah_level3 = itab3-z_ah_level4.
      delete itab3.
    endif.
    endloop.
    * Appending First level node to Hierarchy table
      loop at itab_root.
        loop at itab1 where z_ah_level1 = itab_root-SEG.
          read table i_hier with key nodename = itab1-z_ah_level2.
           if sy-subrc ne 0.
          read table i_hier with key nodename = itab1-z_ah_level1.
          if sy-subrc eq 0.
          move i_hier-nodeid to i_hier-parentid.
    * Appending First level node to Hierarchy table
          sr = sr + 1.
          move  : sr to i_hier-nodeid,
                  '0HIER_NODE' to i_hier-infoobject,
                  itab1-z_ah_level2 to i_hier-nodename,
                  'EN' to i_hier-langu,
                  itab1-z_ah_desc_level2 to i_hier-txtsh,
                  itab1-z_ah_desc_level2 to i_hier-txtmd,
                  itab1-z_ah_desc_level2 to i_hier-txtlg.
          append i_hier.
          clear i_hier.
          endif.
          endif.
        endloop.
      endloop.
    * Appending second level node to Hierarchy table
      loop at itab_sec.
        loop at itab2 where z_ah_level2 = itab_sec-z_ah_level2.
          read table i_hier with key nodename = itab2-z_ah_level3.
           if sy-subrc ne 0.
          read table i_hier with key nodename = itab2-z_ah_level2.
           if sy-subrc eq 0.
          move i_hier-nodeid to i_hier-parentid.
    * Appending second level node to Hierarchy table
          sr = sr + 1.
          move : sr to i_hier-nodeid,
                '0HIER_NODE' to i_hier-infoobject,
                itab2-z_ah_level3 to i_hier-nodename,
                'EN' to i_hier-langu,
                itab2-z_ah_desc_level3  to i_hier-txtsh,
                itab2-z_ah_desc_level3 to i_hier-txtmd,
                itab2-z_ah_desc_level3 to i_hier-txtlg.
          append i_hier.
          clear i_hier.
         endif.
         endif.
        endloop.
      endloop.
    * Appending third level node to Hierarchy table
      loop at itab_third.
        loop at itab3 where z_ah_level3 = itab_third-z_ah_level3.
          read table i_hier with key nodename = itab3-z_ah_level4.
        if sy-subrc ne 0.
          read table i_hier with key nodename = itab3-z_ah_level3.
           if sy-subrc eq 0.
          move i_hier-nodeid to i_hier-parentid.
    * Appending third level node to Hierarchy table
          sr = sr + 1.
          move : sr to i_hier-nodeid,
    *            'ZGL_AC_CD' to i_hier-infoobject,
                '0GL_ACCOUNT' to i_hier-infoobject,
                itab3-z_ah_level4 to i_hier-nodename,
                'EN' to i_hier-langu,
                itab3-z_ah_desc_level4 to i_hier-txtsh,
                itab3-z_ah_desc_level4 to i_hier-txtmd,
                itab3-z_ah_desc_level4 to i_hier-txtlg.
          append i_hier.
          clear i_hier.
          endif.
            endif.
        endloop.
      endloop.
      loop at i_hier.
        concatenate i_hier-nodeid i_hier-infoobject i_hier-nodename
                    i_hier-link i_hier-parentid i_hier-leafto
                    i_hier-leaffrom i_hier-langu i_hier-txtsh
                    i_hier-txtmd i_hier-txtlg into v_line
                    separated by ','.
        move  v_line to i_download-record.
        append i_download.
        write : / i_hier.
      endloop.
      perform f_download.
    **&      Form  f_download
    **       text
    **  -->  p1        text
    **  <--  p2        text
    form f_download.
      call function 'DOWNLOAD'
       exporting
    *   BIN_FILESIZE                  = ' '
    *   CODEPAGE                      = ' '
    *   FILENAME                      = ' '
          filetype                      = 'DAT'
    *   ITEM                          = ' '
    *   MODE                          = ' '
    *   WK1_N_FORMAT                  = ' '
    *   WK1_N_SIZE                    = ' '
    *   WK1_T_FORMAT                  = ' '
    *   WK1_T_SIZE                    = ' '
    *   FILEMASK_MASK                 = ' '
    *   FILEMASK_TEXT                 = ' '
    *   FILETYPE_NO_CHANGE            = ' '
    *   FILEMASK_ALL                  = ' '
    *   FILETYPE_NO_SHOW              = ' '
    *   SILENT                        = 'S'
    *   COL_SELECT                    = ' '
    *   COL_SELECTMASK                = ' '
    *   NO_AUTH_CHECK                 = ' '
    * IMPORTING
    *   ACT_FILENAME                  =
    *   ACT_FILETYPE                  =
    *   FILESIZE                      =
    *   CANCEL                        =
        tables
          data_tab                      = i_download
    *   FIELDNAMES                    =
    * EXCEPTIONS
    *   INVALID_FILESIZE              = 1
    *   INVALID_TABLE_WIDTH           = 2
    *   INVALID_TYPE                  = 3
    *   NO_BATCH                      = 4
    *   UNKNOWN_ERROR                 = 5
    *   GUI_REFUSE_FILETRANSFER       = 6
    *   CUSTOMER_ERROR                = 7
    *   OTHERS                        = 8
      if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " f_download
    Hope this will help. Please assign points if it helps you.
    Cheers,
    Balaji

  • BPC 7.5 will extract data from flat file or directly from cube

    Hi,
        i have a doubt plz give me a solution.
    1) previously our BPC 7.0 team extracted data from BI 7.0 through flat file, but now they have upgraded to BPC 7.5 i want to know whether BPC 7.5  will extract directly from our BW infocube or not.
    2) please let me know how data extracted from BPC 7.5.
    Thanks and Regards
            Satish

    Hi,
    If your import file has duplicate record in it then the Status of your DM package for import ends with warning, where all the records in your file might have got accepted but only one last data rows amoung the duplicate rows might have got submitted to the system.
    The duplicate records will be rejected and you can see the list of duplicate records as well in the DM package status report.
    Like Nilanjan said you can use Append DM Pacakge to submit all duplicate records aswell into the system. But here the problem is it appends the data in flat file with data available in the system.
    Say you have 100 for account1 in the system and you run Append DM Package having values duplicate values for account1 say 100 and 200. So after the Append Package execution you will have 100100200= 400 for account1.
    So for Append DM package to work in the same way as import, run clear package before executing the Append package.
    Hope this helps,
    Regards,
    G.Vijaya Kumar

Maybe you are looking for