SAP MDM Joining tables in console? Help needed.

Hi,
I am placed in SAP MDM Project.
Currently, we have an unique requirement.
We, have to join two tables of SAP MDM Console in an unique field
named(House No and PO Code).
Actually, we have a main table named Business Partner and a Flat table
named Address.
Now, we have a field named House No and PO Code(Business Partner) which I have made as unique.
Also, the Field named House No and PO Code(Address) is unique.
Now, my colleague suggested if we can make remote key mapping at the time of import
it will automatically populate the address data for each individual.
But it is not true. Remote Key mapping is a different concept.
If Remote key is mapped with any field of the Main table.
It will show remote key mapping for that field with a remote system.
When data is syndicated back after modification same data is reflected in that remote system.
Only thing that we can do is that make House No and PO Code (Business Partner) as Lookup(Flat) field and it is mapped with the Flat table Address.
Now, the SAP MDM Data Operator needs to select the address manually from say 10,000 address records for a person George Smith in main table(Business Partner).
No other way round.
Please suggest if there is any other way.
Thanks and Regards
Kaushik Banerjee

I am closing it.

Similar Messages

  • 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

  • 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

  • Repeated error in Console - Help needed

    Hi guys,
    I'm having an issue with a particular error message that is repeating constantly in the console messages list - I'm suspecting that this may be yet another reason for my macbook pro slowing down. The message is listed below and repeats constantly, for instance at 10:13 I had it list in different variations 71 times in the one minute time period.
    I've tried my best to research it, and get to the bottom of the issue however I'm now at a dead end and hoping you guys may have some idea's?
    21/03/2015 10:13:33.372 com.apple.mtmd[39]: -[FileAttrs writeAttributesToItemAtPath:] setattrlist failed for path '/.MobileBackups/Computer/2015-03-21-101008/Volume/Users/**********/Library/Cal endars' (errno 2)
    21/03/2015 10:15:56.858 com.apple.mtmd[39]: -[FileAttrs writeAttributesToItemAtPath:] setattrlist failed for path '/.MobileBackups/Computer/2015-03-21-101008/Volume/Users/**********/Library/Mob ile Documents/com~apple~TextInput/Dictionaries' (errno 2)
    ****** is the user name of the computer being displayed.
    That's just 2 of the message variations however it has multiple formats and changes literally by the second. However it always starts the same and always relates to the .MobileBackups/ path
    I suspect it's related to my MS Office for Mac software which is the 2011 version.
    I also use a standalone portable hard drive for time machine backups.
    However when I turn off the backups and disconnect, the messages keep coming.
    Any help/advice appreciated,
    Thanks in advance

    Activity Monitor - Mavericks  also Yosemite
    Activity Monitor in Mavericks has significant changes
    Performance Guide
    Why is my computer slow
    Why your Mac runs slower than it should
    Slow Mac After Mavericks
    Things you can do to resolve slowdowns  see post by Kappy
    Try running this program and then copy and paste the output in a reply. The program was created by Etresoft, a frequent contributor.  Please use copy and paste as screen shots can be hard to read.
    Etrecheck – System Information

  • 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                                                                                                                                                                                                           

  • 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

  • Errors & warnings when using the Admin Server Console - Help Needed

    hi,
    i just installed weblogic 12c and created a new domain which contains an adminServer and managedServer under
    one cluster.
    after finishing the installation, i started the Admin Server and afterwards started the admin server console.
    and i got the next warning and errors.
    the warning look like this:
    <20:00:35 IST 23/03/2012> <Warning> <Munger> <BEA-2156203> <A version attribute
    was not found in element "web-app" in the deployment descriptor C:\Oracle\Middle
    ware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\cons
    oleapp\jxhze9\console-ext\sipserver-console-ext\WEB-INF\web.xml. A version attri
    bute is required, but this version of the WebLogic Server will assume that the l
    atest version is used. Future versions of WebLogic Server will reject descriptor
    s that do not specify the Java EE version. To eliminate this warning, add an app
    ropriate "version=" to element "web-app" in the deployment descriptor.>
    the errors look like this:
    <20:01:51 IST 23/03/2012> <Error> <netuix> <BEA-423158> <No content found at con
    tentUri = /PortalConfig/security/providers/AuthenticatorConfigCommon.portlet.>
    what is the problem? anyone knows?

    If you want to have an weblogic environment with one domain having server spread across different physical machines , then you will have to perform the installations of the weblogic server separately on all the machines . Also make sure that the version of the Weblogic server you are installing is same across the machines and the directory structure is also exactly same.
    In short you will have to perform the below steps :
    1 : install the weblogic server on all the machines with exactly same version and same dir structure .
    2 : Create domain on MachineA providing all the details of the Managed Server and different machine hostnames.
    3 : Start the Admin Server on machineA and then shut down it.
    4 : execute the WLST pack command on MachineA creating a domain template JAR file.
    5 : copy the create jar file on all the Machines ( B , C , D ) you have to distribute your domain.
    6 : Execute the WLST unpack command on all the machines ( B , C , D ) .
    7 : Execute the WLST nmEnroll () command on all the machines ( B, C , D ).
    8 : Start the Managed Servers on all the machines ( B , C , D )

  • SAP PS (Project System) + Primavera intgration -- Help Needed

    Hi All,
    I have to integrate the SAP PS system to a tool named Primavera using XI. I dont know whta sort of adapter is supported by Primavera.
    It is going to be a oneway data transfer from SAP-->Primavera , whenever some project info created / updated in PS.
    Does anybody have any idea on this scenario. Any Kind of info will helpfull.
    Reward point guranteed.
    Regards,
    Anid

    also u can check with
    <a href="http://www.primavera.com/partners/sap.asp">http://www.primavera.com/partners/sap.asp</a>
    Hands on information abt integrating with SAP

  • 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

  • Current SAP MDM version & s pack ?

    Hi All,
    what is the current SAP MDM version & s pack ? (latest) and the upcomming new versions ? Is it SAP MDM 7.3 ?
    what else new will features are being added...... any idea? 
    also
    I am currently working on MDM 7.1, but wanted to know which service pack I am working on........ where exaclty I can I see this information.(I mean where can I see the version, service pack, patch and other details)
    In the console->help , I have seen the version , and  [7.1.00.75],  does this mean something ? pls exp.
    Please share your thoughts
    Thanks,
    ve

    Hi Veena,
    Current MDM version available is MDM 7.1 SP05.
    Scheduled upcoming MDM version as per my understanding would be MDM 7.2 not MDM 7.3
    In console help, you can check the build number of MDM. 
    1st four characters tells about the version and Support package and last three letters are not exactly Patch.
    It means that you are on MDM 7.1 SP00
    Yes, you can download it from Service Market Place if you have access and right to download MDM.
    Please refer similar thread to check path to download MDM : How to get MDM 7.1? Please tell me the download link.
    Also check this link where you can get everything about MDM 7.1, Please refer MDM upgrade guide which you need to follow. https://websmp103.sap-ag.de/installMDM71
    @ Deepak, See i am using MDM Server Build (7.1.03.69) that does not mean i am using Patch 69,
    You can check [SAP Note 1425021|https://service.sap.com/sap/support/notes/1425021] where Patch is 19 not 69
    Regards,
    Mandeep Saini

  • Need help in transferring data from flatfiles to SAP R/3 tables

    Hi,
    I need to *transfer data in the flatfiles (NON SAP SYSTEM) to SAP R/3 tables*. Can we do it with a help of program ?
    Please help me out
    Thanks and regards,
    Shiva shekar k

    Hi Shiva,
        This code will be helpful to you.
    *Code used to create BDC
    *& Report  ZBDC                                               *
    *& Example BDC program, which updates net price of item 00010 of a     *
    *& particular Purchase order(EBELN).                                   *
    REPORT  ZBDC  NO STANDARD PAGE HEADING
                          LINE-SIZE 132.
    Data declaration
    TABLES: ekko, ekpo.
    TYPES: BEGIN OF t_ekko,
        ebeln TYPE ekko-ebeln,
        waers TYPE ekko-waers,
        netpr TYPE ekpo-netpr,
        err_msg(73) TYPE c,
    END OF t_ekko.
    DATA: it_ekko  TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko  TYPE t_ekko,
          it_error TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_error TYPE t_ekko,
          it_success TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_success TYPE t_ekko.
    DATA: w_textout            LIKE t100-text.
    DATA: gd_update TYPE i,
          gd_lines TYPE i.
    *Used to store BDC data
    DATA: BEGIN OF bdc_tab OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdc_tab.
    *Used to stores error information from CALL TRANSACTION Function Module
    DATA: BEGIN OF messtab OCCURS 0.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF messtab.
    *Screen declaration
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME
                                        TITLE text-001. "Purchase order Num
    SELECT-OPTIONS: so_ebeln FOR ekko-ebeln OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK block1.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME
                                        TITLE text-002. "New NETPR value
    PARAMETERS:  p_newpr(14)   TYPE c obligatory.  "LIKE ekpo-netpr.
    SELECTION-SCREEN END OF BLOCK block2.
    *START-OF-SELECTION
    START-OF-SELECTION.
    Retrieve data from Purchase order table(EKKO)
      SELECT ekkoebeln ekkowaers ekpo~netpr
        INTO TABLE it_ekko
        FROM ekko AS ekko INNER JOIN ekpo AS ekpo
          ON ekpoebeln EQ ekkoebeln
       WHERE ekko~ebeln IN so_ebeln AND
             ekpo~ebelp EQ '10'.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Check data has been retrieved ready for processing
      DESCRIBE TABLE it_ekko LINES gd_lines.
      IF gd_lines LE 0.
      Display message if no data has been retrieved
        MESSAGE i003(zp) WITH 'No Records Found'(001).
        LEAVE TO SCREEN 0.
      ELSE.
      Update Customer master data (instalment text)
        LOOP AT it_ekko INTO wa_ekko.
          PERFORM bdc_update.
        ENDLOOP.
      Display message confirming number of records updated
        IF gd_update GT 1.
          MESSAGE i003(zp) WITH gd_update 'Records updated'(002).
        ELSE.
          MESSAGE i003(zp) WITH gd_update 'Record updated'(003).
        ENDIF.
    Display Success Report
      Check Success table
        DESCRIBE TABLE it_success LINES gd_lines.
        IF gd_lines GT 0.
        Display result report column headings
          PERFORM display_column_headings.
        Display result report
          PERFORM display_report.
        ENDIF.
    Display Error Report
      Check errors table
        DESCRIBE TABLE it_error LINES gd_lines.
      If errors exist then display errors report
        IF gd_lines GT 0.
        Display errors report
          PERFORM display_error_headings.
          PERFORM display_error_report.
        ENDIF.
      ENDIF.
    *&      Form  DISPLAY_COLUMN_HEADINGS
          Display column headings
    FORM display_column_headings.
      WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.
      SKIP.
      WRITE:2 'The following records updated successfully:'(013).
      WRITE:/ sy-uline(42).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(004), sy-vline,
              (11) 'Old Netpr'(005), sy-vline,
              (11) 'New Netpr'(006), sy-vline.
      WRITE:/ sy-uline(42).
    ENDFORM.                    " DISPLAY_COLUMN_HEADINGS
    *&      Form  BDC_UPDATE
          Populate BDC table and call transaction ME22
    FORM bdc_update.
      PERFORM dynpro USING:
          'X'   'SAPMM06E'        '0105',
          ' '   'BDC_CURSOR'      'RM06E-BSTNR',
          ' '   'RM06E-BSTNR'     wa_ekko-ebeln,
          ' '   'BDC_OKCODE'      '/00',                      "OK code
          'X'   'SAPMM06E'        '0120',
          ' '   'BDC_CURSOR'      'EKPO-NETPR(01)',
          ' '   'EKPO-NETPR(01)'  p_newpr,
          ' '   'BDC_OKCODE'      '=BU'.                      "OK code
    Call transaction to update customer instalment text
      CALL TRANSACTION 'ME22' USING bdc_tab MODE 'N' UPDATE 'S'
             MESSAGES INTO messtab.
    Check if update was succesful
      IF sy-subrc EQ 0.
        ADD 1 TO gd_update.
        APPEND wa_ekko TO it_success.
      ELSE.
      Retrieve error messages displayed during BDC update
        LOOP AT messtab WHERE msgtyp = 'E'.
        Builds actual message based on info returned from Call transaction
          CALL FUNCTION 'MESSAGE_TEXT_BUILD'
               EXPORTING
                    msgid               = messtab-msgid
                    msgnr               = messtab-msgnr
                    msgv1               = messtab-msgv1
                    msgv2               = messtab-msgv2
                    msgv3               = messtab-msgv3
                    msgv4               = messtab-msgv4
               IMPORTING
                    message_text_output = w_textout.
        ENDLOOP.
      Build error table ready for output
        wa_error = wa_ekko.
        wa_error-err_msg = w_textout.
        APPEND wa_error TO it_error.
        CLEAR: wa_error.
      ENDIF.
    Clear bdc date table
      CLEAR: bdc_tab.
      REFRESH: bdc_tab.
    ENDFORM.                    " BDC_UPDATE
          FORM DYNPRO                                                   *
          stores values to bdc table                                    *
    -->  DYNBEGIN                                                      *
    -->  NAME                                                          *
    -->  VALUE                                                         *
    FORM dynpro USING    dynbegin name value.
      IF dynbegin = 'X'.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-program,
               value TO bdc_tab-dynpro,
               'X'  TO bdc_tab-dynbegin.
        APPEND bdc_tab.
      ELSE.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-fnam,
               value TO bdc_tab-fval.
        APPEND bdc_tab.
      ENDIF.
    ENDFORM.                               " DYNPRO
    *&      Form  DISPLAY_REPORT
          Display Report
    FORM display_report.
      FORMAT COLOR COL_NORMAL.
    Loop at data table
      LOOP AT it_success INTO wa_success.
        WRITE:/      sy-vline,
                (10) wa_success-ebeln, sy-vline,
                (11) wa_success-netpr CURRENCY wa_success-waers, sy-vline,
                (11) p_newpr, sy-vline.
        CLEAR: wa_success.
      ENDLOOP.
      WRITE:/ sy-uline(42).
      REFRESH: it_success.
      FORMAT COLOR COL_BACKGROUND.
    ENDFORM.                    " DISPLAY_REPORT
    *&      Form  DISPLAY_ERROR_REPORT
          Display error report data
    FORM display_error_report.
      LOOP AT it_error INTO wa_error.
        WRITE:/      sy-vline,
                (10) wa_error-ebeln, sy-vline,
                (11) wa_error-netpr CURRENCY wa_error-waers, sy-vline,
                (73) wa_error-err_msg, sy-vline.
      ENDLOOP.
      WRITE:/ sy-uline(104).
      REFRESH: it_error.
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  DISPLAY_ERROR_HEADINGS
          Display error report headings
    FORM display_error_headings.
      SKIP.
      WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.
      SKIP.
      WRITE:2 'The following records failed during update:'(008).
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(009), sy-vline,
              (11) 'Netpr'(010), sy-vline,
              (73) 'Error Message'(012), sy-vline.
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_NORMAL.
    ENDFORM.                    " DISPLAY_ERROR_HEADINGS

  • Help Required -- Can we use SQL Query to READ data from SAP MDM Tables

    Hi All,
    Please help.........
    Can we use SQL Query to READ(No Creation/Updation/Deletion  just Read) Data from SAP MDM tables directly, without using MDM Syndicator.
    Or direct SQL access to SAP MDM tables is not possible. Only through MDM Syndicator can we export data.
    Thanks in Advance
    Regards

    All the tables you create in Repository comes under A2i_CM_Tables in Database named as your repository name. So the tables names are fields of table A2i_CM_Tables. Now i tried it but cant make it.
    Now, I dont think its possible to extract all fields in tables and there values using select query. May be pure sql guy can do that or not.
    But there is no relation of data extraction and syndicator. Data is viewed in Data Manager. and you can also store data in a file from DM also.
    BR,
    Alok

  • Select distinct problem with muliple join tables, help needed

    Hi,
    I have two main tables. Each has its of sub joined tables.
    guest_id_for_reservation connects two major tables. This has
    to be that way
    because my guest may change the room status from single to
    double (and the
    similar exceptional requests).
    guests reservation
    guest_id_for_reservation
    countrytable hoteltable
    delegationtable roomtype
    I form a query. I want to select distinct those results. But
    it does not
    work.
    If I do not include any table related to reservation table
    and its sub
    joined tables (disregarding guest_id_for_reservation), it
    works.
    Is there a specific syntax for select distinct of this type
    or any
    workaround.?
    Thank you
    Hakan

    Hi I'm still battling with this - have connected the AX to my Imac via ethernet and it shows up fine in Airport Utility. Status light is green and it says its set up to connect to my existing wireless network using wireless connection. Security in Network Preferences is the same for both: WPA2 Personal.
    So I don't think there's a problem with the AX, and my current wireless network (BT Home Hub) is working fine.
    And when I restore factory settings Airport Utility can see the AX before updating settings so the wireless side of AX must work too.
    I'm figuring it must be something about the settings that mean AU can't see it anymore. But I can't work out what, since security is the same.
    Any ideas would be great!

  • SAP MDM Console

    Hi,
    I'm new to MDM Console. Can anyone please tell me how can I, from SAP MDM Console restrict a particular user from <u>viewing</u> specific records in MDM Data Manager.
    Thanking you in advance.
    Hemal

    Hi,
    You can achieve this using Masks.
    Step 1:
    In the Data Manager , you filter records based on what ever condition you are looking for. Add the filtered records to a Mask.
    If you have no masks defined in the Data Manager.
    Select Masks table from the top left corner list in the Data Manager and create a Mask.
    Once you finished creating the Mask, go back to the Main table and add the Filtered records to the created mask.
    (Select all the records right click and select Add to Mask and select the Mask).
    Step 2:
    a. For New Role:
    1. In the MDM Console for that particular repository, create a new role and in the role details grid, select Table/Fields tab and look for Masks table. In the Constraints column, you select the Mask you created in the Data Manager.
    2. Assign the created role to the user.
    b. For Existing Role:
    In MDM console select the role in the repository and
    in the role details grid, select Table/Fields tab and look for Masks table. In the Constraints column, you select the Mask you created in the Data Manager.
    Hope this helps.
    Let me know if you need any additional information.
    Thanks and Regards
    Subbu

Maybe you are looking for

  • How to know the type of a variable??

    how to know the type of a variable?? For example, give you a variable s, how to determine if it is a primitive type, of an object?? If this is primitive type, any ways to determine if it is integer, boolean, double, ...??

  • Mail adapter fails when using Mail Package Format

    Hi. Using XI 3.0 stack level 9. When i set up the mail adapeter to Use mail package format (by ticking the "Use Mail Package") checkbox I get the following error : "error occured: [2005-09-14T09:42:46Z] unable to call the mailer; com.sap.aii.messagin

  • Library found on ATV but will not load

    Have ATV hooked up via HDMI to TV with Optical digital audio cable connected to Pioneer Elite VSX-03 TXH ATV connected wireless to router. iTunes Library on wireless windows xp laptop both connected to same/only router I can watch Netflix, listen to

  • GRC CUP 5.3 SP16, detour path not working for SOD violations

    Hi, Something bazaar is going on in our requests processing and not sure if that's the way SAP has set it up. We configured a detour path for requests with SOD violations to go to the additional stage of 'SOX Approver' but the first stage (manager) d

  • Trend Micro WFBS 7

    Cannot install Trend Micro WFBS 7 on Lion. System freez during setup