Conditional Lookups in MDM?

I'm an MDM newbie, just learning my way around, trying to figure out how I will be able to make MDM work with the data landscape we have around here.
My question today is, is it possible to have what I will call a "conditional" lookup for a field?  That is to say, is it possible to have a field's choices be dependent on some other field?  Can a field's lookup return not ALL the records in the lookup table, but some subset of them?
Say I have product records, and the values possible for a particular field on each record should be limited depending on product-type.
(For reasons I brought up in my post yesterday, a product-type taxonomy with attributes won't serve my purpose.)

Hello Steve,
As per your requirement, you can use the Qualified look up table.
I hope this will fullfil your requirement.
Just refer this thread related to Qualified lookup table for extracting the record from it.
Re: Accessing Non Qualifier Lookup flat field of an Qualified LookUp table
TNR,
Saurabh...

Similar Messages

  • Conditional Lookups

    Hello.
    I'm writing a mapping to load a fact table, but am having some difficulty. My staging table contains data that indicates whether an entity is a customer or a vendor (entity number, entity type). I need to retrieve information from a customer dimension if the entity is a customer and a vendor dimension if the entity is a vendor.
    For example, if entity #1 has type C, then lookup in the customer dimension. If entity #2 has type V, then lookup in the vendor dimension.
    Can anyone provide guidance on how I'm might accomplish this? I know I could write a transformation to do this, but am looking to see if it can be done with other operators...maybe a filter/key lookup combo, or with a case statement somehow?
    Thanks and Happy New Year!
    Dan

    You mentioned "maybe a filter/key lookup combo, or with a case statement somehow". Don't see why not with either of these.
    You could certainly use a filter to branch into two different paths, or an expression operator with two separate case statements branching into two different paths again. Performance will depend to a large degree on correct indexing.
    If you choose to do a lookup, one thing I experienced with our installation when doing lookups on strings is that they have to be the same length. This is probably a bug specific to our release and patch levels.
    Thanks.

  • How to get all Conditions in Advanced Search

    Hi All,
    I'm implementing the AdvancedSearch using Query bean.
    I have defined the Criteria row with one Item of Varchar2 Datatype.
    On Advance Search the poplist shows only two conditions (Lookup type=ICX_CONDITIONS) of "is" and "is not". How to get the complete list of conditions ("contains", "ends with", "starts with"....)
    Thanks,
    Satya

    What is the item type for which you get only the two conditions.
    If the item type is OAMessageChoiceBean or OAMessageLovInputBean the conditon poplist will contain only those two options. And if the datatype is Boolean the conditon poplist will again contain only those two options.

  • What are the differnet type of tables in mdm ?

    hi experts i am new to mdm. just i have refered some documents in that the have created some table and fileds ,taxnomy,lokups,.......
    so can any one give me the bref ida on
    what is mdm ?
    what are the different type of tables in mdm ? What is the requirement for the selection of table?
    what is a feld ? what are the diff type of fealds in mdm ? And requriement ?
    what is taxnomay ? And Requriement or where or when we can use ?
    what is lookups in mdm ? what is lookup tables in mdm ?
    what is mdm console ?
    what is mdm data manager. ?
    what is mdm import manager ?
    what is mdm syndicator ?
    please any body answer this questions .

    Hello Praveen,
    Below are the the all possible links of books,articles... etc for MDM.
    http://hosteddocs.ittoolbox.com/RD021507b.pdf
    demo
    http://www.sap.com/community/int/innovation/esoa/demo/MDM_demo/index.html
    http://www.asug.com/DesktopModules/Bring2mind/DMX/Download.aspx?TabId=66&DMXModule=370&Command=Core_Download&EntryId=3431&PortalId=0
    MDM
    http://www.asug.com/DesktopModules/Bring2mind/DMX/Download.aspx?TabId=66&DMXModule=370&Command=Core_Download&EntryId=1666&PortalId=0
    SAP Netweaver MDM Overview
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b09b548d-7316-2a10-1fbb-894c838d8079
    SAP NETWEAVER MDM Leverage MDM in ERP Environments - An Evolutionary Approach -
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/4059f477-7316-2a10-5fa1-88417f98ca93
    Master Data Management architecture patterns
    http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0703sauter/
    MDM and Enterprise SOA
    http://www.saplounge.be/Files/media/pdf/Lagae---MDM-and-Enterprise-SOA2007.10.10.pdf
    Effective Hierarchy Management Using SAP NetWeaver MDM for Retail
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70ee0c9e-29a8-2910-8d93-ad34ec8af09b
    MDM World
    http://mdm.sitacorp.com/
    MDM: Master Data for Global business
    http://www.sitacorp.com/mdm.html
    MDM Master Data Management Hub Architecture
    http://blogs.msdn.com/rogerwolterblog/archive/2007/01/02/mdm-master-data-management-hub-architecture.aspx
    Improve Efficiency and Data Governance with SAP NetWeaver MDM
    http://www.sapnetweavermagazine.com/archive/Volume_03_(2007)/Issue_02_(Spring)/v3i2a12.cfm?session=
    Data Modeling i MDM
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d4211fa-0301-0010-9fb1-ef1fd91719b6
    http://www.sap.info/public/INT/int/index/Category-28943c61b1e60d84b-int/0/articlesVersions-31279471c9758576df
    SRM-MDM Catalog
    http://help.sap.com/saphelp_srmmdm10/helpdata/en/44/ec6f42f6e341aae10000000a114a6b/frameset.htm
    http://events.techtarget.com/mdm-ent/?Offer=DMwn716mdm
    http://viewer.bitpipe.com/viewer/viewDocument.do?accessId=6721869
    http://searchdatamanagement.bitpipe.com/data/search?site=sdmgt&cr=bpres&cg=VENDOR&sp=site_abbrev%Asdmgt&cp=bpres&st=1&qt=MasterDataManagement
    http://viewer.bitpipe.com/viewer/viewDocument.do?accessId=6721819
    http://www.dmreview.com/channels/master_data_management.html
    http://searchdatamanagement.techtarget.com/originalContent/0,289142,sid91_gci1287620,00.html?bucket=NEWS&topic=307330
    MDM Console -- http://help.sap.com/saphelp_mdmgds55/helpdata/en/88/9f9c427055c66ae10000000a155106/frameset.htm
    MDM Import manager --http://help.sap.com/saphelp_mdmgds55/helpdata/en/43/120367f94c3e92e10000000a1553f6/frameset.htm
    MDM DataManager --http://help.sap.com/saphelp_mdmgds55/helpdata/en/43/e0615a82b40a2ee10000000a11466f/frameset.htm
    MDM Syndicator --http://help.sap.com/saphelp_mdmgds55/helpdata/EN/43/5fe0e8a55f5f6be10000000a1553f6/frameset.htm
    Rgds
    Ankit

  • Workaround on all the limitations of Qualified Lookups, Multivalued Tuples.

    Dear Experts,
    As we all know, there are lots of limitations on Qualified Lookups in MDM 5.5 and also in MDM 7.1....
    1) Can't write Assignments...
    2) Failed validation won't specify which qualified link has failed.
    3) Compare records won't show link wise comparison of qualified links.
    4) Can't start qualified link level workflows.
    5) Role level constraints not applicable for Qualified lookup and tables referencing from QL directly or indirectly.
    6) Qualified link level check-in check-out operations are not possible.
    7) Qualified link level unique constraints are not possible (this becomes pain if links get duplicated by mistake)
    8) Duplication of QL link is not allowed in data manager (for copying Qualifier values in new Qualified link).
    9) Tuple is replacement for qualified lookup, but its more restrictive than QL (validation are not allowed on multivalued tuple).
    10) ....... many more (which might have discovered by you all)
    What if we make all the qualified lookups as main table and link those table to actual main table using Lookup [ Main] field type?
    Well it will restrict the data analysis objective which is one of goal of Master Data Management...
    But this will solve all the problems and limitations due to Qualified Lookup or Multivalued Tuple!
    I think its feasible and technically possible (But only in MDM 7.1 onward)
    How is the IDEA !!!
    Thanks & Regards,
    - Shailesh.

    Dear Michael,
    Thanks for your valuable replay...
    Well out of 9 pain points I listed above...
    Some of them may be fixed in future releases...
    But there are some points which (I feel) may not be on the feature list of future releases like....
    2) Failed validation won't specify which qualified link has failed.
    3) Compare records won't show link wise comparison of qualified links.
    4) Can't start qualified link level workflows.
    6) Qualified link level check-in check-out operations are not possible.
    (all these points are applicable for tuples also)
    Above points can be ignored at the time of fresh implementation
    But its become blocker in new scenarios which are taken-up after go-live! (i.e expansion of already live repository)
    Most of the people in MDM might not be aware of that import works on a single main table at a time.
    Well you are an expert, what you said is something new and useful... Thanks for that !
    Thanks & Regards,
    Shaailesh.

  • Condition record data transfer

    I have a scenario where condition record data from ECC needs to be transferred to MDM.
    I can see COND_A01,COND_A02 idocs in ECC .Pl can you tell me which one is relevant for ALE data transfer.
    Is there any transaction/report (For example BD10 is used for material data transfer) which can generate idoc of condition record and distribute it to receiver
    Pl can you suggest on this.
    thanks,
    Sharada

    I think there is no standard program for distributing Condition records.
    As suggested by Eshwar use COND_A02.
    u are distributing only Condition records to MDM that means u have condition record repository over there.
    i don't know what is the mian program to create Condition Records .
    see is a way to attach output types to that and NACE configurations to distribute it.
    Suresh

  • Error using the MDM Java Connector

    Hi All,
    I am developing a Web Dynpro type DC where I need to use MDM, I tried to reach MDM repository using the following code:
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.resource.ResourceException;
    import a2i.common.A2iResultSet;
    import a2i.common.CatalogData;
    import a2i.common.ResultSetDefinition;
    import a2i.search.Search;
    import com.sapportals.connector.ConnectorException;
    import com.sapportals.connector.connection.ConnectionFailedException;
    import com.sapportals.connector.connection.IConnection;
    import com.sapportals.connector.connection.IConnectionFactory;
    import com.sapportals.connector.connection.IConnectionSpec;
    import com.sapportals.connector.connection.INative;
    import com.sapportals.connector.connection.InterfaceNotSupportedException;
    import com.sapportals.connector.metadata.CapabilityNotSupportedException;
    public class Mdmjconn{
         public /*IConnection*/ String conn()/*throws Exception*/{
              String s = null;
              String str = "start ";
              Context ctx = null;
              try{
                   ctx = new InitialContext();
              }catch(NamingException nex){
                   str = str + "[" + nex.getLocalizedMessage() + "]" + " NamingException - InitialContext| ";
              IConnectionFactory connectionFactory = null;
              try{
                   connectionFactory = (IConnectionFactory)ctx.lookup("deployedAdapters/MDM Factory/shareable/MDM Factory");
              catch(NamingException nex){
                   str = str + "[" + nex.getMessage() + "]" + " NamingException - lookup| ";
              catch(ClassCastException ccex){
                   str = str + "[" + ccex.getMessage() + "]" + " ClassCastException - lookup| ";
              IConnectionSpec spec = null;
              CatalogData catalog = null;
              IConnection connection = null;
              try{
                   spec = connectionFactory.getConnectionSpec();
                   spec.setPropertyValue("UserName", "Admin");
                   spec.setPropertyValue("Password", "Admin");
                   spec.setPropertyValue("Server", "localhost");
                   spec.setPropertyValue("Port", "2005");
                   spec.setPropertyValue("RepositoryLanguage", "English [US]");
              }catch(ConnectorException cex){
                   str = str + "[" + cex.getMessage() + "]" + " ConnectorException - getConnectionSpec| ";
              }catch(NullPointerException npex){
                   str = str + "[" + npex.getMessage() + "]" + " NullPointerException - getConnectionSpec| ";
              INative nativeInterface = null;
              try{
                   connection = connectionFactory.getConnectionEx(spec);
              }catch(ConnectionFailedException cfex){
                   str = str + "[" + cfex.getMessage() + "]" + " ConnectionFailedException - getConnectionEx| ";
              }catch(ConnectorException cex){
                   str = str + "[" + cex.getMessage() + "]" + " ConnectorException - getConnectionEx| ";
              }catch(NullPointerException npex){
                   str = str + "[" + npex.getMessage() + "]" + " NullPointerException - getConnectionEx| ";
              try{
                   nativeInterface = connection.retrieveNative();
              }catch(CapabilityNotSupportedException cnsex){
                   str = str + "[" + cnsex.getMessage() + "]" + " CapabilityNotSupportedException - retrieveNative| ";
              }catch(NullPointerException npex){
                   str = str + "[" + npex.getMessage() + "]" + " NullPointerException - retrieveNative| ";     
              try{
                   catalog = (CatalogData)nativeInterface.getNative(CatalogData.class.getName());
              }catch(InterfaceNotSupportedException insex){
                   str = str + "[" + insex.getMessage() + "]" + " InterFaceNotSupportedException - getNative| ";
              }catch(ConnectorException cex){
                   str = str + "[" + cex.getMessage() + "]" + " ConnectorException - getNative| ";
              }catch(NullPointerException npex){
                   str = str + "[" + npex.getLocalizedMessage() + "]" + " NullPointerException - getNative| ";
    //TEST SEARCH BEGIN
                A2iResultSet rs;
                ResultSetDefinition resultdefinition = new ResultSetDefinition("MDM_BUSINESS_PARTNERS");
               resultdefinition.AddField("MDM_PARTNER_ID");
               resultdefinition.AddField("MDM_FIRST_NAME");
               resultdefinition.AddField("MDM_LAST_NAME");
               resultdefinition.AddField("M_CITY");
               resultdefinition.AddField("M_POSTAL_CODE");
               resultdefinition.AddField("M_STREET");
               resultdefinition.AddField("M_HOUSE_NUMBER");
               resultdefinition.AddField("M_COUNTRY");     
               resultdefinition.AddField("M_DUNS");
               resultdefinition.AddField("MDM_TAX_NUMBER_1");
              Search search = new Search(resultdefinition.GetTable());
              try {     
                     rs = catalog.GetResultSet(search, resultdefinition, "MDM_PARTNER_ID", true, 0);
                     int i=0;//1316;
                     int idd = 0;
                   i = 1327;
                   idd = rs.GetValueAt(i, "MDM_PARTNER_ID").GetIntValue();
                   String namef = rs.GetValueAt(i, "MDM_FIRST_NAME").TranslateToString();
                   String namel = rs.GetValueAt(i, "MDM_LAST_NAME").TranslateToString();
                   String city = rs.GetValueAt(i, "M_CITY").TranslateToString();
                   String pc = rs.GetValueAt(i, "M_POSTAL_CODE").TranslateToString();
                   String street = rs.GetValueAt(i, "M_STREET").TranslateToString();
                   String hn = rs.GetValueAt(i, "M_HOUSE_NUMBER").TranslateToString();
                   String country = rs.GetValueAt(i, "M_COUNTRY").TranslateToString();
                   String duns = rs.GetValueAt(i, "M_DUNS").TranslateToString();
                   String tax = rs.GetValueAt(i, "MDM_TAX_NUMBER_1").TranslateToString();
                   str = namef + ", " + namel + ", " + city + ", " + pc + ", " + street + ", " + hn + ", "+ country + ", "+ duns + ", " + tax + "! ";
                }catch (a2i.core.StringException e){
                     e.A2iPrintError();     
                     str = str + "Error at GetValueAt| ";
                }catch(NullPointerException npex){
                     str = str + "[" + npex.getLocalizedMessage() + "]" + " NullPointerException - GetResultSet, GetValueAt| ";
    //TEST SEARCH END               
              try{
                   connection.close();
              }catch(ResourceException rex){
                   str = str + "[" + rex.getMessage() + "]" + " ResourceException - close| ";
              }catch(NullPointerException npex){
                   str = str + "[" + npex.getMessage() + "]" + " NullPointerException - close| ";
              if(str == null){
                   return "zero";
              }else
              return str;
    I got the following result:
    <i>start [null] ClassCastException - lookup| [null] NullPointerException - getConnectionSpec| [null] NullPointerException - getConnectionEx| [null] NullPointerException - retrieveNative| [null] NullPointerException - getNative| [null] NullPointerException - GetResultSet, GetValueAt| [null] NullPointerException - close| </i>
    So the code throws ClassCastException at the <b>lookup</b> method call and causes the other NullPointerExceptions.
    I checked the JNDI Registry in VA, the "deployedAdapters/MDM Factory/shareable/MDM Factory" path is right.
    What can be the reason for this problem?
    Thanks & regards,
    Peter

    My problem is solved!
    The only needed Web Dynpro Library References were the following:
    com.sap.mdm.tech.mdm4j
    tcconnconnectorframework

  • MDM Java Connector Config Error.

    We deployed "com.sap.mdm.tech.connector.sda", "com.sap.mdm.tech.mdm4j.sda" using SDM. The deployment was successful. We wanted to set all the parameters like
    UserName, Password,Server, Port, RepositoryLanguage as Key-Value pair in MDM Connector properties in Visual Admin from Server->Connection Container->Connectors -> MDM Factory -> Managed Connection Factory -> Poperties.
    The intention was to use "spec.getAllConnectionProperties()" code to get the properties at runtime using following code given below.
    Context ctx = new InitialContext();
    IConnectionFactory conFactory = (IConnectionFactory)
    ctx.lookup("deployedAdapters/MDM Factory/shareable/MDM Factory");
    IConnectionSpec spec = conFactory.getConnectionSpec();
    While setting these properties in Visual Admin, it threw an error.
    java.rmi.RemoteException: Error occurred while starting application in whole cluster and wait.; nested exception is:
         com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Clusterwide exception: server ID 19149650:com.sap.engine.services.connector.exceptions.BaseDeploymentException: Cannot access methods of instance of class "com.sap.mdm.connector.connection.MdmManagedConnectionFactory". Possible reasons: the class is not public and is in another package, the current method does not have access to the appropriate zero-argument constructor or there is no such method.
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.instantiateMCF(DeployAdmin.java:1210)
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.registerConnector(DeployAdmin.java:2015)
         at com.sap.engine.services.connector.jca.deploy.ContainerImpl.prepareStart(ContainerImpl.java:1144)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:223)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:171)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:301)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesImpl(ParallelAdapter.java:342)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:126)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:245)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:4761)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:661)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:645)
         at com.sap.engine.services.connector.jca.deploy.ContainerImpl.startApplication(ContainerImpl.java:1745)
         at com.sap.engine.services.connector.jca15.gui.RuntimeControlsImpl.startApplication(RuntimeControlsImpl.java:169)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.invoke(DefaultMBeanInvoker.java:58)
         at com.sap.pj.jmx.mbeaninfo.AdditionalInfoProviderMBean.invoke(AdditionalInfoProviderMBean.java:289)
         at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:944)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
         at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:409)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
         at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:258)
         at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:287)
         at com.sap.engine.services.jmx.MBeanServerInvoker.invokeMbs(MBeanServerInvoker.java:131)
         at com.sap.engine.services.jmx.ClusterInterceptor.invokeMbs(ClusterInterceptor.java:212)
         at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:766)
         at com.sap.engine.services.jmx.MBeanServerInterceptorInvoker.invokeMbs(MBeanServerInterceptorInvoker.java:102)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImpl.invokeMbs(P4ConnectorServerImpl.java:61)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImplp4_Skel.dispatch(P4ConnectorServerImplp4_Skel.java:64)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.NoSuchMethodException: com.sap.mdm.connector.connection.MdmManagedConnectionFactory.setUserName(java.lang.String)
         at java.lang.Class.getMethod(Class.java:986)
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.instantiateMCF(DeployAdmin.java:1190)
         ... 42 more
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:663)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:645)
         at com.sap.engine.services.connector.jca.deploy.ContainerImpl.startApplication(ContainerImpl.java:1745)
         at com.sap.engine.services.connector.jca15.gui.RuntimeControlsImpl.startApplication(RuntimeControlsImpl.java:169)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.invoke(DefaultMBeanInvoker.java:58)
         at com.sap.pj.jmx.mbeaninfo.AdditionalInfoProviderMBean.invoke(AdditionalInfoProviderMBean.java:289)
         at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:944)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
         at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:409)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
         at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:258)
         at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:287)
         at com.sap.engine.services.jmx.MBeanServerInvoker.invokeMbs(MBeanServerInvoker.java:131)
         at com.sap.engine.services.jmx.ClusterInterceptor.invokeMbs(ClusterInterceptor.java:212)
         at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:766)
         at com.sap.engine.services.jmx.MBeanServerInterceptorInvoker.invokeMbs(MBeanServerInterceptorInvoker.java:102)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImpl.invokeMbs(P4ConnectorServerImpl.java:61)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImplp4_Skel.dispatch(P4ConnectorServerImplp4_Skel.java:64)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Clusterwide exception: server ID 19149650:com.sap.engine.services.connector.exceptions.BaseDeploymentException: Cannot access methods of instance of class "com.sap.mdm.connector.connection.MdmManagedConnectionFactory". Possible reasons: the class is not public and is in another package, the current method does not have access to the appropriate zero-argument constructor or there is no such method.
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.instantiateMCF(DeployAdmin.java:1210)
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.registerConnector(DeployAdmin.java:2015)
         at com.sap.engine.services.connector.jca.deploy.ContainerImpl.prepareStart(ContainerImpl.java:1144)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:223)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:171)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:301)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesImpl(ParallelAdapter.java:342)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:126)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:245)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:4761)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:661)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:645)
         at com.sap.engine.services.connector.jca.deploy.ContainerImpl.startApplication(ContainerImpl.java:1745)
         at com.sap.engine.services.connector.jca15.gui.RuntimeControlsImpl.startApplication(RuntimeControlsImpl.java:169)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.invoke(DefaultMBeanInvoker.java:58)
         at com.sap.pj.jmx.mbeaninfo.AdditionalInfoProviderMBean.invoke(AdditionalInfoProviderMBean.java:289)
         at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:944)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
         at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:409)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
         at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:258)
         at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:287)
         at com.sap.engine.services.jmx.MBeanServerInvoker.invokeMbs(MBeanServerInvoker.java:131)
         at com.sap.engine.services.jmx.ClusterInterceptor.invokeMbs(ClusterInterceptor.java:212)
         at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:766)
         at com.sap.engine.services.jmx.MBeanServerInterceptorInvoker.invokeMbs(MBeanServerInterceptorInvoker.java:102)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImpl.invokeMbs(P4ConnectorServerImpl.java:61)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImplp4_Skel.dispatch(P4ConnectorServerImplp4_Skel.java:64)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.NoSuchMethodException: com.sap.mdm.connector.connection.MdmManagedConnectionFactory.setUserName(java.lang.String)
         at java.lang.Class.getMethod(Class.java:986)
         at com.sap.engine.services.connector.jca.deploy.DeployAdmin.instantiateMCF(DeployAdmin.java:1190)
         ... 42 more
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.sleepClientThread(ParallelAdapter.java:270)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:127)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:245)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:4761)
         at com.sap.engine.services.deploy.server.DeployCommunicatorImpl.startApplicationAndWait(DeployCommunicatorImpl.java:661)
         ... 32 more
    How do I solve this bug? We tried both in NW04 SP17 J2EE engine and NW04s SPS9 J2EE engine. It is throwing error in both. Any immediate help will highly be recognise.
    Best Regards
    Kalyan

    Hi Kalyan,
    setting the properties in visual admin is not supported for the MDM connector. You always need to set the properties in your code:
                    spec.setPropertyValue("UserName", user);
                    spec.setPropertyValue("Password", password);
                    spec.setPropertyValue("Server", server);
                    spec.setPropertyValue("Port", String.valueOf(port));
                    spec.setPropertyValue("RepositoryLanguage", lang);
                    spec.setPropertyValue("CodeRegion", "English [US]");
                   //     Get the Connection
                   connection = connectionFactory.getConnectionEx(spec);
                   // Retrieve Native inteface
                   INative nativeInterface = connection.retrieveNative();
                   // Get the CatalogData the physical connection
                   catalog = (CatalogData)
                   nativeInterface.getNative(CatalogData.class.getName());
    Kind regards,
    Andreas

  • Limitations in SAP MDM!!

    Dear Experts,
    Does anyone know about Limitations in SAP MDM!!
    Could you please let me know in detail??
    Kind Regards
    Eva M

    Hi Eva,
    What type of limitations are you refering to.
    One of the major limitations that we have faced in our implementation is if the file size is too big, may be cause of the number of records and the fields mapped out it gets very difficult to manually syndicate the file. If you have any other specific issues could help on that.
    In addition some general issue are
    Sharing of Lookup tables (e.g. country) across repositories not supported. Linking of objects residing in 2 repositories is not supported with SAP NetWeaverMDM 5.5, natively.Workarounds via the integration into SAP NetWeaver Portal
    Use of u201Ceventing technologyu201D mapping of key fields and match of respective values Not sufficient for each and every use case
    There is no Migration options. One needs to manually make the changes right from development through to the production environment.
    there are lots of limitations on Qualified Lookups in MDM 5.5 and also in MDM 7.1....
    1) Can't write Assignments...
    2) Failed validation won't specify which qualified link has failed.
    3) Compare records won't show link wise comparison of qualified links.
    4) Can't start qualified link level workflows.
    5) Role level constraints not applicable for Qualified lookup and tables referencing from QL directly or indirectly.
    6) Qualified link level check-in check-out operations are not possible.
    7) Qualified link level unique constraints are not possible (this becomes pain if links get duplicated by mistake)
    8) Duplication of QL link is not allowed in data manager (for copying Qualifier values in new Qualified link).
    9) Tuple is replacement for qualified lookup, but its more restrictive than QL (validation are not allowed on multivalued tuple).
    One Major limitation that was there in 5.5 was we could only maintain a single Maintable.  7.1 solves that problem.
    The following link gives some good examples:
    http://www.it-director.com/technology/data_mgmt/content.php?cid=10837
    Do let me know in case you need more help or if i was able to help answer your question

  • Configuring Condition Types - Pricing Date

    Greetings to all,
    we are trying to change the way the price conditions are found by using a different date determination within the Condition Type. i am looking at the screen "change view condition type" for a specific condition type (doesn't matter which) and specifically looking at the section "control data 2" and field "Pricing Date". it has a number of choices within it, including 1) blank - standard 2) A - date of service 3) B - price date, and so on. i have determined that this field v_t685a-kprdt (pricing date) has a domain KPRDT and the options for this field are hard coded within the domain (value range).
    my question, is there a way to configure this field so that i can use another date to key on the determination of the price condition?
    my concern is not with the standard SD or FI price condition lookup, but with a bolt on (automotive). it uses this funcitonality and the document has other dates, some customer defined.
    please and thank you.

    Hi Erik
    One option is to use the MV45AFZZ and in the form for KOMK
    pass what ever date you want to KOMK-PRSDT.
    Please try and this and let me know if this works.
    Thanks
    PG

  • MDM Material Data and BI

    I have a customer that will be sending material data from MDM to BI.  In BI, they will be doing reporting using certain navigational attributes we've developed.  From our experience, the process of using the navigational attributes seems slow as you step through and give each one a criteria. 
    Does it makes sense to do the lookup in MDM and send a list of material numbers to BI.  I am thinking that might be faster but, he have no idea how this could be accomplished technically. Do you have any thoughts on using MDM to perform a quick search to get a list of materials and then sending the list to BI as the source for the reports.
    Thanks
    Paul

    Hi Paul,
    I have a customer that will be sending material data from MDM to BI. In BI, they will be doing reporting using certain navigational attributes we've developed. From our experience, the process of using the navigational attributes seems slow as you step through and give each one a criteria.
    Does it makes sense to do the lookup in MDM and send a list of material numbers to BI. I am thinking that might be faster but, he have no idea how this could be accomplished technically. Do you have any thoughts on using MDM to perform a quick search to get a list of materials and then sending the list to BI as the source for the reports
    In case of MDM and BI integration, there are several ways to perform the same.
    1. Using File transfer system - As you have mentioned that in BI we define navigational attributes and transfer the Master data in the form of a .CSV file to BI, which then can report on both the Local Id's and the Global Id's.We had done this scenario with MDM SP04 and the reporting seemed to be good at that time.
    2. With higher versions of MDM, there is a direct integration of MDM with BI using ABAP APi's. INfact the repository was created from BI in MDM server and only Data Manager is used in that case. You can go for this method as well. Plese find the link below to understand the same.
    Integrating MDM with BI 7.0 Using Logical Connection Object, Part 1:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b01e4269-f744-2b10-929b-fa7b49aac540
    Integrating MDM with BI 7.0 Using Logical Connection Object, Part 2:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d06a92de-614e-2b10-4989-d913c2154a64
    Integrating MDM with BI 7.0 Using Logical Connection Object, Part 3:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/00f0d853-936f-2b10-1880-d3deb1fbd858
    http://help.sap.com/saphelp_nw70/helpdata/en/45/5d3bfaa9ef3bdfe10000000a1553f7/frameset.htm
    3. Now coming to your requirement, if you want to use searches in MDM, then you can definitely do that in MDM. The records which get selected in the search creteria can be then syndicated to BI using the File transfer mechanism. This might increase up the speed as only few records will be syndicated as per the search creteria set. You can set the search in Syndicator directly.
    Hope this info helps.
    Thanks and Regards
    Nitin Jain

  • Sync MDM system 9 with DRM(EPM11)

    Hi,
    There is urgent requirment in my project to sync MDM system 9 with the DRM EPM11.The condition is that MDM system 9 application is installed in SQL database whereas DRM system 11 is on the Oracle database. So how to sync both application?
    Thanks

    Hi,
    To bring it in sync , i know one possible way that you can use export and (import/Automator) utilities.
    Does any one knows that:
    If DRM(EPM11) provided any migration utility which can be used if its source is of lower versions(8,9).
    Thanks,
    Shivank

  • Syndication only when records are updated, but ONLY for selected fields

    again with one of my : it's that even possible at all ?
    the case, we have a customer repository where, among other things we add some extra info (classification ABC and similar mainly) to a small percentage of them (around 5 - 10 %)
    and we would like to distribute only those changes, changes in few fields
    of course we load plenty of fields from R3 and other systems, and also we modify records to assign the customers to different business organization that have to look after, this assignments change also very often (it can affect to 30 to 40 % of the customers). All this data does not need to be distributed.
    so in figures (as example to easier understand), weekly base :
    _ 250.000 _ aprox records in MDM
    _ __ 1.000 _ new records every week from source systems
    _ __ 8.000 _ updated records every week from source systems
    _ ______________(yes, big number, some marketing attributes and soft stuff they like to see in MDM)
    _ ____ 100 _ aprox are "enhanced" with data we need to distribute
    _ __ 50.000 _ aprox records are re-assigned or reclassify with data we do NOT need to distribute
    _ ______________(mostly done with assignments and so on that keep changing every week)
    so, even selecting "suppress unchanged records", MDM keeps distributing like 60.000 records, when we only need those 100.
    is any direct way to make this ??
    as a work-around, I have think into a workflow that in a way flags a new field (to_be_distributed) always and only when a user change one of this specific fields. And then filter the distribution for only this field = True. And another workflow that set the mention field to False, just after the distribution is done.
    Crazy idea ??, anything better ??
    (we are in MDM 5.5, if the solution require 7.0, migration plans are in the horizon)
    thanks in advance, everybody

    Hi,
           We had the same scenario where in we have to Syndicate only certain Fields to Legacy...As per your scenario add classification data to your Existing Customer repository. Next steps is to create a map for the classifications data...You write your own conditions in FreeForm search of MDM Syndication. Whenever certain conditions are satisfied, MDM system will syndicate. 
    Next - Option - If you are implementing work flow then create a extra field called Syndicate_Legacy. Syndicate_Legacy should be Flat LookUps .Values should be Syndicate,No Syndicate.  Before end of the WF, you should have  a assignment step. By using assignment change the value to Syndicate or Not syndicate. For this , along with map you should also write a condition in Free form search in syndicator stating that only if Field(Syndicate_Legacy) = Value(Syndicate). I believe these should solve your issue...If not please let me know...
    Thanks
    Ganesh Kotti

  • Connection pool -  api

    Hi,
    the following code try to connect mdm with connection pool :
    <i>
    Context ctx = new InitialContext();
    IConnectionFactory connFactory =
       (IConnectionFactory) ctx.lookup("deployedAdapters/MDM Factory/shareable/MDM Factory");
    IConnectionSpec spec = connFactory.getConnectionSpec();
    spec.setPropertyValue("UserName", Consts.MDM_USER);
    spec.setPropertyValue("Password", Consts.MDM_PASS);
    spec.setPropertyValue("Server", Consts.MDM_SERVER);
    spec.setPropertyValue("Port", Integer.toString(Consts.MDM_PORT));
    spec.setPropertyValue("RepositoryLanguage", Consts.MDM_REGION);
    connection = connFactory.getConnectionEx(spec);
    INative nativeInterface = connection.retrieveNative();
    return (CatalogData) nativeInterface.getNative(CatalogData.class.getName());
    </i>
    my catalogData is null and i see in logs:
    <b>failed to connect server mgnt278 due to:Could not open minimum connections.</b>
    Can You Help ?
    Thanks!

    Hi BenAmram,
    I have not faced this problem before but one thing that I would like to sugesst is to put a check at each step using "try/catch" like, when you get ConnectionFactory object, when you set the ConnectionSpec, when you get INative ojbect etc.
    It may help if you go
    MDM Java Connector : connection problem forum post.
    Just check the compatibility of the MDM4J APIs and the MDM Server you are trying to connect.
    Regards,
    Mausam

  • Parallel processing inside EJB

    Hello!
    I have an EJB (Stateless session) that needs to call three other EJBs to perform some actions.
    Right now, the EJB calls the others performing action A. If A is successfull performs B and then C.
    I would like to perform A. If A is successfull, perform B and C simultaneously.
    If this was a normal Java program, I would execute class A and then launch as threads B and C, getting notifications on complete.
    I read that threading shouldn't be used in EJB's. So, is it possible to call two beans simultaneously from another bean?
    For those thinking JMS, I also thought about that but would like to do it "the old Java way".
    Pointers to docs, comments, etc are appreciated. Even flames! ;)
    Thank you for your time!
    HappyGuy

    Why can't u incorporate the 3 other actions in the same EJB. What holds U ?
    And If it is very much required, Then go ahead Have the other 3 Actions to return boolean.
    Let The X Bean on condition Lookup the Bean A and Bean A's Method.
    Since return type is boolean,
    Decide to invoke B and even when B return's true Then invoke C.
    Even tho u can invoke 2 Bean ( B & C) simultaneously, the control will go the first ( B or C) and then ithe control will follow down.
    Its always better to have check for the boolean value and then decide,
    Solution Ok ,
    Kindly Let Me Know.

Maybe you are looking for

  • Storage location MRP clarification

    this option gives you the ability to plan a storage location separately or exclude it completely from MRP. I am confused why the sloc mrp indicator is given at material master level in MRP4 view? it should be at storage location level right? also cou

  • Desktop freeze on user load- only spotlight icon appears

    I've got a problem with my main user load up. When I log in, my desktop picture (background) appears and then the spotlight icon top right but NOTHING else. The finder freezes and I can't access anything- all I can do is force a power-down and login

  • Add "1-" before area codes

    I transferred all my Contacts from another program into OS X's Address Book, all phone numbers begin with the area code. I'd like to add "1-" before every area code. Is there an AppleScript to do this?

  • Dreaded Beach Ball Back in Apple Mail 10.8.2

    Yup, is it back the dreaded spinning beach ball is back in Apple Mail (10.8.2). I am writing this _itch note while I wait for the dreaded spinning beach ball to stop. It is now making Apple Mail unuseable AGAIN! 10.8.2 has also cause a few other issu

  • Strange quicktime codec export behavior

    I was trying to make a movie from an image sequence using "export quicktime movie" today and had some odd results. The goal was to get the best quality for the least file size, and I needed alot of compression, so I tried many combinations of codecs