ALV cell attributes CHANGE during DATA_CHANGED event

Hi,
I am working with CL_GUI_ALV_GRID in a splitter control. I am trying to make separate cells (non)editable depending on user input in the ALV. In event DATA_CHANGED (refefined) I change the cellstyle-table and then use method REFRESH_TABLE_DISPLAY.
My problem is: I can change contents of fields perfectly, but when I change a cell's editability, the cell is being showns as editable, but when I press F4 f.i. and look in debug, the cellstyles-table hasn't been updated and still reflects the old values.
Could anybody help me out?
Kind regards,
Roy
P.S. Obviously I will reward points to useful answers.

Hi Nithya,
I am not making the field edit or no-edit using fieldcatalog-edit. This makes an emtire column editable. I only want to make individual cells editable.
I do this using a table that I have attached to the ALV's structure and linked using layout-stylefname. You gave me an idea though: I might have to use SET_SELECTED_CELLS or an equivalent.
Any other ideas that might be helpful?
Kind regards,
Roy

Similar Messages

  • DATA_CHANGED event handler is not triggered after input.(OO ALV)

    Dear Experts,
    What I did:
    I register Enter as the trigger event for data_changed event, and I put my checking logic in data_changed_handler which is a method of a local class. When the checking fails, I put messages using er_data_changed->add_protocal_entry to show messages.
    My checking is simple, if the cell is empty, error messages pops up tells that this cell can not be blank for this row.
    My problem:
    When there is no entry in the alv list(Only this situation), I insert a new entry, the cell which is required is empty, I press Enter, data_changed event is triggered, the message pops up saying that the cell is required. Then close the pop up message window, I input something in the cell, and press enter. The data_changed event is not triggered.
    Is there any1 has any ideas on this problem?
    Vicnent
    Edited by: Changjiu Tan on Sep 7, 2009 1:33 PM

      METHOD HANDLE_DATA_CHANGED.                               "#EC NEEDED
    *<<<  BEGIN MODIFY EXAMPLE CODE
    *   u4FDDu5B58u30C7u30FCu30BFu3092u7DE8u96C6u3059u308Bu3000START
        DATA: LW_INS      TYPE LVC_S_MOCE,
              LV_FNAME    TYPE LVC_FNAME,
              LW_MOD      TYPE LVC_S_MODI,
              LV_MAX      TYPE I,
              LV_RES(12)  TYPE C,
              LW_LIST     TYPE ZTSRE012,
              LV_ROWID    TYPE LVC_S_ROID,
              LT_MOD      TYPE LVC_T_MODI,
              LV_COLID    TYPE LVC_S_COL,
              LV_ROW_ID    TYPE LVC_S_ROW,
              LV_COL_ID    TYPE LVC_S_COL.
    *   u73FEu5728u306Eu30D5u30A9u30FCu30ABu30B9u4F4Du7F6Eu3092u53D6u5F97
        CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
          IMPORTING
            ES_ROW_ID = LV_ROW_ID
            ES_COL_ID = LV_COL_ID.
        LOOP AT GT_LIST INTO LW_LIST.
          IF LW_LIST-ID > LV_MAX.
            LV_MAX = LW_LIST-ID.
          ENDIF.
        ENDLOOP.
    *   u30B0u30EBu30FCu30D7ID
        LV_FNAME = CNS_ID.
        LOOP AT ER_DATA_CHANGED->MT_INSERTED_ROWS INTO LW_INS.
          LV_MAX = LV_MAX + 1.
          CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
            EXPORTING
              I_ROW_ID    = LW_INS-ROW_ID
              I_FIELDNAME = LV_FNAME
              I_VALUE     = LV_MAX.
        ENDLOOP.
        CLEAR: LV_FNAME.
        LT_MOD[] = ER_DATA_CHANGED->MT_GOOD_CELLS[].
    *   u30C7u30FCu30BFu30C1u30A7u30C3u30AF
        LOOP AT LT_MOD INTO LW_MOD.
          IF LW_MOD-FIELDNAME = CNS_ZZTTSN.
            LV_COLID-FIELDNAME = LW_MOD-FIELDNAME.
            LV_ROWID-ROW_ID    = LW_MOD-ROW_ID.
            CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
              EXPORTING
                IS_COLUMN_ID = LV_COLID
                IS_ROW_NO    = LV_ROWID.
            CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
              IMPORTING
                E_VALUE = LV_RES.
            IF LV_RES IS INITIAL.
              CALL METHOD ER_DATA_CHANGED->ADD_PROTOCOL_ENTRY
                EXPORTING
                  I_MSGID     = CNS_MSGID
                  I_MSGTY     = CNS_MSGTY
                  I_MSGNO     = CNS_MSGNO
                  I_FIELDNAME = LW_MOD-FIELDNAME
                  I_ROW_ID    = LW_MOD-ROW_ID.
            ENDIF.
            CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
              EXPORTING
                I_ROW_ID    = LW_MOD-ROW_ID
                I_FIELDNAME = LW_MOD-FIELDNAME
                I_VALUE     = LV_RES.
           ENDIF.
          CLEAR:  LV_RES,
                  LV_COLID,
                  LV_ROWID.
        ENDLOOP.
        CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
          EXPORTING
            IS_ROW_ID    = LV_ROW_ID
            IS_COLUMN_ID = LV_COL_ID.
      ENDMETHOD.                    "handle_data_changed
    Edited by: Changjiu Tan on Sep 7, 2009 1:31 PM
    Edited by: Changjiu Tan on Sep 7, 2009 1:32 PM

  • Problem handling data_changed event in OO ALV

    I'm displaying my internal table with an OO ALV and I'm trying to handle the data_changed event in order to do some checking before actually modify my internal table.
    this is the code of how I was planing to do that:
    handle_data_changed
            FOR EVENT data_changed OF cl_gui_alv_grid
                IMPORTING er_data_changed
                          e_onf4
                          e_onf4_before
                          e_onf4_after
                          e_ucomm.
    METHOD handle_data_changed.
    *    IF er_data_changed->mt_mod_cells-fieldname = 'COD_M'.
    *         do something
    *    else if er_data_changed->mt_mod_cells-fieldname = 'QUANTIDADE'.
    *         do something else
    *    endif.
    *  alv->refresh_table_display.
      ENDMETHOD.                           "handle_data_changed
    but it gives me this error:
    "MT_MOD_CELLS" is a table without a header line and therefore has no component called "FIELDNAME".
    My question is, how can access the cell that is being modified, and the new data?

    Dont know if this is the most clever way to do it but i solved it like this
    DATA: wa_data_changed TYPE lvc_s_modi,
              wa_tabi TYPE zsl_mat_c.
        READ TABLE er_data_changed->mt_mod_cells INDEX 1
                                                 INTO wa_data_changed.
        IF wa_data_changed-fieldname = 'COD_M'.
    *     do something
        ELSEIF wa_data_changed-fieldname = 'QUANTIDADE'.
    *     do something else
        ENDIF.
    thanks for your help

  • ALV Grid editable - How to raise the data_changed event from outside object

    Hi,
    i'd like to like to raise the data_changed event from outside the ALV-Grid object in order to display errors to the user.
    For example a new row was inserted within the program. The user has only to complete the missing informations. Before saving the transactions the program has to execute some semantic checks. The errors of this check process should be shown to the user by creating an instance of the cl_alv_changed_data_portocol object.
    Thanks.
    Regards

    You don't need to raise the data_changed event to perform the edits or to issue messages using cl_alv_changed_data_protocol.
    The following assumes you have an ALV grid object g_alv based on the CL_GUI_ALV_GRID class.
    You can mark the inserted records upon insertion as selected using the set_selected_rows method, and then retrieve these rows later using get_selected_rows and perform necessary edits.
    Save the row number of each inserted row into a table of the appropriate type (see the method definition for this):
    DATA: t_index_rows    TYPE  lvc_t_row.
    DATA: s_row_no        TYPE  lvc_s_roid.
    DATA: t_row_no        TYPE  lvc_t_roid.
    Load entries into t_row_no after each insert.  Capture the row number and save in the table t_row_no.
    e.g.
    PERFORM insert_row USING s_row_no-row_id.
    APPEND s_row_no TO t_row_no.
    FORM insert_row would have whatever code you are using to insert the row.  Save the row id into s_row_no-row_id (which is an INT4).
    When done with all inserts do the following
      IF t_row_no[] IS NOT INITIAL.
        CALL METHOD g_alv->set_selected_rows
          EXPORTING
            it_index_rows            = t_index_rows
            it_row_no                = t_row_no
            is_keep_other_selections = 'X'.
      ENDIF.
    Then, if SAVE is pressed without the data_changed event having been raised (such as if the user just pressed SAVE without changing anything), use method get_selected_rows to retrieve the rows that were inserted and perform the necessary edits.
      DATA: l_t_rows    TYPE lvc_t_row.              " ALV control: Table rows
      CALL METHOD g_alv->get_selected_rows
        IMPORTING
          et_index_rows = l_t_rows.
    Loop through l_t_rows and use the row as an index into the grid, perform the necessary edits, just as you would if the data_changed event had been raised.
    If any edits fail, then send messages to the user, abort the save, and re-display the grid.
    Remember to refresh the t_row_no and t_index_rows tables if you load a new data set.
    You can also use a similar technique with the data_changed event to mark each changed row as selected by saving the row ids, and then you only have to update the changed rows on SAVE, which can minimize database I/O.
    Good luck.
    Brian

  • How to make OO ALV Grid cell is required on data_changed?

    Hi all,
    I want to make grid cell is required on data_change method. I have two fields dependent each other, so i insert a value on a field, the other field should be obligatory.
    I have tried to solve this with "add_protocol_entry" method. But i don't want to display message log. The second field should be drawn with red border.
    My sample code is below:
    LOOP AT p_data_changed->mt_good_cells INTO ls_good_cells.
         CASE ls_good_cells-fieldname.
           WHEN 'FIELD1' .
             CASE p_sender.
               WHEN g_grid.
                 CALL METHOD p_data_changed->get_cell_value
                   EXPORTING
                     i_row_id    = ls_good_cells-row_id
                     i_fieldname = ls_good_cells-fieldname
                   IMPORTING
                     e_value     = lv_variable.
    *-- On this area the second field should be drawn with red border.
             ENDCASE.
         ENDCASE.
       ENDLOOP.
    I'm waiting for your helps.

    Gutten Tag,
    I have an idea, how about that you add one more field in your table structure for obtain information about color about each cell.  such as "color TYPE lvc_t_scol " and then in your lvc_s_layo, you should fill CTAB_FNAME = 'COLOR'.
    Insert this code into your program. (it's a template)
    READ TABLE itab WITH KEY <k1> = ..... ASSIGNING <fs>.
    APPEND INITIAL LINE TO <fs>-COLOR ASSIGNING <fs_l>.
          <fs_l>-fname = 'XXX' .   "字段名
          <fs_l>-color-col = 6.
          <fs_l>-color-int = 1.
          <fs_l>-color-inv = 0 .

  • ALV cells as buttons

    Hello,
    I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
    Thank you and regards.

    Hello,
    I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
    Thank you and regards.

  • Read Only and HTML Table Cell Attributes

    Hi Guys,
    I believe i have come accross a bug - i'm been working on a form that can be filled out and printed - when going into print for sake of the output looking nice i set the form element to read-only.
    As soon as an element such as a drop down box, text feild, text area, etc which display as "[selected value]" in plain text in read only mode, are changed to the read only mode apex seem to ignore the html table cell attributes.
    For example i have a id number in the top left and then a version number in the top right. Both use a text feild; the top left uses 'width="100%"' for it's HTML Table Cell Attribute to push the right cell to the right. and the right cell has 'align="right"'. Now this works fine when read only is off... but as soon as read only is on, both the width and the alignment are totally ignored, and i can't find any sign of them in the code.
    Because this is for printing; using the "disable" on the form element instead of "read only" function, isn't appropriate as disabled will make the elements faded and hard to read when printed, and keeping the elements as is will allow the user to edit information on the print screen - which is not appropriate.
    Is this a bug? Will it be fixed soon? Is there any work around?
    Cheers,
    Alex

    Use the "Read Only Element Table Cell(s) Attributes" in the Read Only region of the Item edit form.
    Scott

  • Issue: attributes change run triggers the rebuilt of 0IC_C03 aggregates

    Hello Guru,
    I am facing to a problem that I don't understand.
    Here is below the detail of the messages of a '3-infoobjects attributes change run' step of a Master Data process chain.
    22:06:14     Job started
    22:06:14     Step 001 started (program RSPROCESS, variant &0000000231235, user ID RFC_BW)
    22:06:16     Starting process type ATTRIBCHAN with 3 objects...
    22:06:16     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K with ID 22061600
    22:06:16     Editing of aggregate 100139; background job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K; start time 22:06:16/07.07.2010
    22:06:18     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K with ID 22061601
    22:06:18     Editing of aggregate 100143; background job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K; start time 22:06:18/07.07.2010
    23:02:29     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K with ID 23022900
    23:02:29     Editing of aggregate 100140; background job BICHNG_D8FC4Q04UD7NGLDMZ0QUBLX4K; start time 23:02:29/07.07.2010
    23:52:38     Starting process type MDHIERACT with 2 objects...
    23:52:39     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BIACTI_D8FCR9Y1NWOP2T4F76FYE0HDG with ID 23523900
    23:52:39     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BIACTI_D8FCR9Y1NWOP2T4F76FYE0HDG with ID 23523901
    23:53:10     Aggregate 100139: Repair indexes
    23:57:14     Aggregate 100140: Repair indexes
    00:17:23     Aggregate 100143: Repair indexes
    00:50:09     3 aggregates are condensed
    00:50:09     Starting process type CONDAGGR with 3 objects...
    00:50:10     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICOND_D8FD3GTNF0KF92R34346SW6PG with ID 00501000
    00:50:10     Editing of aggregate 100143; background job BICOND_D8FD3GTNF0KF92R34346SW6PG; start time 00:50:10/08.07.2010
    00:50:10     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICOND_D8FD3GTNF0KF92R34346SW6PG with ID 00501001
    00:50:10     Editing of aggregate 100140; background job BICOND_D8FD3GTNF0KF92R34346SW6PG; start time 00:50:10/08.07.2010
    00:50:16     Program RSBATCH_EXECUTE_PROZESS successfully scheduled as job BICOND_D8FD3GTNF0KF92R34346SW6PG with ID 00501600
    00:50:16     Editing of aggregate 100139; background job BICOND_D8FD3GTNF0KF92R34346SW6PG; start time 00:50:16/08.07.2010
    00:50:22     Hierarchy/attribute change successfully carried out
    00:50:23     Event RSPROCESS with parameter D59BE8XWZMHY0IFP2VLEFP671 successfully triggered
    00:50:23     Job finished
    As you can observe, the step takes almost 3 hours !!!!!!! After anlyses BICHNG_* concerns
    22:06:16 Job started
    22:06:16 Step 001 started (program RSBATCH_EXECUTE_PROZESS, variant &0000000891873, user ID RFC_BW)
    22:06:18 Aggregate 100139( 0IC_C03) is being adapted / rebuilt
    22:06:18 Statistic UID of the aggregate process: 'D8FC4Q9KSAMRDWQ1RDPPKMF3O' (RSDDSTATAGGR)
    22:06:27 Aggregate 100139: Read (1) from table /BI0/E0ICC03_ (max 500000 records)22:06:27 SQL: 07.07.2010 22:06:27 RFC_BW
    I don't understand what is the link between the '3-infoobjects attributes change run' (BBATCH, 0MAT_SALES, 0MAT_PLANT) and the rebuilt of 3 0IC_C03 (Material Stocks/Movements) aggregates (why does the 'attribute chan run' trigger the rebuit of aggregates???).
    The rebuilt of the 3 aggregates takes 1 416, 3 366, 3 009 secondes...
    Does anyone understand my problematic? If not I can give you more details.
    Thanks in advance for your help.
    Samuel

    1/ Exactly Fred
    Here is the definitions of the aggregate:
    100139:
    0PLANT
    0STOR_LOC
    0MAT_PLANT__0VAL_CLASS
    0STOCKCAT
    0STOCKTYPE
    BMODIFIC
    BMVTSTOCK
    0MATL_TYPE
    0CALxxx
    2/ For my information in the aggregate 100140 , does the presence of BBATCH (one of the 3 IO) trigger the rebuilt or is it only 0MAT_PLANT__0VAL_CLASS ?
    100140:
    0PLANT
    0STOR_LOC
    0MATERIAL
    0MAT_PLANT__0VAL_CLASS
    BBATCH
    0STOCKCAT
    0STOCKTYPE
    BMODIFIC
    BMVTSTOCK
    0MATL_TYPE
    0CALxxx
    3/ In the same process chain, I have another Attributes Change Run: 0MATERIAL. Several active aggregates using 0MATERIAL__0MATL_TYPE are built on a CO-PA cube.
    Why did the '0MATERIAL Attributes Change Run' rebuild no aggregate? (see below)
    22:06:04     Job started
    22:06:04     Step 001 started (program RSPROCESS, variant &0000000231238, user ID RFC_BW)
    22:06:06     Activation of master data for 0MATERIAL
    22:06:07     154 Data records deleted
    22:06:11     154 Data records deleted
    22:06:12     154 Data records updated
    22:06:13     154 Data records updated
    22:06:13     0 aggregates are condensed
    22:06:14     Hierarchy/attribute change successfully carried out
    22:06:14     Event RSPROCESS with parameter D59BEEE069HKRCRU0ZPYFUPB1 successfully triggered
    22:06:14     Job finished
    Samuel

  • Regarding attribute change runs in process chains

    Hi All,
    While creating process chain for master data objects. I am trying to incorporate attribute change run process type for an info object. But the system asks for the DTP of the attribute and when i choose the DTP then both DTP and then Attribute are being incorporated. This is not exactly a problem but i need to understand why it is happening as i am already using that DTP to load data. Will this affect the data in master data object?. Thanks in advance.
    regards
    satish

    Hi Bhagyarekha,
    The reason behind that error could be:
    An attempt is made to activate a characteristic whose compounding was replaced and whose navigation attributes were simultaneously deleted. The replacement of the compounding temporarily deletes the M view of the characteristic during internal activation. The process of deleting navigation attributes involves converting the attribute SID tables. However, the M-view of the characteristic, which has just been deleted, is needed for this conversion.
    Check this SAP Note:
    Note 684405 - Replacing the compounding and deleting navigation attr.
    Hope it helps.
    Veerendra.

  • Attribute Change Run taking very Long time.

    Hi Experts:
    We are daily loading Master data from one common process chain. There are 33 Infoobjects which are getting activated in Attribute Change Run Process. This process is taking almost 3 hours to run daily; due to this it is impacting our other data load process chains.
    Many times it happens that there is lock on cubes due to attribute change as attributes are getting aligned to same cube on which the roll up is running.
    There are local chains below the attribute change run, which are also important to run.
    Please help and suggest the workaround for the same.
    Cheers,
    Omkar

    33 info objects in one ACR(attribute change run) is not a good idea.
    Better to split the info objects and use multiple ACR.
    During your ACR if transaction data load was on then lock issues always occurs.
    Thats why we need to run master data loads first and later transaction data loads.
    Which info object change run was troubling, better to note the info objects which are causing and try to put them  in separate ACR and trigger it before start of your transaction data loads. so that it won't raise the same issue again.

  • Attribute Change Run in Process Chain failed with SQL 942 error

    Hi,
    Attribute change run in th eprocess chain failed with the message " SQL Error 942" and ran succesfully after repeating the step.Searched in Forums for similar error but the solutions were not apt.
    Any pointers would be of great help!!
    Thanks in advance,
    Bhagyarekha.

    Hi Bhagyarekha,
    The reason behind that error could be:
    An attempt is made to activate a characteristic whose compounding was replaced and whose navigation attributes were simultaneously deleted. The replacement of the compounding temporarily deletes the M view of the characteristic during internal activation. The process of deleting navigation attributes involves converting the attribute SID tables. However, the M-view of the characteristic, which has just been deleted, is needed for this conversion.
    Check this SAP Note:
    Note 684405 - Replacing the compounding and deleting navigation attr.
    Hope it helps.
    Veerendra.

  • ALV Grid - Display/change Problem

    Hi Guys,
    I have a peculiar problem. I have developed a Module pool application containing two screens. In the first screen I have a input field and 2 buttons for display and change. When I enter the value and press Displaythe second screen is called which shows an ALV grid in the respective display mode. But If I come back and press change I could not get the change mode for the ALV grid still it remains in the Display mode. Again if rerun the transaction and press change it shows the ALV grid in change mode but if we press back and choose display then it is not getting changed still remains as such. In all at the first run what ever the mode is chosen it remains stationery. I am using OOALV and i have tried flushing the container, grid and also refreshing the ALV. But could not trace the problem. If you guys have worked or can put some inputs please reply back.
    Jagath.

    Please find the attached code...
    from the first screen 100 i am assigning the flag w_display or w_change based on the okcode. in the second screen 200 PBO i have the following code:
    MODULE status_0200 OUTPUT.
      SET PF-STATUS 'STAT200'.
      SET TITLEBAR 'TIT200'.
      if w_display eq 'X'.
      perform grid_display.
      else.
      perform grid_change.
      endif.
    ENDMODULE.                 " STATUS_0200  OUTPUT
    Now in perform display I have the following code:
    form grid_display .
    Set the Fieldcatalog.
      REFRESH t_fieldcat.
      PERFORM get_field_catalog.
    set the Layout.
      CLEAR wa_layout.
      wa_layout-cwidth_opt = 'X'.
    wa_layout-stylefname = 'CELLTAB'.
    set the Variant
      w_variant-report = sy-repid.
    Create the Instance for container
      IF lcl_custom_disp IS INITIAL.
        CREATE OBJECT lcl_custom_disp
          EXPORTING
           PARENT                      =
            container_name              = 'CONTAINER1'
          EXCEPTIONS
            cntl_error                  = 1
            cntl_system_error           = 2
            create_error                = 3
            lifetime_error              = 4
            lifetime_dynpro_dynpro_link = 5
            OTHERS                      = 6.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    create the object for ALV grid
        CREATE OBJECT lcl_grid_disp
          EXPORTING
            i_parent          = lcl_custom_disp
          EXCEPTIONS
            error_cntl_create = 1
            error_cntl_init   = 2
            error_cntl_link   = 3
            error_dp_create   = 4
            OTHERS            = 5.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    Create the object for events
        CREATE OBJECT lcl_events.
        SET HANDLER lcl_events->handle_top_of_list FOR lcl_grid_disp.
    Display the  ALV.
        CALL METHOD lcl_grid_disp->set_table_for_first_display
          EXPORTING
            is_variant                    = w_variant
            i_save                        = ' '
            is_layout                     = wa_layout
          CHANGING
            it_outtab                     = t_final[]
            it_fieldcatalog               = t_fieldcat
          EXCEPTIONS
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            OTHERS                        = 4.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSE.
    Refresh the ALV grid
        CALL METHOD lcl_grid_disp->refresh_table_display
       EXPORTING
         IS_STABLE      =
         I_SOFT_REFRESH =
          EXCEPTIONS
            finished       = 1
            OTHERS         = 2.
        IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    endform.                    " grid_display
    In the perform change the same code is followed for different object with the fieldcatalog  is changed to edit based on flag.
    Set the Fieldcatalog.
      REFRESH t_fieldcat.
      PERFORM get_field_catalog.
    set the Layout.
      CLEAR wa_layout.
      wa_layout-cwidth_opt = 'X'.
    wa_layout-stylefname = 'CELLTAB'.
    set the Variant
      w_variant-report = sy-repid.
    Create the Instance for container
      IF lcl_custom_chng IS INITIAL.
        CREATE OBJECT lcl_custom_chng
          EXPORTING
           PARENT                      =
            container_name              = 'CONTAINER1'
          EXCEPTIONS
            cntl_error                  = 1
            cntl_system_error           = 2
            create_error                = 3
            lifetime_error              = 4
            lifetime_dynpro_dynpro_link = 5
            OTHERS                      = 6.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    create the object for ALV grid
        CREATE OBJECT lcl_grid_chng
          EXPORTING
            i_parent          = lcl_custom_chng
          EXCEPTIONS
            error_cntl_create = 1
            error_cntl_init   = 2
            error_cntl_link   = 3
            error_dp_create   = 4
            OTHERS            = 5.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    Create the object for events
        CREATE OBJECT lcl_events.
        SET HANDLER lcl_events->handle_top_of_list FOR lcl_grid_chng.
        SET HANDLER lcl_events->handle_data_changed FOR lcl_grid_chng.
        SET HANDLER lcl_events->handle_data_changed_finished FOR lcl_grid_chng.
    Display the  ALV.
        CALL METHOD lcl_grid_chng->set_table_for_first_display
          EXPORTING
            is_variant                    = w_variant
            i_save                        = ' '
            is_layout                     = wa_layout
          CHANGING
            it_outtab                     = t_final[]
            it_fieldcatalog               = t_fieldcat
          EXCEPTIONS
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            OTHERS                        = 4.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSE.
    Refresh the ALV grid
        CALL METHOD lcl_grid_chng->refresh_table_display
       EXPORTING
         IS_STABLE      =
         I_SOFT_REFRESH =
          EXCEPTIONS
            finished       = 1
            OTHERS         = 2.
        IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    Please let me know if you require some more inputs?
    Jagath

  • Fonts/attributes change between IC/ID

    We're using InCopy CS2 Version 4 on Macs running OS X 10.3.9. I set up a document of news briefs every week. I cut and paste the news items from e-mail into a new incx document. My new document includes the same style palette I use on all other new documents I generate. My other documents go through fine, with the style calls (i.e. font, type size etc.) matching on the InDesign end. However, this roundup document, always reads on the InDesign with all uppercase headlines. After I have saved the roundup, I have double-checked and my styles have not somehow changed to call for all uppercase heds. I have tried saving the cut and pasted text as plain text before pasting it into the incx file, but I get the same result. There is nothing that each week's document has in common with the previous week's, except that I cut and paste this text. Is that somehow throwing things off? Why can't I detect anything amiss on my end?
    Thanks.

    1/ Exactly Fred
    Here is the definitions of the aggregate:
    100139:
    0PLANT
    0STOR_LOC
    0MAT_PLANT__0VAL_CLASS
    0STOCKCAT
    0STOCKTYPE
    BMODIFIC
    BMVTSTOCK
    0MATL_TYPE
    0CALxxx
    2/ For my information in the aggregate 100140 , does the presence of BBATCH (one of the 3 IO) trigger the rebuilt or is it only 0MAT_PLANT__0VAL_CLASS ?
    100140:
    0PLANT
    0STOR_LOC
    0MATERIAL
    0MAT_PLANT__0VAL_CLASS
    BBATCH
    0STOCKCAT
    0STOCKTYPE
    BMODIFIC
    BMVTSTOCK
    0MATL_TYPE
    0CALxxx
    3/ In the same process chain, I have another Attributes Change Run: 0MATERIAL. Several active aggregates using 0MATERIAL__0MATL_TYPE are built on a CO-PA cube.
    Why did the '0MATERIAL Attributes Change Run' rebuild no aggregate? (see below)
    22:06:04     Job started
    22:06:04     Step 001 started (program RSPROCESS, variant &0000000231238, user ID RFC_BW)
    22:06:06     Activation of master data for 0MATERIAL
    22:06:07     154 Data records deleted
    22:06:11     154 Data records deleted
    22:06:12     154 Data records updated
    22:06:13     154 Data records updated
    22:06:13     0 aggregates are condensed
    22:06:14     Hierarchy/attribute change successfully carried out
    22:06:14     Event RSPROCESS with parameter D59BEEE069HKRCRU0ZPYFUPB1 successfully triggered
    22:06:14     Job finished
    Samuel

  • Attribute change Run Failed/Scheduled

    Hello All,
    For a process Chain Attribute Change Run has failed in BW 3.5,and I Repeated the Change Run in Chain only
    where Repeat option is ,now the problem is in RSA1 it is now that change run is scheduled
    and sm37 it is showing that Canceled.
    Now there is Other Process Chain in BI7.0  which picks data from  3.5
    Should I repeat the Master data Chain in BW 3.5 followed by in BI 7.0
    Or any other way is possible as in BI7 the chain has run successfully..
    Thanks,
    Kiran

    Hi Kiran.......
    BI 7.0 and BW 3.5............totally two seperate systems..............here BW 3.5 is just act as a source system of BI 7.0.............if change run fails in BW3.5...............it is not going to effect BI 7.0.............
    As ajeet already said............it will effect the SID s in 3.5.............because attribute change run activates the master data...........and SID get generated during the activation of master data.......
    Also it will effect the aggregates............because aggregates also get adjusted during change run.......if any of the aggregates contains the master data.........which are getting activated in the change run....
    Now u r saying........that in SM37 it is showing that the job got cancelled............So it will not locked the master data..............terminated change runs generally lock the master data............then we hav to repeat the chain run to release the lock.........and u hav already repeated the change run............so no issue........
    Hope this helps..........
    Regards,
    Debjani........

  • Attribute Change Run for Hierarchy

    Dear experts:
    we are trying to create a process chain for a hierarchy. When we included "Execute InfoPackage" into process chain, it automatically dragged other 2 steps into process chain as well, which are "Save Hierarchy" and "Attribute Change Run".
    My Question is when we looked into "Attribute Change Run", the obj type is "Execute InfoPackage" instead of "Hierarchy". Shouldn't we choose hierarchy as object type when operating Attr change run??
    Besides, I checked SAP document. It is said the "Attr Change Run" is only necessary when the hierarchy occurs in aggregates. Can anyone please explain to me what that means.
    Thank you very much
    Regards
    SzuFen

    Haven't really looked at the object types in the process chain (we're still using event chains here for the most part), but I would be inclined to leave it as, and only change it if you have a problem.
    The process chain tool drags steps into the chain by default, e.g drop and build index, attr change run.  That doesn't mean you have to keep them in the chain.  If you do not have hierarchies in your aggregates, you could remove the step.  Now of course, the burden falls on you to remember to add it if you ever create an aggregate with a hierarchy in it.
    Of course the next would be, if most of your queries use a hierarchy, you would probably want the hierarchy in the aggregate, otherwise the aggregate isn't going to be used.

