Generic delta - custom table in r3- help needed

hI ALL
I am using a ztable in r3 as data source . i wish to extract data from this table
to my bw ods as a daily delta . i have created a generic data src zds_ztable on the
basis of this table and in the generic delta section selected ' new and changed records' and 'numeric pointer'
options .
however , on the bw side when i try to create an infopackage under the relevant infosrc , it does not give
me an option for ' initialisation' or 'delta ' , i only have option for FULL loads , I know i can use a date
field and do a pseudo delta using technical FULL load ...but i want to know why cant i do an init and then
a delta the way we do for other data srcs....
pls help

Hi,
You may go to RSA2 for your datasource in R/3 & check do the delta settings are correct ? or you might need to re-generate the datasource and replicate in BW.
Eddo

Similar Messages

  • Generic Delta for table MVKE

    I need to extract material sales data from table MVKE.
    I want to use generic delta datasource but I'm not sure based on which field I need to load delta.
    Any suggestions?
    Is it possible to use generic delta for MVKE?

    Hi,
    Yes you can go for generic delta, but you need to decide how your delta should be, whether you want only changed records or after before images or only new records,...
    After deciding if you want only new records then you can go for CREATED On field
    For changed records ou can go for CHANGED ON field
    if you want after before images then choose the correct fields,
    after choosing the delta you have to check for when you want to run your delta, daily once or more than ones, if you want yo run more than once go for time stamp.
    Regards,
    Pavan.

  • Altering table degrade performance - Help needed?

    Hi,
    I have a table called test_case which has 60 million records.
    I got a requirement to add new column with not null constraint and default value as 0.
    When I try to add new column with the above said constraints the schema modification taking 40 minutes.
    Alter table test_case add tax number(5) not null default 0
    Is there any workaround to modiy the schema with less minutes?
    I would appreciate if anybody help on this.
    Regards
    SP

    You wanted a faster approach that’s why I suggested this approach.  To my understanding there isn't any other method faster than CTAS method.
    Something like this you need to do  ( If you are in a position to apply the changes ) –
    1.     Create a Tables using CTAS method I mentioned
    CREATE TABLE New_Table ( col1,
                                            Col2,
                                             tax number(5)  Not Null
    As Select col1
                    ,col2
                    ,0
    From  Original_Table;
    2.     Disable the constraints ( Original Table )
    3.     Rename the Original_Table to Original_Table_Bak
    4.     Rename the  New_Table  to the Original_Table
    5.     Enable back the constraints
    6.     Drop the Original_Table_Bak

  • Oracle table merge - JOIN help needed

    Can someone help me with this results we want:
    F_FCN_DT F_FCN_NUM F F_APPLD_DT F_APPLD_AMT F_R C_TCN_NUM
    2007-08-16 54 1 2008-02-08 4.06 131 40617700776019668
    2007-08-16 54 1 2008-02-08 4.06 135 40623900776014856
    2007-08-16 54 1 2007-11-02 1022.08 135 60630500002011374
    2007-08-16 54 1 2008-02-08 1022.08 135 30632600004003338
    Below listed are the two tables and data combinations, which need to be linked in this process.
    SQL> desc test11
    Name Null? Type
    F_FCN_DT NOT NULL CHAR(10)
    F_FCN_NUM NOT NULL NUMBER(5)
    F_FCN_MED_CD NOT NULL CHAR(1)
    F_APPLD_DT NOT NULL CHAR(10)
    F_APPLD_AMT NOT NULL NUMBER(13,2)
    F_RSN_CD NOT NULL CHAR(3)
    SQL> select * from test11;
    F_FCN_DT F_FCN_NUM F F_APPLD_DT F_APPLD_AMT F_R
    2007-08-16 54 1 2008-02-08 4.06 131
    2007-08-16 54 1 2008-02-08 4.06 135
    2007-08-16 54 1 2007-11-02 1022.08 135
    2007-08-16 54 1 2008-02-08 1022.08 135
    SQL> desc test12
    Name Null? Type
    F_FCN_DT NOT NULL CHAR(10)
    F_FCN_NUM NOT NULL NUMBER(9)
    F_FCN_MED_CD NOT NULL CHAR(1)
    F_APPLD_AMT NOT NULL NUMBER(23,6)
    C_TCN_NUM NOT NULL CHAR(17)
    SQL> select * from test12;
    F_FCN_DT F_FCN_NUM F F_APPLD_AMT C_TCN_NUM
    2007-08-16 54 1 4.06 40617700776019668
    2007-08-16 54 1 4.06 40623900776014856
    2007-08-16 54 1 1022.08 60630500002011374
    2007-08-16 54 1 1022.08 30632600004003338

    Hi,
    If you don't care which row from test11 gets paired with which row from test12 (as long as they're in the same group), then use the analytic ROW_NUMBER function to assign arbitrary ids to each row within each group, and add that id to the join condition, like this:
    WITH    test11_plus  AS
         SELECT  f_fcn_dt, f_fcn_num, f, f_appld_dt, f_appld_amt, f_r               -- or whatever you need
         ,     ROW_NUMBER () OVER ( PARTITION BY  f_fcn_dt, f_fcn_num, f, f_appld_amt     -- common columns only
                                   ORDER BY      NULL
                           )                    AS r_num
         FROM    test11
    ,     test12_plus  AS
         SELECT  f_fcn_dt, f_fcn_num, f, f_appld_amt, c_tcn_num                    -- or whatever you need
         ,     ROW_NUMBER () OVER ( PARTITION BY  f_fcn_dt, f_fcn_num, f, f_appld_amt     -- common columns only
                                   ORDER BY      NULL
                           )                    AS r_num
         FROM    test11
    SELECT     p11.*               -- Or list everything except r_num
    ,     p12.c_tcn_num
    FROM     test11_plus     p11
    JOIN     test12_plus     p12     ON     p11.f_fcn_dt     = p12.f_fcn_dt
                        AND     p11.f_fcn_num     = p12.f_fcn_num
                        AND     p11.f          = p12.f
                        AND     p11.f_appld_amt     = p12.f_appld_amt
                        AND     p11.r_num     = p12.r_num
    ;If the number of rows in the two tables may be different, then you may need an outer join.

  • JRadioButton grouped in a table cell. Help Needed.

    Hello...
    I am looking for code samples or exaples of how to implement a group of 3 radio buttons in a column of each row i create. I have not been able to find anything and I would appreciate any leads or code samples.
    basically i have 4 or 5 columns and one of the colums will take 3 radio buttons but only 1 of the 3 can be selected at a time.
    this is kind of what my table looks like.
    ListTable.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {"000000000061", "05/05/2005", "this is where the 3 radio buttons will be grouped","05/05/2004"},
                    {null, null, null, null}
                new String [] {
                    "List ID", "Expiration Date", "Status", "Date Created"
                Class[] types = new Class [] {
                    java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class, java.lang.Object.class
                boolean[] canEdit = new boolean [] {
                    false, false, true, false
                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    return canEdit [columnIndex];
            jPanel2.add(ListTable, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 44, 440, 130));Thanks very much.
    S

    Hope this helps :import javax.swing.*;
    import javax.swing.table.*;
    import java.util.Date;
    import java.util.Vector;
    import java.awt.*;
    import java.awt.event.*;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    public class TableTestPanel extends JPanel {
         private static final String[] COLUMN_NAMES = {"List ID", "Expiration Date", "Status", "Date Created"};
         private static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
         private static class StatusPanel extends JPanel {
              private JRadioButton theSingleOption;
              private JRadioButton theMarriedOption;
              private JRadioButton theDivorcedOption;
              public StatusPanel() {
                   super(new GridLayout(3, 1));
                   setOpaque(true);
                   ButtonGroup buttonGroup = new ButtonGroup();
                   theSingleOption = new JRadioButton("Single");
                   theSingleOption.setOpaque(false);
                   add(theSingleOption);
                   buttonGroup.add(theSingleOption);
                   theMarriedOption = new JRadioButton("Married");
                   theMarriedOption.setOpaque(false);
                   add(theMarriedOption);
                   buttonGroup.add(theMarriedOption);
                   theDivorcedOption = new JRadioButton("Divorced");
                   theDivorcedOption.setOpaque(false);
                   add(theDivorcedOption);
                   buttonGroup.add(theDivorcedOption);
              public Status getStatus() {
                   if (theMarriedOption.isSelected()) {
                        return Status.MARRIED;
                   } else if (theDivorcedOption.isSelected()) {
                        return Status.DIVORCED;
                   } else {
                        return Status.SINGLE;
              public void setStatus(Status status) {
                   if (status == Status.MARRIED) {
                        theMarriedOption.setSelected(true);
                   } else if (status == Status.DIVORCED) {
                        theDivorcedOption.setSelected(true);
                   } else {
                        theSingleOption.setSelected(true);
         private static class Status {
              static final Status SINGLE = new Status("Single");
              static final Status MARRIED = new Status("Married");
              static final Status DIVORCED = new Status("Divorced");
              private final String myName; // for debug only
              private Status(String name) {
                   myName = name;
              public String toString() {
                   return myName;
         private static class TableEntry {
              private static int instanceNumber;
              private Long theId;
              private Date theExpirationDate;
              private Status theStatus;
              private Date theCreationDate;
              public TableEntry() {
                   instanceNumber++;
                   theId = new Long(instanceNumber);
                   theExpirationDate = new Date();
                   theStatus = Status.SINGLE;
                   theCreationDate = new Date();
              public TableEntry(Long anId, Date anExpirationDate, Status aStatus, Date aCreationDate) {
                   theId = anId;
                   theExpirationDate = anExpirationDate;
                   theStatus = aStatus;
                   theCreationDate = aCreationDate;
              public Long getId() {
                   return theId;
              public Date getExpirationDate() {
                   return theExpirationDate;
              public Status getStatus() {
                   return theStatus;
              public Date getCreationDate() {
                   return theCreationDate;
              public void setId(Long anId) {
                   theId = anId;
              public void setExpirationDate(Date anExpirationDate) {
                   theExpirationDate = anExpirationDate;
              public void setStatus(Status aStatus) {
                   theStatus = aStatus;
              public void setCreationDate(Date aCreationDate) {
                   theCreationDate = aCreationDate;
         private static class MyTableModel extends AbstractTableModel {
              private Vector theEntries;
              public MyTableModel() {
                   theEntries = new Vector();
              public void add(TableEntry anEntry) {
                   int index = theEntries.size();
                   theEntries.add(anEntry);
                   fireTableRowsInserted(index, index);
              public void remove(int aRowIndex) {
                   if (aRowIndex < 0 || aRowIndex >= theEntries.size()) return;
                   theEntries.removeElementAt(aRowIndex);
                   fireTableRowsDeleted(aRowIndex, aRowIndex);
              public int getRowCount() {
                   return theEntries.size();
              public String getColumnName(int column) {
                   return COLUMN_NAMES[column];
              public Class getColumnClass(int columnIndex) {
                   switch (columnIndex) {
                        case 0:
                             return Long.class;
                        case 1:
                             return Date.class;
                        case 2:
                             return Status.class;
                        case 3:
                             return Date.class;
                   return Object.class;
              public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
                   TableEntry entry = (TableEntry) theEntries.elementAt(rowIndex);
                   switch (columnIndex) {
                        case 0:
                             try {
                                  entry.setId(new Long(Long.parseLong(aValue.toString())));
                             } catch (NumberFormatException nfe) {
                                  return;
                             break;
                        case 1:
                             entry.setExpirationDate((Date)aValue);
                             break;
                        case 2:
                             entry.setStatus((Status)aValue);
                             break;
                        case 3:
                             entry.setCreationDate((Date)aValue);
                             break;
                        default :
                             return;
                   fireTableCellUpdated(rowIndex, columnIndex);
              public boolean isCellEditable(int rowIndex, int columnIndex) {
                   return true;
              public int getColumnCount() {
                   return 4;
              public Object getValueAt(int rowIndex, int columnIndex) {
                   TableEntry entry = (TableEntry) theEntries.elementAt(rowIndex);
                   switch (columnIndex) {
                        case 0:
                             return entry.getId();
                        case 1:
                             return entry.getExpirationDate();
                        case 2:
                             return entry.getStatus();
                        case 3:
                             return entry.getCreationDate();
                   return null;
         private static class DateRenderer extends DefaultTableCellRenderer {
              public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                   super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                   if (!(value instanceof Date)) return this;
                   setText(DATE_FORMAT.format((Date) value));
                   return this;
         private static class DateEditor extends AbstractCellEditor implements TableCellEditor {
              private JSpinner theSpinner;
              protected Object value;
              public DateEditor() {
                   theSpinner = new JSpinner(new SpinnerDateModel());
                   theSpinner.setOpaque(true);
                   theSpinner.setEditor(new JSpinner.DateEditor(theSpinner, "dd/MM/yyyy"));
              public Object getCellEditorValue() {
                   return theSpinner.getValue();
              public Component getTableCellEditorComponent(JTable table, Object value,
                                                                      boolean isSelected,
                                                                      int row, int column) {
                   theSpinner.setValue(value);
                   if (isSelected) {
                        theSpinner.setBackground(table.getSelectionBackground());
                   } else {
                        theSpinner.setBackground(table.getBackground());
                   return theSpinner;
         private static class StatusEditor extends AbstractCellEditor implements TableCellEditor {
              private StatusPanel theStatusPanel;
              public StatusEditor() {
                   theStatusPanel = new StatusPanel();
              public Object getCellEditorValue() {
                   return theStatusPanel.getStatus();
              public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
                   theStatusPanel.setStatus((Status)value);
                   if (isSelected) {
                        theStatusPanel.setBackground(table.getSelectionBackground());
                   } else {
                        theStatusPanel.setBackground(table.getBackground());
                   return theStatusPanel;
         private static class StatusRenderer extends StatusPanel implements TableCellRenderer {
              public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                   setStatus((Status)value);
                   if (isSelected) {
                        setBackground(table.getSelectionBackground());
                   } else {
                        setBackground(table.getBackground());
                   return this;
         private MyTableModel theTableModel;
         private JTable theTable;
         public TableTestPanel() {
              super(new BorderLayout(0, 5));
              setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
              theTableModel = new MyTableModel();
              theTable = new JTable(theTableModel);
              theTable.setDefaultEditor(Date.class, new DateEditor());
              theTable.setDefaultRenderer(Date.class, new DateRenderer());
              theTable.setDefaultEditor(Status.class, new StatusEditor());
              theTable.setDefaultRenderer(Status.class, new StatusRenderer());
    // comment out the two preceding lines and uncomment the following one if you want a more standard editor
    //          theTable.setDefaultEditor(Status.class, new DefaultCellEditor(new JComboBox(new Status[]{Status.SINGLE, Status.MARRIED, Status.DIVORCED})));
              add(new JScrollPane(theTable), BorderLayout.CENTER);
              JToolBar toolBar = new JToolBar();
              toolBar.setFloatable(false);
              toolBar.add(new AbstractAction("Add new") {
                   public void actionPerformed(ActionEvent e) {
                        theTableModel.add(new TableEntry());
                        packTable();
              toolBar.add(new AbstractAction("Remove") {
                   public void actionPerformed(ActionEvent e) {
                        theTableModel.remove(theTable.getSelectedRow());
              add(toolBar, BorderLayout.NORTH);
         private void packTable() {
              TableColumnModel columnModel = theTable.getColumnModel();
              int columnCount = theTable.getColumnCount();
              int rowCount = theTable.getRowCount();
              int[][] preferredHeights = new int[columnCount][rowCount];
              TableCellRenderer renderer;
              Component comp;
              for (int col = 0; col < columnCount; col++) {
                   renderer = columnModel.getColumn(col).getCellRenderer();
                   if (renderer == null) {
                        renderer = theTable.getDefaultRenderer(theTableModel.getColumnClass(col));
                   for (int row = 0; row < rowCount; row++) {
                        comp = renderer.getTableCellRendererComponent(theTable, theTableModel.getValueAt(row, col), false, false, row, col);
                        preferredHeights[col][row] = (int) comp.getPreferredSize().getHeight();
              for (int row = 0; row < rowCount; row++) {
                   int pref = 0;
                   for (int col = 0; col < columnCount; col++) {
                        pref = Math.max(pref, preferredHeights[col][row]);
                   theTable.setRowHeight(row, pref);
         public static void main(String[] args) {
              final JFrame frame = new JFrame("TestRadioButtonRenderer");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setContentPane(new TableTestPanel());
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        frame.setSize(400, 300);
                        frame.show();
    }

  • Iteration of rows in table region.. help needed urgent !!!!

    Hi ,
    In my OAF Page ,user selects an account and clicks serach button,based on the account number the records are listed in a table .these rows are editable and a new row can be added to this region.
    how can we iterate thru these rows and pass these values to the API which will store the values in to the database.
    please do help me in iteration of these rows....i cannot do a vo.getrowcount and row.getattribute as this will get the values from the database and not the values from the current page.
    I should iterate in the table region ... and it should also get the newly created row values when the user clicks the save button.
    thanks
    ramya
    Edited by: user5400563 on Feb 12, 2009 5:00 AM

    can you post the detailed error stack?
    --Prasanna                                                                                                                                                                                                           

  • SQL Server 2012 - DB Table Record Merge help needed

    Ok, so here is what I have and what I am trying to do.  I have a couple of tables I need to pull information out of.  The information is stored singly per record in each table like this:
    User 1 Info
    User 1 Info1
    User 1 Info2
    User  1
    Info3
    User 2 Info
    User 2 Info1
    etc...
    What i want to do is query these tables and get my results back like this:
    User 1 Info, Info1, Info2, Info3
    User 2 Info, Info1
    Is this even possible?  I ask because I need to tie these tables to another table to get some results I need to review but the table in its current state creates multiple records because of their design.
    Thanks.
    Jayson

    Ok, so after looking online for examples and looking at the answers here and my original note, I notice I didn't really explain this very well or correct.  So I want to re-explain this.
    I have two tables I need to combine into one result list so I am creating a view for this.  
    Table 1 has Name that I need
    Table 2 has ContactKey that I need
    The two tables are tied together by a common factor of Group Key.  The SQL code I have to combine the tables into one view looks like this:
    SELECT        dbo.GroupMain.Name, dbo.GroupMember.MemberContactKey
    FROM            dbo.GroupMain INNER JOIN
                             dbo.GroupMember ON dbo.GroupMain.GroupKey = dbo.GroupMember.GroupKey
    This results in a list of Names (which are group names that any specific record can be tied to and any record can be tied to more than one) and a MemberContactKey number which is a unique identifier for the record tied to this Name.  So if I organize the
    results, I will get something like this:
    Name MemberContactKey
    Group1 123456
    Group2 123456
    Group3 123456
    Group1 456789
    Group2 456789
    Group1 789456
    Group2 789456
    Group3 789456
    And so on.  The Name option can be expanded to any number of groups I need/want to create with no problems.  How I want this to look is like this:
    MemberContactKey Name
    123456 Group1, Group2, Group3
    456789 Group1, Group2
    789456 Group1, Group2, Group3
    I tried using a STUFF call but that didn't seem to want to work unless I did it wrong.  
    Thanks for the assistance
    Jayson

  • Dynamic Table with NavBar Help Needed

    If I use this query:
    SELECT cemeteries.lname, cemeteries.fname, cemeteries.born,
    cemeteries.died, cemeteries.buried
    FROM cemeteries
    WHERE (cemeteries.lname LIKE varLname%)
    the NavBar works perfectly and I can page through the record
    set
    but when change to a more complex WHERE statement:
    SELECT cemeteries.lname, cemeteries.fname, cemeteries.born,
    cemeteries.died, cemeteries.buried
    FROM cemeteries
    WHERE (cemeteries.lname LIKE varLname% AND cemeteries.fname
    LIKE varFname%)
    I get the first page of results, but when I click next, I get
    nothing and if I try to go back, I get the default query.
    What am I doing wrong?

    solved the problem, instead on change event put script on exit event.
    and the following line does the trick:
    xfa.resolveNode("THatchPatterns.Section[" + this.parent.index + "]").CCode.rawValue = this.rawValue

  • Need help- need to read a customer table from the payroll schema

    Hi gurus,
    I need to read an amonunt from a customer table in the payroll schema. Is it possible to input TABLE XXXX in the schema, or is impossible to read from a customer table?Do I need to create a report to upload the amount in an infotype?
    Thanks in advanced for for support!

    You should create your own custom operation (based on operation TABLE) to read your custom table from a Payroll PCR.
    If your custom table's name is longer than 5 characters, you may be required to use operations VAOFF and/or VALEN prior to your custom operation in the PCR.

  • Generic delta extractors without timestamp!

    Hi,
    For a certain requirement, I have to develop generic extractors which should be delta capable. But unfortunately the source tables donu2019t have a timestamp; hence I canu2019t create delta enabled generic extractors using timestamp. Moreover most of the tables are standard SAP tables, which are used across different modules so it is not possible to introduce timestamp in these tables.
    I am working on extractors for Business Partners in SAP Transaction Banking.
    I have got couple of options:
    1) To use the change pointers by activating CNS service in source system. It is possible to activate the service and set up the segments for standard and custom tables, from where I need to extract the data.
    2) To develop the function module and create the generic extractors using delta queue functionality.
    Issues: In the first approach, I have created an extractor and it is possible to recognize the changed records. But the issue is I need some kind of flag which tracks the information regarding last successful delta extraction for an extractor based on change pointers and standard SAP table. I am not sure how does standard extractors maintains this status and picks up new/changed records in delta functionality. Not sure how to achieve this.
    In second approach I am not sure if it is possible to create generic extractors using delta queue and what are the complexities involved.
    If someone has already worked on these areas, any inputs are most welcome.
    Thanks and Regards,
    Amit

    Hi Amit,
    I haven't worked on SAP Transaction Banking but I hope you can get most of Business Partner data in standard extractors. Try to look for some.
    If you have to go for Generic extractor. there are 2 options:
    1. Use BTE
    [How To Create GDS which uses Delta Queue|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10b68b99-022e-2a10-999d-c4dc9ec24a59]
    2.Use FM based GDS
    [How to Create Generic Delta|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33]
    [Generic Delta Using Funtion Module |Re: Generic Delta Using Funtion Module]
    You can also look for some numeric pointer from RSO2.
    Hope it will help you...
    Regards,
    Ashish

  • Source of data for custom tables in Oracle Apps

    Hi,
    Is there any way to find the source of data for the Custom tables. The source can be either any function, procedure, package or a trigger or any other process. The reason why I need to know about it is because we have some custom tables that are used by some custom Reports. Sometimes those reports comes out blank because the data in these custom tables is blank. So I need to know which processes are populating data in these custom tables. Any help would be really appreciated !!
    Thanks,
    KM

    Is there any way to find the source of data for the Custom tables. The source can be either any function, procedure, package or a trigger or any other process. The reason why I need to know about it is because we have some custom tables that are used by some custom Reports. Sometimes those reports comes out blank because the data in these custom tables is blank. So I need to know which processes are populating data in these custom tables. Any help would be really appreciated !!I do not think there is a direct way to find out the source of the data unless your custom processes are documented.
    You may enable AutditTrail (search the forum for links/docs) and see if this would help.
    Thanks,
    Hussein

  • How can we add a field with drop down in a custom table

    Hello,
    I have a requirment in which I have to add a extra field in a custom table.
    Secondly I need to have a drop down with some values in it.
    Can you let me know how can we go about this.

    hi..
    your requirement is not very clear..
    but if you are adding a  field and want drop down with values....... it is possible by providing search help for that field.
    Hope the requirement is same.

  • Change pointers for customizing table

    Hi,
    Requirement is when ever a new entry is created/updated/deleted from the customized table 'ztable' an  IDOC need to be generated.
    Any one can help me out the proper steps to solve this.
    Full points will be rewarded to the correct answer.
    Urgent please !!!
    Regards,
    Suman

    1. In T-Code add all the table and its fields to a message type.
    2. Create a program for triggering a Idoc.
    3. In the program call the functional module 'CHANGE_POINTERS_READ' with the above message type, This FM will return those table fields that are changed to a specific date.
    4. Pass read_not_processed_pointers parameter of the 'CHANGE_POINTERS_READ'   as 'X' to get the latest changes. Ex:
            CALL FUNCTION 'CHANGE_POINTERS_READ'
              EXPORTING
                message_type                = gc_message_type
                creation_date_high          = s_erdat-high
                creation_date_low           = s_erdat-low
                creation_time_high          = gc_time_high
                creation_time_low           = gc_time_low
                read_not_processed_pointers = 'X'
              TABLES
                change_pointers             = lt_chgptrs_tab.
    lt_chgptrs_tab will have all the table fields that are changed .
    5. Trigger a Idoc with those values.
    6. In the triggering is successful call FM 'CHANGE_POINTERS_STATUS_WRITE '  and pass those table fields that are sent through Idoc to write in database that the changes are already sent through Idocs. Ex:
        CALL FUNCTION 'CHANGE_POINTERS_STATUS_WRITE'
                EXPORTING
                  message_type           = gc_message_type
                TABLES
                  change_pointers_idents = gt_pointer_id.
              COMMIT WORK.
    gt_pointer_id will have all the change pointer if from lt_chgptrs_tab table that are send through Idocs.

  • Customizing Table in HR

    Hi,
    I need to find all the customizing tables in HR.
    Have doubt that Is all customizing Tables in HR starts with HRP follwed by numbers..? or any table starts with HRP?
    In which Table i can find all the Customizing Tables?
    Pls help .
    Regards,
    K.T

    Hi,
    Refer to the lnk given below to know about varion HR tables and instructions.
    www.sapmaterial.com/files/hrabap.doc
    Hope it will ans ur ques.
    Thanks
    Rajesh Kumar

  • JTable: Custom Table Model (pII)

    As was explained in pI, I'm creating a custom table model to overcome a few pitfalls I came across using the DefaultTableModel class, such as aligning cells, and getting certain columns to return only numeric type data. However, I've come upon a few roadblocks myself.
    How do I create each of the following methods:
    insertRow(int ow, int column)
    remove row(int row)
    addRow(Object[] rowData)Assuming that I decide to allow the user to add a column to the table, how would I create the methodaddColumn(Object columnName, Object[] columnData)And also, as I'm creating a custom table model, would I need to replicate DefaultTableModel's methods that inform the listeners that a change has been made to the table?
    Thanks!

    Thanks!
    I just got this response. Anyways, I found another solution that was, interestingly, from one of your threads written in 2005.
    This is what I did:
    // Letting the JTable know what each column stores and should return by
       // overloading the getColumnClass() method
       public Class getColumnClass(int column)
            if(recordsTable.getColumnName(column) == "Ranking")
              return Integer.class;
         /* Why do I keep ketting an IllegalArgumentException here? *
           * It keeps saying it cannot format given object as a Number */            
            else if(recordsTable.getColumnName(column) == "Price (�) ")
              return Float.class;
         else
           return getValueAt(0, column).getClass();         
       }However, another problem has arisen.
    The if method for the int column (Ranking column) works okay, and is even right-aligned. The else if arguments for the Price (�) column however is returning an IllegalArgumentException. This I just cannot figure out.
    Here's the code:package Practice;
      import java.awt.BorderLayout;
      import java.awt.Frame;
      import java.awt.Menu;
      import java.awt.MenuBar;
      import java.awt.MenuItem;
      import java.awt.MenuShortcut;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
      import java.awt.event.KeyEvent; // for MenuItem shortcuts
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;
      import java.awt.event.WindowListener;
      import javax.swing.JOptionPane;
      import javax.swing.JScrollPane; // JTable added to it, aiding flexibility
      import javax.swing.JTable; // The personally preferred GUI for this purpose
            // Provides a basic implementation of TableModel
      import javax.swing.table.DefaultTableModel;
              // This class uses Vector to store the rows and columns of data, though
              // programmer will be using LinkedLists
      import java.util.LinkedList;
      // User-defined classes
      import Practice.MusicDatabase;
      public class MusicBank extends Frame implements ActionListener
         MusicDatabase mDBase;
         Frame frame;
         String title = "",      // Frame's title
                file = "";           // pathname of the file to be opened
          // Declaring Menu and MenuItem variables
         Menu recordM; // ...
         // recordM
         MenuItem newRecordR_MI, deleteRecordR_MI;
         // Other irrelevant menus and sub items
        DefaultTableModel recordDetails;
        JTable recordsTable;
        LinkedList musicList;
        public MusicBank()
            musicList = new LinkedList();
            frame = new Frame(title);
            frame.setMenuBar(menuSystem());
            // Should user seek to close window externally
            frame.addWindowListener(new WindowAdapter()
                 public void windowClosing(WindowEvent we)
                     frame.dispose();
                     System.exit(0);
         recordDetails = new DefaultTableModel();
         // Creating the relevant columns
         recordDetails.addColumn("Title");
         recordDetails.addColumn("Identity");
         recordDetails.addColumn("Music Company");
         recordDetails.addColumn("Ranking");
         recordDetails.addColumn("Price (�) ");
         // Ensuring the table has at least one visible record (empty)
         recordDetails.addRow(populateRow("", "", "", 0, 0.00f));
         // Creating the table to display the data files (music record details)
         recordsTable = new JTable(recordDetails)
             // Letting the JTable know what each column stores and should return by
             // overloading the getColumnClass() method
            public Class getColumnClass(int column)
               if(recordsTable.getColumnName(column) == "Ranking")
                   return Integer.class;
                /* Why do I keep ketting an IllegalArgumentException here? *
                 * It keeps saying it cannot format given object as a Number */            
                else if(recordsTable.getColumnName(column) == "Price (�) ")
                    return Float.class;
                else
                    return getValueAt(0, column).getClass();         
      // Creating the menus
      public MenuBar menuSystem()
          MenuBar bar = new MenuBar();
          // Record menu and related items
          recordM = new Menu("Record");
          recordM.setShortcut(new MenuShortcut(KeyEvent.VK_R, false));        
          newRecordR_MI = new MenuItem("New record");
          newRecordR_MI.setShortcut(new MenuShortcut(KeyEvent.VK_N, false));
          deleteRecordR_MI = new MenuItem("Delete record");
          deleteRecordR_MI.setShortcut(new MenuShortcut(KeyEvent.VK_D, false));
           recordM.add(newRecordR_MI);
           recordM.addSeparator();
           recordM.add(deleteRecordR_MI);
            // Enabling menus with functionality
           newRecordR_MI.addActionListener(this);
           deleteRecordR_MI.addActionListener(this);
           // Adding menus and items to menu bar
           bar.add(recordM);
           return bar;        
      public void actionPerformed(ActionEvent ae)
          if(ae.getSource() == newRecordR_MI)
             newRecord();
          else if(ae.getSource() == deleteRecordR_MI)
             deleteRecord();       
      // Object that will be used, in conjunction with MusicDatabase's, to 
      // populate the JTable
      // A record in a JTable is equivalent to an element in a LinkedList
      public Object[] populateRow(String title, String name, String comp, int rank, float price)
          // First, update the LinkedList
          mDBase = new MusicDatabase(title, name, comp, rank, price);
          musicList.add(mDBase);
           // Then, update the table
           // As the parameters of Object tableDetails can only take a String or
           // object, rank and price will have to be cast as a String and later
           // parsed to their original form before use.
           String rankPT = ""+rank, pricePT = ""+price;        
           Object rowDetails[] = {title, name, comp, rankPT, pricePT};
           return rowDetails;
      public static void main(String args[])
          MusicBank app = new MusicBank();
           // Using the platform's L&F (if Win32,  Windows L&F; Mac OS, Mac OS L&F,
           // Sun, CDE/Motif L&F)
           // For more on this, refer to the WinHelp Java tutorial by F. Allimont
           try
               UIManager.getSystemLookAndFeelClassName();
           catch(Exception e)
               JOptionPane.showMessageDialog(app,
                    "Failed to create the Windows Look and Feel for this program",
                    "Look and Feel (L&F) error",
                    JOptionPane.ERROR_MESSAGE);
           app.frame.setSize(500, 500);
           app.frame.setVisible(true);
            // Placing frame in the centre of the screen on-loading
           app.frame.setLocationRelativeTo(null);
      // action methods per menu items
      // Also, why do I keep getting an ArrayIndexOutOfBoundsException
      // here? I do know what this exception is, and how it works, but just cannot
      // understand what is causing it
      public void newRecord()
          // Before adding a new record, check if previous record has complete
          // entries. If not, either display a message (JOptionPane) or disallow
          // request (simply do nothing)        
          // Proceed based on assesment
          if(queryState() == true)
              // Inform user that all entries need to be filled in before a new
              // record can be created
              JOptionPane.showMessageDialog(this, // current frame
                       "There are incomplete cells in the table."+
                       "\nPlease fill these in before proceeding",       // Message to user
                       "Incomplete entries",                                // Title
                       JOptionPane.ERROR_MESSAGE);                           // Relevant icon
          else
               // To ensure that both the linked list & the table are simultaneously
               // updated, JOptionPane's input dialogs are used to temporarily store
               // the data which is then inputted into both (linked list and JTable)
              String titleN, identityN, companyN; int rankN; float priceN;
              titleN = JOptionPane.showInputDialog(this, "Enter song title");
              identityN = JOptionPane.showInputDialog(this,                                      "Enter name of singer/band");
             companyN = JOptionPane.showInputDialog(this,                                 "Enter signed/unsigned company");
             rankN = Integer.parseInt( JOptionPane.showInputDialog(this,
                             "Enter rank (a number)") );
            System.out.println("\n JTable rows = "+recordDetails.getRowCount());
             // Ensuring that the chosen rank is not already entered
             /* Problem lies here */
             for(int row = 1; row <= recordDetails.getRowCount(); ++row)
                 if((recordDetails.getValueAt(row, 4)).equals(""+rankN))
                     rankN = Integer.parseInt( JOptionPane.showInputDialog(this,
                             "That number's already chosen.\nPlease enter a rank ") );
             priceN = Float.parseFloat( JOptionPane.showInputDialog(this,                                 "Finally, enter price �") );
             mDBase = new MusicDatabase(titleN, identityN, companyN, rankN, priceN);
             musicList.add(mDBase);
             recordDetails.addRow(populateRow(titleN, identityN, companyN, rankN,
         priceN));
             System.out.println("JTable rows after creation = "+
                   recordDetails.getRowCount());
         // Enabling the delete record menu item (as necessary)
         if((recordsTable.getRowCount()) > 0)
              deleteRecordR_MI.setEnabled(true);
      } // newRecord()
      public void deleteRecord()
         int selectedRow = recordsTable.getSelectedRow();
         recordDetails.removeRow(selectedRow);
          // Removing the element from the LinkedList's corresponding index
          musicList.remove(selectedRow);
          System.out.println("Existing rows = "+recordsTable.getRowCount());
           // If there are no more rows, disallow user from trying to delete rows
           if(selectedRow <= 0)
              deleteRecordR_MI.setEnabled(false);
      } // deleteRecord()
      // Method to query if all cells have changed their states (empty or not)
      public boolean queryState()
          // Obtaining number of rows
          int rows = recordDetails.getRowCount();
          int columns = recordDetails.getColumnCount();
          boolean isEmpty = false; // cell
          System.out.println("Rows = "+rows);
          System.out.println("Columns = "+columns);
          try{
              // Assessing all cells for complete entries
              // This approach is flexible, rather than hardcoding the rows available,
              // making it more reusable (assuming it will always be 5 columns)
              for (int rowIndex = 0; rowIndex<=rows; ++rowIndex)
                  if((recordDetails.getValueAt(rowIndex, 1)).equals(""))
                 isEmpty = true;
                  else if((recordDetails.getValueAt(rowIndex, 2)).equals(""))
               isEmpty = true;
                  else if((recordDetails.getValueAt(rowIndex, 3)).equals(""))
               isEmpty = true;                
                  else if((recordDetails.getValueAt(rowIndex, 4)).equals("0"))
               isEmpty = true;
                  else if((recordDetails.getValueAt(rowIndex, 5)).equals("0.00"))
               isEmpty = true;
          catch(Exception e)
             System.out.println(e.getMessage());
          return isEmpty;
      Now here is the code for the MusicDatabase class
    package Practice;
    class MusicDatabase
        private String songTitle, identity, musicCompany;
        private int rank;
        private float priceF;
        // Defining the constructor
        public MusicDatabase(String title, String name, String company,                                int rankingInt, float price)
           songTitle = title;
           identity = name;
           musicCompany = company;
           rank = rankingInt;
           priceF = price;
        } // constructor
       // Other methods
    } // class MusicDatabaseSorry, but am not sure if these codes are executable, as where I am (a general library), JVM is not on the machine I am using. (Remember, i don't have ready acess to the Internet, so I could not use my machine, nor the facilities that had the JVM - unavailable to me at the time).
    Thanks!
    Reformer...
    PS I do hope the code pasted was not too much. Kind regards....

Maybe you are looking for

  • Ordering new 8.6 Unified communications manager

    Hi everybody, For the next year I'm going to order a new CUCM 8.6 system as replacement our old CallManager. I trying now to make a order list. We have 300 ip phones 7911,7941,7960,7970. Please help me out here, I've made this list, correct me if i'm

  • How to unlock network for iphone5?

    some said that settings>general>mobile/network or settings>celluar>celluar data network>set apn BUT in both method, I can't find it on my iphone!! P.S. My iphone5 is bought in HK (official store) How can I set the apn?? I will go to UK and use the gi

  • Initial view on Pan and Zoom jumping

    Hi there I'm updating a document and wanted to adjust the iniital view of a pan and zoom feature. Now when i tap to activate it, it jumps to a different location and zoom level that where i set the image in the content box. Any idea why this might be

  • Unable to calculate BED , SED, AED in MIGO Screen

    Dear All,                 I am configuring CIN but in MIGO screen all values in excise tab show me 0.00 values. In TAXINN  i maintain JMOP, JEC1, JSEP, JVRN for 10%ED,2%ECESS,1%HECESS,4%VAT taxcode respectively. please help me with ur valuable sugges

  • Does Adobe have a Customer Care??????????

    I need my card details to be changed. It took more than half an hour now. Everything is redirecting to other menus. Why cant they help their client. Why should they direct me to a forum. Quite ridiculous in this era.