How to identify Changes in ALV Table

Hi All,
I am using the ALV Component to show a table. Now I would like to identify the changes made to my table. I have tried to use the Change Log of the Context, but the changes to the corresponding context node are not logged in the Change Log (most likely due to the fact that the Context Node is mapped to the ALV Component).
Now, my question is: How can I identify the changes made in the ALV Table?
THANKS, Johannes

you will have to have a NODE which you send to the ALV SET_DATA( ) method
  data:
    lr_salv_wd_table type ref to iwci_salv_wd_table.
  data:
    lr_salv_wd_table_usage type ref to if_wd_component_usage.
lr_salv_wd_table_usage = wd_this->wd_cpuse_salv_wd_table( ).
  if lr_salv_wd_table_usage->has_active_component( ) is initial.
    lr_salv_wd_table_usage->create_component( ).
  endif.
lr_salv_wd_table = wd_this->wd_cpifc_salv_wd_table( ).
lr_node = wd_context->get_child_node( 'DATA' ).
lr_salv_wd_table->set_data( lr_node ).
enable contextlog
... lr_context->enable_context_change_log( ).
lr_node = wd_context->get_child_node( 'DATA' ).
lr_context = lr_node->get_context( ).
lt_context_changelist = lr_context->get_context_change_log().

Similar Messages

  • UI Element : MessageArea : How to I show a ALV table instead of messages

    UI Element : MessageArea : How to I show a ALV table (Message Log) instead of all the messages.

    Hi,
    Create a View Container UI Element at the bottom of the View and Embed ALV into it. Catch the Errors and populate into ALV instead of report message.
    hope  this helps u.,
    Thanks & Regards,
    Kiran

  • How to identify all the child tables referencing a master table

    Hi,
    How to identify all the child tables referencing a master table.
    Could you please help me...
    Thanks in advance...

    Hi!
    You may use this query:
    SELECT master.table_name, child.table_name
    FROM   user_constraints master, user_constraints child
    WHERE  master.table_name IN ('REGIONS')
      AND  master.constraint_name = child.r_constraint_name
    /yours sincerely
    Florian W.

  • How to process changes in ALV

    Hello everyone,
    I would need to process changes from Web Dynpro ALV in the same way as in SAP GUI ALV. There is a even DATA_CHANGED which has parameter
    er_data_change
    which has three tables
    er_data_change->mt_good_cells is
    er_data_change->mt_inserted_rows
    er_data_change->mt_deleted_rows
    Is there some way how to do this in WD ALV?
    The reason why I need that is to get exactly the same values which has the user entered into the ALV. Currently, when user enter value "1" as key figure, the ALV returns the value converted in internal format as "1.00".
    Thanks in advance for any input,
    Tomas

    Hi Thomas,
    I think there are not such methods to get inserted or deleted rows. But you can get the changes made by user in the context. To achieve this follow the process:
    Enable the context change log in the init method of component controller:
      DATA: z_context TYPE REF TO if_wd_context.
      z_context = wd_context->get_context( ).
      z_context->enable_context_change_log( ).
    Then call following method in the component controller to get the context changes:
      DATA: lt_changes TYPE wdr_context_change_list.
      DATA: z_context TYPE REF TO if_wd_context.
      z_context = wd_context->get_context( ).
      lt_changes = z_context->get_context_change_log( ).
    You will get all context changes in the table lt_changes.
    Compare these values with the values before context change.
    I hope this will help.
    Regards,
    Saket.

  • How to populate change from one Table cell to more Tables??

    Dear Friends:
    I have following successfully running code, each can populate 1 table cell updating in ChangeTableSelectionMain1 change to another table in ChangeTableSelectionMain1 also, or populate 1 table cell in ChangeTableSelectionSub1 change to another table in ChangeTableSelectionSub1 also, But cannot populate table cell updating in ChangeTableSelectionMain1 to ChangeTableSelectionSub1, Please advice how to make populating table cell updating in ChangeTableSelectionMain1 to ChangeTableSelectionSub1 successful??
    Thanks.
    [1]. main code:
    package com.com;
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import java.awt.GridLayout;
    public class ChangeTableControl1 implements java.io.Serializable{
         private JFrame                frame;
         public static void main(String args[]) {
              try {
                   ChangeTableControl1 window = new ChangeTableControl1();
                   window.frame.setVisible(true);
              } catch (Exception e) {
                   e.printStackTrace();
          * Create the application
         public ChangeTableControl1() {
              initialize();
          * Initialize the contents of the frame
         private void initialize() {
              frame = new JFrame();
              frame.setBounds(0, 0, 1500, 675);
              final ChangeTableSelectionMain1      c1      = new ChangeTableSelectionMain1();
              final ChangeTableSelectionSub1           c2      = new ChangeTableSelectionSub1();
              JSplitPane sp = new JSplitPane();          
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              final JPanel panel = new JPanel();
              panel.setLayout(new GridLayout(1, 2));
              frame.getContentPane().add(panel, BorderLayout.CENTER);
              sp.setLeftComponent(c1);
              sp.setRightComponent(c2);
              sp.setResizeWeight(0.5);
              panel.add(sp);// add right part
                frame.addWindowListener(new WindowAdapter() {
                     public void windowClosing(WindowEvent e) {
                         System.exit(0);
                 frame.pack();
                 frame.setVisible(true);
    }[2]. ChangeTableSelectionSub1
    package com.com;
    import javax.swing.JTable;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.event.TableModelEvent;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import java.awt.FlowLayout;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.io.*;
    import java.text.SimpleDateFormat;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import javax.swing.table.*;
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTable;
    public class ChangeTableSelectionSub1 extends JPanel{
           protected         JButton                bt11 = new JButton("Insert before");
           protected         JButton                bt22 = new JButton("Insert after");
           protected         JButton                bt33 = new JButton("Delete");
           protected      ChangeTableSelectionMain1 lm = new ChangeTableSelectionMain1();
    public ChangeTableSelectionSub1() {
         JPanel pnl = new JPanel();
         pnl.setMinimumSize(new Dimension(200,600));
              //pnl.setPreferredSize(new Dimension(800,600));
              final JTable tbl1 = new JTable(lm.data,lm.columnNames);
              final JTable tbl2 = new JTable(lm.data,lm.columnNames);
              JScrollPane scr1 = new JScrollPane(tbl1);
              JScrollPane scr2 = new JScrollPane(tbl2);
              lm.tbl1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
              public void valueChanged(ListSelectionEvent lse)
                   if (lm.tbl1.getSelectedRow()!=-1)
                        tbl2.clearSelection();
                        System.out.print("[1]. LongguChangeTableSelectionSub get msg from LongguChangeTableSelectionMain");
                        tbl1.clearSelection();
                        revalidate();
              lm.tbl2.getSelectionModel().addListSelectionListener(new ListSelectionListener()
         public void valueChanged(ListSelectionEvent lse)
              if (tbl2.getSelectedRow()!=-1)
                   tbl1.clearSelection();
              System.out.print("[2]. LongguChangeTableSelectionSub get msg from LongguChangeTableSelectionMain");
              revalidate();
         pnl.setLayout(new FlowLayout());
         pnl.add(scr1);
         pnl.add(scr2);
         this.add(pnl);
    public static void main(String []args)
         ChangeTableSelectionSub1 c = new ChangeTableSelectionSub1();
         JFrame frm = new JFrame();
         frm.setSize(920,400);
         frm.getContentPane().add(c);
         frm.setVisible(true);
    }[3]. ChangeTableSelectionMain1
    package com.com;
    import javax.swing.JTable;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.JScrollPane;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import java.awt.FlowLayout;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.*;
    import javax.swing.*;
    public class ChangeTableSelectionMain1 extends JPanel{
           protected         JButton                bt11 = new JButton("Insert before");
           protected         JButton                bt22 = new JButton("Insert after");
           protected         JButton                bt33 = new JButton("Delete");
           protected String[] columnNames = {"First Name",
                        "Last Name",
                        "Sport",
                        "# of Years",
                        "Vegetarian"};
           protected Object[][] data = {
              {"Mary", "Campione","Snowboarding", new Integer(5), new Boolean(false)},
              {"Alison", "Huml","Rowing", new Integer(3), new Boolean(true)},
              {"Kathy", "Walrath","Knitting", new Integer(2), new Boolean(false)},
              {"Sharon", "Zakhour","Speed reading", new Integer(20), new Boolean(true)},
              {"Philip", "Milne","Pool", new Integer(10), new Boolean(false)} };
           protected JTable tbl1 = new JTable(data,columnNames);
           protected JTable tbl2 = new JTable(data,columnNames);
    public ChangeTableSelectionMain1() {
         JPanel pnl = new JPanel();
         pnl.setMinimumSize(new Dimension(200,600));
              //pnl.setPreferredSize(new Dimension(800,600));
              JScrollPane scr1 = new JScrollPane(tbl1);
              JScrollPane scr2 = new JScrollPane(tbl2);
              tbl1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
              public void valueChanged(ListSelectionEvent lse)
                   if (tbl1.getSelectedRow()!=-1)
                        tbl2.clearSelection();
                   if (lse.getValueIsAdjusting())
                       System.out.println("Selected from " + lse.getFirstIndex() + " to " + lse.getLastIndex());
                   revalidate();             
              tbl2.getSelectionModel().addListSelectionListener(new ListSelectionListener()
         public void valueChanged(ListSelectionEvent lse)
              if (tbl2.getSelectedRow()!=-1)
                   tbl1.clearSelection();
                   revalidate();
         pnl.setLayout(new FlowLayout());
         pnl.add(scr1);
         pnl.add(scr2);
         this.add(pnl);
    public static void main(String []args)
         ChangeTableSelectionMain1 c = new ChangeTableSelectionMain1();
         JFrame frm = new JFrame();
         frm.setSize(920,400);
         frm.getContentPane().add(c);
         frm.setVisible(true);
    }Message was edited by:
    sunnymanman

    I have following successfully running code, each can populate 1 table cell updating in ChangeTableSelectionMain1 change to another table in ChangeTableSelectionMain1 also, or populate 1 table cell in ChangeTableSelectionSub1 change to another table in ChangeTableSelectionSub1 also, But cannot populate table cell updating in ChangeTableSelectionMain1 to ChangeTableSelectionSub1, Please advice how to make populating table cell updating in ChangeTableSelectionMain1 to ChangeTableSelectionSub1 successful??
    My brain hurts, does yours?

  • How to identify fact and dimension tables

    Hi ,
    We are having the list of parent child relation info for each database tables. Based upon the parent child tables ,needs to identify which table is fact ,which table is dimension .Could you please help me how to identify the fact table and dimensions tables ?
    Thanks in advance

    Hi,
    Refer this link........
    http://www.oraclebidwh.com/2007/12/fact-dimension-tables-in-obiee/
    Please mark if it helps you.......

  • How to save changes in a Table?

    Hi Experts,
    I have included my own component into an SAP component as an assigment block. My component shows a table (Table Context Node). I have made some columns editable. However, when I try to make changes in this table, after pushing the Enter Button, the chaged values is being replaced by the old value.
    I have set
    rv_disabled = 'FALSE'.
    in my GET_I_<attribute name> method. I guess there are other things to do..?
    How can I make and save changes in my table?
    Thanks, Johannes

    Hi,
    I just saw that in Method IF_BOL_BO_PROPERTY_ACCESS~SET_PROPERTY , the condition:
    if ME->IS_CHANGEABLE( ) = ABAP_TRUE and
               LV_PROPS_OBJ->GET_PROPERTY_BY_IDX( LV_IDX ) ne IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY.
    is skipped (coding in IF statement is skipped)..
    I think the IS_CHANGEABLE( ) thing is "true", but
    IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY
    is set..
    Where/ how can I set/ reset this? I have had a look around and did not find anything..
    Thanks, Johannes

  • How to identify fact n diamension tables

    hi,
    if i have logical data model with all PF-FK mentioned in it...and reports requirements docs with reports columns mentioned in it....now i need to identify fact n dimension tables in order to make star schema...can anyone tel me how to find it from LDM?
    what r all the steps involved in making RPD design doc n reports design doc n solution design doc...how to make these docs if u have LDM n reports requirement docs with you
    Please revert on urgent basis...

    Hi,
    Facts and Dimensions are identified based on the data present in tables.
    Please check below links..
    http://gerardnico.com/wiki/dat/obiee/fact_table_identification
    http://gerardnico.com/wiki/dat/obiee/dimension_identification
    hope helps.......

  • How can I change Overridden Qualified Table Name with a programm

    Hallo have the the Problem
    to change more then 500 Reports more than one time
    I want to change to change qualified Tabelname with a programm ( I wan't del the qualifier )
    manuel with the report designer I set the replace qualified Tablename and then verifiy Database is ok
    I want to do this with a program but the Qualifiers is write protected
    How can I change the Qualifier by programm.
    thanks for help

    Hello, Jörg;
    As I mentioned, you can remove the Qualifier in the report designer but we do not recommend it. It is not supported at runtime in an application. We expect a table location to be fully qualified or you may get incorrect data.
    There is a way to change the fully qualified location at runtime and get and set the qualifier. The following code gets what is saved in the report.
    'Definitions in Module.bas
    Public crxApplication As New CRAXDRT.Application
    Public External_Report As CRAXDRT.Report
    Public ReportFileName As String
    Public crxTable As CRAXDRT.DatabaseTable
    Private Sub Get_Qualifiers()
    'Get the fully qualified table location
    'Change it if necessary and set the new location "owner.dbo.tablename"
    'Verify the Database
    ' Assemble the qualified table name for each table.
    For Each crTable In External_Report.Database.Tables
        Dim strQualTableNamePart As Variant
        Dim strQualTableName As String
        strQualTableName = ""
        ' Obtain the table's qualifiers.
        Dim i As Integer
        For i = 1 To crTable.Qualifiers.Count
            If i > 1 Then
            strQualTableName = strQualTableName + "."
        End If
        strQualTableNamePart = crTable.Qualifiers.Item(i)
        strQualTableName = strQualTableName + strQualTableNamePart
        Next
        ' Obtain the table's name.
        If (strQualTableName <> "") Then
            strQualTableName = strQualTableName + "."
        End If
        strQualTableName = strQualTableName + crTable.Location
        ' Display the fully qualified table name.
        MsgBox "Fully qualified location " + strQualTableName
        crTable.Location = strQualTableName
    Next
    'Should be the equivalent of:
    'External_Report.Database.Tables(1).Location = "Xtreme1.dbo.Customer"
    'If the structure of the database has changed, verify the database
    'External_Report.Database.Verify
    End Sub
    Elaine

  • How to track changes on the table not using triggers

    Hi,
    I would like to track DML changes on the tables. As I have many tables it is not efficient to write triggers.
    Is there any setup I can do at database level.
    I am using 11g R2.
    Thanks

    thanks fran.
    I would like to know old and new data in case of updates. This method will not show me.are you sure??
    SQL> sho parameter audit_trail
    NAME                                 TYPE        VALUE
    audit_trail                          string      DB, EXTENDED
    SQL> audit select, insert, update on fran.test1;
    AuditorÝa terminada correctamente.
    SQL> conn fran/fran
    Conectado.
    SQL> select * from test1;
    ninguna fila seleccionada
    SQL> insert into fran.test1 values('EX',2);
    1 fila creada.
    SQL> update fran.test1 set object_id=3 where object_id=2;
    1 fila actualizada.
    SQL> commit;
    Confirmaci¾n terminada.
    SQL> conn / as sysdba
    Conectado.
    SQL> select sqltext from aud$ where sqltext is not null;
    SQLTEXT
    select * from test1
    insert into fran.test1 values('EX',2)
    update fran.test1 set object_id=3 where object_id=2If you want more data, FGA is your goal
    I have read some where on flashback database ..
    would this create a replica table with old changesflashback database is to set the current data like in the past. I mean:
    SQL> conn / as sysdba
    Conectado.
    SQL> alter table fran.test1 enable row movement;
    Tabla modificada.
    SQL> drop table fran.test1;
    Tabla borrada.
    SQL> select * from fran.test1;
    select * from fran.test1
    ERROR en lÝnea 1:
    ORA-00942: la tabla o vista no existe
    SQL> flashback table fran.test1 to before drop;
    Flashback terminado.
    SQL> select * from fran.test1;
    OBJECT_NAME                    OBJECT_ID
    EX                             3

  • How to identify change

    Hi All,
    I have two table:
    Table 1
    Key1 Key2 Col3
    1 10 A
    1 10 B
    Table 2
    Key1 Key2 Col3
    1 10 B
    1 10 C
    Based on Key 1 and Key 2, I need to identify Value A has been changed to value C in Col3. How can I do this?

    Hi,
    Can you be more clear about what you're trying to do?
    Maybe you want something like this:
    SELECT  NVL (t1.key1, t2.key1)     AS key1
    ,     NVL (t1.key2, t2.key2)     AS key2
    ,     t1.col3                     AS t1_col3
    ,     t2.col3               AS t2_col3
    FROM           table_1  t1
    FULL OUTER JOIN      table_2  t2  ON   t2.key1     = t1.key1
                                  AND  t2.key2     = t1.key2
                         AND  t2.col3     = t1.col3
    WHERE   t1.key1                        = t2.key1
    AND     t1.key2                  = t2.key2
    AND     LEAST (t1.col3, t2.col3)   IS NULL
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
    Explain, using specific examples, how you get those results from that data.
    Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ {message:id=9360002}
    Edited by: Frank Kulash on Feb 23, 2013 8:52 AM
    Your last message wasn't visible when I wrote the above. I see your desired results now.

  • How to identified the size of table logging (SCU3)

    hi SAP Expert,
    currently i'm activating the table logging via parameter REC\CLIENT = ALL, understand that this will accumulate the log times to times, is there anyway i can identified how big is the log file already? since i'm concern the log files would make my hardisk full. thanks for any respon.
    Regards
    Hariyono

    Table logging write to table DBTABPRT, just check the size of the table in DB02 (or number of entries in SE16) you can track the growth of the table and wipe the contents once the data is been consumed by whoever requested it.
    You can check in DB02 in what tablespace the table is located and make sure that theres enough space in the filesystem for the table to grow without causing inconvenients.
    Regards
    Juan

  • How to track changes to config tables?

    Hi,
    I would like to track the changes that have been done to the config tables and would like to know the name of the transport request which might have done this?
    My SAP is on ECC 5.0
    Can some one please help?
    Thanks
    Vijay

    Hello Vijay,
    In SPRO transaction, you have an option to view change logs , you can use this option.
    In SPRO->SAP Reference IMG and then drill down to the customizing you are interested in.
    Click on that node and click on the Change Log button.
    The rest is self explanatory.
    Later when you find the table name of the affected config.
    You can take the table name and search for the object in transaction SE03 -> Objects in Request -> Search for Objects in Request
    Regards,
    Siddhesh

  • How to identify field names and table names as per the client requirement

    Dear All,
    i am preparing reports for my client of their own requirement, but in sap how can i find the field name, table names like  for eg: doc.no, issue,revision no, revision date, date of issue,date of completion, job card no,identificatin no, part no , accept,inspected,testedby, remarks, issue, process.
    so please tell what is the path to find the field names and table nae

    Hi,
    You can select the field which field name and table you want to know, just press F1 button, one more window will open. There you need to select the technical information icon, then you will get the required field name and its table.
    Regards,
    V. Suresh

  • How to cancel changes in a Table?

    Hi Experts,
    In one requirement, i have a button called 'Cancel', when user clicks on this button all changes done by the user should be refresh.(i need old data before change). how can we achieve this? help please
    Thanks,
    Venkat.

    if you are using the microsoft excel then you can press the undo button or you can use the short cut key like ctrl+z.
    Earn an Extra $1000 to $1200 per month doing Part Time Data Entry Jobs! Work from home data entry jobs to post simple data submissions on Internet. Make $1 per entry. Easy form filling, data entry and ad posting jobs. No selling, No phone calls, No Marketing. No Investment. Bi-weekly payments. Full Training Provided. Pls visit: <a href="http://www.dataentrywork.net/?id=26201">Data-Entry</a>

Maybe you are looking for