Maybe you are looking for

  • How to do it in pivot..

    Hi experts i have one probs.... My report is having three column : where C=A*B A B C 10 10 100 5 5 25 TOTAL 15 15 225 Now how to get this , when i m doing sum at pivot is is doing sum for Column C and giving 125 instead of 225....so please suggest me

  • Font name too big to see

    Hi, i'm using Acrobat X1 on Mac OSX Mavericks I have some large font families with long names but i can't see the full name in the drop down in the content editing section, and there doesn't seem to be away to expand the toolbar to make them fully vi

  • [PS CS5] Type tool-related crash.

    The Checklist: Photoshop CS5 12.0.4 x64 running on a Windows 7 x64 SP1 machine, with 8 GBs of RAM, plenty HD space on both drives (174GB free on C, 321GB free on D), no related software interferring with Photoshop that I know off, besides an Intuos 4

  • How to setpage/workset in a role on toplevel-navigation instead of role

    Hi all, Guess the are one page and one workset in our role, as follow: role1 (Role) page1 (Page) other iviews workset1 (Workset) other iviews By default, the role1 is shown in the toplevel navigation, how to set the page1 and workset1 in the topleave

  • Dynamic UI modification

    Hi experts, I need to change the datasource property of TABLE UI Element based on some condition. i.e if Condition satisfies, I should bind One MappedNode and if it fails , I should bind another MappedNode.  Can anybody please help me regarding this