Find Objects in the StackFrame via the ID

Hello everyone,
I'm looking for a way to find a variable via a valid Object ID. Here is some code of mine in a pseudo manner how I access the variables in the current frame:
List<LocalVariable> vars = frame.visibleVariables();
Map<LocalVariable, Value> values = frame.getValues(vars);
for (LocalVariable entry : vars) {
          Value val = (Value) values.get(entry);
          // val.toString() ==> "instance of abc (ID=1234)"
Now, if I parse all value objects, I can check for the ID. But how do I get a reference to a object ID which is not in the first hierarchy.
For example, the object A (ID=1234) has object B (ID=2345) as a member. If I'm looking for ID=2345, I don't find the object with the sketched algorithm.
Of course, I can iterate over all objects recursively. But in a big system, this takes forever by doing it manually.
So, is there a builtin method/way to get a object reference or absolute object name ( like ID=6432 yields objA.objB.objC) only by using a known Object ID?
Kind Regards,
Thomas

Just out of curiosity, why not use the Pcd repository manager in KM. This allows you to be able to index the entire PCD catalog, and would allow you to use the standard searching capabilities.
D

Similar Messages

  • Exchange 2010 unable to find objects in child domain via ESM

    I am having a problem on Exchange 2010 which relates to mailboxes whose AD account is in a child domain in the AD forest.
    We have two domains A & B in the forest. The site which hosts E2010 only has DCs from domain A (root domain). These DCs are set as Global Catalogues.
    All Exchange servers (2 x CAS & 2 x Mailbox) installed in Domain A (primary site) can resolve domain B and performing nslookups for domain B on these server displays the DCs installed
    in domain B at remote sites.
    I am migrating some resource mailboxes with AD accounts in domain B and need to set them up as room mailboxes to enable the auto accept bookings feature.
    After migrating the mailboxes via the EMS to set the mailbox as a room, below is the error I get:
    [PS] C:\Windows\system32>set-mailbox mtgrm1@domainB
     -Type Room
    The operation couldn't be performed because object 'mtgrm1@ domainB' couldn't be found on 'DC01.domainA.com'.
        + CategoryInfo          : NotSpecified: (0:Int32) [Set-Mailbox], ManagementObjectNotFoundException
        + FullyQualifiedErrorId : 9E6F6A1,Microsoft.Exchange.Management.RecipientTasks.SetMailbox
    I have also tried using only the alias and the object CN:
    set-mailbox mtgrm1 -Type Room
    set-mailbox –identity 'domainB/Sitename/ Users/MSX Resource Accounts/Conf MtgRm1 (Video)' -Type Room
    but get the same error.
    All employee mailboxes from Domain B have been migrated to Exchange 2010 from 2003 and are working with no problems.
    I have confirmed domain B has been prepared for E2010 - In the Microsoft Exchange System Objects container in AD there is the global group Exchange Install Domain Servers.
    Event ID 2080
    Process MSEXCHANGEADTOPOLOGYSERVICE.EXE (PID=1864). Exchange Active Directory Provider has discovered the following servers with the following characteristics:
     (Server name | Roles | Enabled | Reachability | Synchronized | GC capable | PDC | SACL right | Critical Data | Netlogon | OS Version)
    In-site:
    dc02.domainA.COM           
    CDG 1 7 7 1 0 1 1 7 1
    DC01.domainA.com            
    CDG 1 7 7 1 0 1 1 7 1
     Out-of-site:
    DC03.domainA.COM          
    CDG 1 0 0 1 0 0 0 0 0
    dc04.domainA.COM           
    CDG 1 0 0 1 0 0 0 0 0
    Please note the Out of site DCs are for our Exchange failover site which is currently down due to the storms on the East Coast.
    Does Exchange 2010 require a local DC for the second domain installed in the sites which host Exchange? If not, any advise on what else I can look at will be appreciated.
    Thanks.

    Hi there,
    If the questions is answered, please mark it accordingly. Thanks. 
    Fiona Liao
    TechNet Community Support

  • How can I persist a Java object to the PCD via JNDI ?

    Hi,
    I'm trying to persist XML data on the PCD via JNDI. I'm using
    portal version 6.2.0.4.200408172051.
    I followed the instructions in the "Portal Runtime Technology 640"
    document.
    The example they showed was:
    import javax.naming.Context;
    Context context = PortalRegistry.getCentralConfigurationContext();
    Context applicationContext = context.lookup("MyAppName");
    It was possible to obtain 'applicationContext' in the above example by
    using:-
    Context context = PortalRegistry.getCentralConfigurationContext();
    String appName = request.getComponentContext().getApplicationName();
    Context applicationContext = (Context) context.lookup(appName);
    However, any attempt to bind, rebind an object (implementing IStreamSource)
    resulted in NamingExcptions. As did 'listBindings' and 'list' (see below).
    BeanWrapper d = new BeanWrapper("test input");
    applicationContext.rebind("PCD_LOOKUP_KEY", d);
    // where 'd' implements IStreamSource
    class BeanWrapper implements IStreamSource {
    String content = "balh";
    BeanWrapper(String s) {
    content = s;
    public InputStream getInputStream() throws IOException {
    ByteArrayInputStream bis = new ByteArrayInputStream(content.getBytes());
    return bis;
    } // getInputStream
    } // BeanWrapper
    I don't know what I've done wrong. I couldn't find any more documentation
    on this topic...
    Any help would be appreciated.
    cheers,
    Michael
    javax.naming.NameNotFoundException: [Xfs] Object not found. Root exception is javax.naming.NamingException: [Xfs] Object not found
    at com.sapportals.portal.pcd.gl.xfs.BasicContext.lookup(BasicContext.java:840)
    at com.sapportals.portal.pcd.gl.PcdPersContext.lookup(PcdPersContext.java:422)
    at com.sapportals.portal.pcd.gl.PcdFilterContext.filterLookup(PcdFilterContext.java:387)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java:1083)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.proxyLookupLink(PcdProxyContext.java:1170)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.proxyLookup(PcdProxyContext.java:1132)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.getBasicObject(PcdProxyContext.java:1330)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.getBasicContext(PcdProxyContext.java:1306)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.rebind(PcdProxyContext.java:473)
    at com.sapportals.portal.pcd.gl.PcdGlContext.rebind(PcdGlContext.java:1185)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.rebind(PcdProxyContext.java:515)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.rebind(PcdProxyContext.java:683)
    at com.sapportals.portal.pcd.gl.PcdProxyContext.rebind(PcdProxyContext.java:688)
    at com.sapportals.portal.prt.jndisupport.util.AbstractContextWrapper.rebind(AbstractContextWrapper.java:46)
    at com.siemens.pct.employee.cu_selector.CUSelector.saveCuBeanToPCD(CUSelector.java:305)
    at com.siemens.pct.employee.cu_selector.CUSelectorUpload.doUpload(CUSelectorUpload.java:70)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.handleRequestEvent(AbstractPortalComponent.java:700)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.handleEvent(AbstractPortalComponent.java:412)
    at com.sapportals.portal.prt.pom.ComponentNode.handleEvent(ComponentNode.java:250)
    at com.sapportals.portal.prt.pom.PortalNode.fireEventOnNode(PortalNode.java:333)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:627)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:208)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:149)
    at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:832)
    at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:666)
    at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:313)
    at com.inqmy.services.httpserver.server.Response.handle(Response.java:173)
    at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1288)
    at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
    at com.inqmy.core.cluster.impl5.ParserRunner.run(ParserRunner.java:55)
    at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:148)

    Hi Michael,
    here my comments to your questions:
    0.:[Michael says:]
    "So basically you're saying that under SP10 its not possible to store objects on the PCD ... ?"
    I want to clarify this:
    It is possible to store objects in the PCD in lower releases than SP10 (e.g. SP2). But due to the fact that PCD API is not public before SP10 you should not develop a SP2 iView that programmatically uses the PCD API and complain afterwards because some "tiny" things of it are not working in SP10. It might be that you have to adjust some parts of this SP2 iView.
    The kind of object that can be stored in the PCD depends on the fact if the objects have a corresponding object provider or not. If you want to store iViews, roles or one of the other commonly known portal objects you can do it because corresponding object provider (iViewservice, roleservice, etc.) are always available in a running portal.
    If you want to store objects (like your BeanWrapper class) then you should write a corresponding object provider (what I explained in my first reply).
    1.:[Michael asked:]
    Why does list and listBindings fail ? surely that should just
    list the existing bound objects ???
    Nothing was bound!
    Your code line
    applicationContext.rebind("PCD_LOOKUP_KEY", d);
    throws a NamingException because no object provider for class of object d was found.
    So I gess you did a lookup on  applicationContext.lookup( "PCD_LOOKUP_KEY" ) before you did the list/listBindings and because this
    context does not exist the corresponding "Name not found" exception was thrown?
    A list/listBinding on the applicationContext itself should work even if nothing was bound.
    2.:[Michael asked:]
    Is there not some kind of default object/object provider pair
    that can be used to store base types like Strings/Integers etc ?
    No. There are no default object providers for java string/integers. But for this case "persisting a string or integer value at any PCD context" the PCD offers another way to do it: Just create an additional attribute (of type STRING or INT) and persist the corresponding value in this attribute (of type IPcdAttribute - an extension of javax.naming.directory.Attribute )   
    The code for creating a pcd attribute looks e.g. like this:
    IPcdObjectFactory pcdObjFactory = ((IPcdGlService) PortalRuntime
                                                   .getRuntimeResources()
                                                   .getService(IPcdGlService.KEY))
                                                   .getPcdObjectFactory();
    IPcdAttribute newPcdAttr = pcdObjFactory.createPcdAttribute(     PcdAttributeValueType.STRING,
                                            "new_attrId" );     
    newPcdAttr.set(     0,
              "new_AttrValue" );
    ModificationItem mods[] = new ModificationItem[1];
    mods[0] = new ModificationItem(      DirContext.REPLACE_ATTRIBUTE,
                               (Attribute)newPcdAttr );
    pcdCtx.modifyAttributes(     "",
                        mods );
    Hope, that helps you!
    Regards,
    Jens

  • How to to find out if the objects used "Registration" color or not?

    Is it possible to find out if the objects used "Registration" color or not via scripting? Kindly advise me.
    Thanks for looking into this.

    Hi,
    May be you might read this post
    http://forums.adobe.com/thread/623432?tstart=0
    ciao , art.chrome

  • How to find the size of the master data objects in the BW system?

    Hi,
    We would like to understand the size of the master data tables overall for a specific source system (Logical name is Ex.ABCD, which supplies all master data to BW). Can you please advise the procedure to find out this?
    Is there any table that will allows to see all the master data objects related to specific sources system so that we can find out that table size? Thanks.
    For example, we have many Texts, Hier & Attributes.
    0COUNTRY_TEXT
    0REGION_TEXT
    0PERSON_ATTR
    0MATERIAL_LPRH_HIER
    Advance Thanks.
    Edited by: BW USA on Feb 2, 2010 10:52 AM

    Hi,
    You can find out all the master data tales used in the BW system by
    Tcode : SE11
    Enter as /BIC/P* for master data tables and press F4 which gives list of master data tables currently used in BW system.
    Similarly for Texts  /BIC/T*  and press F4
    Similarly for Hierarchies /BIC/H-* press F4
    and can know the size of the all tables.
    Thanks,
    Gopal

  • To find the list of Inactive objects in the Production system.

    Hi Experts,
      Need a help. I want to find the List of inactive objects in the Production system. Do we have any standard program or any transcation code to find.
    Appreciate your help.
    Thanks,
    Venkata.A

    Check below threads -
    Check Inactive Objects in System
    Need program to find the inactive objects
    Tcode for finding out the inactive BI Objects

  • Hello - does anyone now how to place a complain for an over charged invoice over a in-purchase game? Apple is charging 10 times more the purchase we made and I cannot find anyplace in the App store to complain online or via email? Please help if you know

    Hello - does anyone now how to place a complain for an over charged invoice over a in-purchase game? Apple is charging 10 times more the purchase we made and I cannot find anyplace in the App store to complain online or via email? Please help if you know

    Use the Report a Problem link in the iTunes email receipt you received. Also in-app purchases can be made without the password if you bought the app within the last 15min. You should enable the in-app restriction in Settings.

  • Help ! I can't find the "field" tab for an object in the library

    Just starting out with the software. I want to place a text box that spans several lines and "allow multiple lines" in a form I am building. The only problem is I can't find the field tab for the text box object. The only two tabs I have at the top of the object library is "Object Library" and "Fragment Library"
    What am I missing?

    Click on the Object Library. Below that there shoudl be three libraries (My Favorites, Standard and Custom). The Textfield is in the Standard library. If all else false you can use the Insert Menu and then choose standard from there.
    Paul

  • Finding objects that use certain colors in the palette

    My document has RGB colors imported from the Word document. I'd like to be able to find the objects that are colored with these imported colors. Is there a way to sort and find objects based on color?

    That's a little tricky. How do you prove a negative, as it were? You can do an object-based find/change, but only for for things you define, so for example you acan find all objects that DO have a certain color fill, but it won't find anything that doesn't match the criteria.
    It might be possible to script a solutuion that would step through all objects and compare them to a list of criteria, then list the ones that don't match.

  • Does the user have to be the owner of CWM2 objects to access them via OLAP API?

    Hi,
    What are required for RDBMS users to use OLAP API? Regarding page 6-9 of Oracle9i OLAP User's Guide 9.2.0.1, following access rights are required.
    CONNECT role
    QUERY REWRITE system privilege
    SELECT privilegs on the database objects containing the data to be analyzed
    So, I created a new user TEST1 and granted all the priviges above. Then I tried to create a new crosstab using New Crosstab Wizard in JDev903_pre(OLAPConnecton is using TEST1). When I choose a measure that is created in CWM1, I could create a crosstab without problem. But when I tried to create a crosstab from a measure that is created in CWM2 by OLAPSYS user, I recieved the following error.
    BIB-9509 Oracle OLAP did not create cusor.
    oracle.express.ExpressServerExceptionError class:OLAPI
    Server error descriptions:
    DPR: Unable to create server cursor, Generic at TxsOqDefinitionManager::createCursorManager
    OES: ORA, Generic at TxsRdbSelectStatement:execute()
    The curious thing is that I can create a crosstab from the same measure if I use another connection that uses OLAPSYS. Does the user that connects to CWM2 using OLAP API have to be the owner of those CWM2 objects?
    Thank you.
    Best Regards,
    Seiji

    The user does not have to be the owner of the cwm2 objects to access them. Access to cwm2 objects is based on database security. Therefore, if the user is not the owner of the object (if user is the owner, they obviously have access to the object), then as long as the user has been granted access to the underlying physical object (i.e., the table the dimension or cube has been mapped to), the user will be able to access the object.

  • Exchange 2003 Removal fails w/ Error code 0X80072030 (8240): There is no such object on the server- pls read

    Dear all,
    I know there are quite some threads regarding this issue. But I've been looking at all of them w/o any solution for my problem. Here we go...
    I've followed all instructions for a Exchange 2003 to 2010 transition. All went fine to the point I'm trying to uninstall Exchange 2003 via Control Panel/Software/Remove. So far I did the following:
    1. Move mailboxes to Exchange Server 2010 using Move Mailbox Wizard or Powershell => successfully
    2. Rehome the Offline Address Book (OAB) generation server to Exchange Server 2010  => successfully
    3. Rehome Public Folder Hierarchy on new Exchange Server 2010 Admin Group  => successfully
    4. Transfer all Public Folder Replicas to Exchange Server 2010 Public folder store  => successfully
    5. Delete Public and Private Information Stores from Exchange 2003 server  => successfully
    6. Delete Routing Group Connectors to Exchange Server 2003  => successfully
    7. Delete Recipient Update Service agreements using ADSIEdit according to
    http://technet.microsoft.com/en-us/library/bb288905(EXCHG.80).aspx => successfully
    8. Uninstall all Exchange 2003 servers => fails with "Error code 0X80072030 (8240): There is no such object on the server"
    I used the following articles while migrating to Exchange 2010:
    http://technet.microsoft.com/en-us/library/bb288905(EXCHG.80).aspx
    http://support.microsoft.com/kb/833396/en-us
    http://www.simple-talk.com/content/article.aspx?article=882
    and several more.
    I looked into these forums regarding my problem and came up with:
    http://support.microsoft.com/kb/283089/en-us
    http://support.microsoft.com/kb/822931
    I investigated the following possible reasons:
    - homeMDB attribute (no references to my Exchange 2003 anymore)
    - HomeMDBBL attribute (as described here
    http://social.technet.microsoft.com/Forums/en-US/exchangesvrmigration/thread/f0e3edd7-34e5-46b8-8061-1991aaffc30f) (no Information Stores available anymore as they have been successfully removed)
    - msExchHomeServerName attribute (all pointing to my new Exchange 2010 server)
    - the "famous" postmaster issue as described here:
    http://support.microsoft.com/kb/283089/en-us (pointing to the new Exchange 2010 server)
    In order to investigate all attribute related issues a utilized a VBS script resulting in an Excel sheet I was easily able to filter:
    SET objRootDSE = GETOBJECT("LDAP://RootDSE")
    strExportFile = "C:\temp\MyExport.xls"
    strRoot = objRootDSE.GET("DefaultNamingContext")
    strfilter = "(&(objectCategory=Person)(objectClass=User))"
    strAttributes = "sAMAccountName,msExchHomeServerName,homeMDB,legacyExchangeDN,givenName,sn," & _
                                    "initials,displayName,physicalDeliveryOfficeName," & _
                                    "telephoneNumber,mail,wWWHomePage,profilePath," & _
                                    "scriptPath,homeDirectory,homeDrive,title,department," & _
                                    "company,manager,homePhone,pager,mobile," & _
                                    "facsimileTelephoneNumber,ipphone,info," & _
                                    "streetAddress,postOfficeBox,l,st,postalCode,c"
    strScope = "subtree"
    SET cn = CREATEOBJECT("ADODB.Connection")
    SET cmd = CREATEOBJECT("ADODB.Command")
    cn.Provider = "ADsDSOObject"
    cn.Open "Active Directory Provider"
    cmd.ActiveConnection = cn
    cmd.Properties("Page Size") = 1000
    cmd.commandtext = "<LDAP://" & strRoot & ">;" & strFilter & ";" & _
                                       strAttributes & ";" & strScope
    SET rs = cmd.EXECUTE
    SET objExcel = CREATEOBJECT("Excel.Application")
    SET objWB = objExcel.Workbooks.Add
    SET objSheet = objWB.Worksheets(1)
    FOR i = 0 To rs.Fields.Count - 1
                    objSheet.Cells(1, i + 1).Value = rs.Fields(i).Name
                    objSheet.Cells(1, i + 1).Font.Bold = TRUE
    NEXT
    objSheet.Range("A2").CopyFromRecordset(rs)
    objWB.SaveAs(strExportFile)
    rs.close
    cn.close
    SET objSheet = NOTHING
    SET objWB =  NOTHING
    objExcel.Quit()
    SET objExcel = NOTHING
    Wscript.echo "Script Finished..Please See " & strExportFile
    What I did find is that all my Exchange enabled users have an legacyExchangeDN attribute that is still pointing to my Exchange 2003 organization:
    e.g. "/o=First Organisation/ou=First Administrative Group/cn=Recipients/cn=Administrator"
    Could this cause any problems?
    Now the in depth look into my "Exchange Server Setup Progress.log":
    [09:33:06] Leaving ScPRQ_DoesNotContainLastMAPIMDBInMixedModeAG
    [09:33:06]  ScPRQ_ServerIsNotRUSResponsibleServerInTheNonEmptyOrg (f:\titanium\admin\src\udog\excommon\prereq.cxx:3133)
               Error code 0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:06]  CCompServer::ScCheckEVSPrerequisites (f:\titanium\admin\src\udog\exsetdata\components\server\compserver.cxx:1358)
               Error code 0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:06]  CCompServer::ScCheckPrerequisites (f:\titanium\admin\src\udog\exsetdata\components\server\compserver.cxx:955)
               Error code 0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:06]  CComExchSetupComponent::ScCheckPrerequisites (f:\titanium\admin\src\udog\bo\comboifaces.cxx:1598)
               Error code 0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:06]  CComExchSetupComponent::ScCheckPrerequisites (f:\titanium\admin\src\udog\bo\comboifaces.cxx:1598)
               Error code 0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:06] === IGNORING PREVIOUS ERRORS === HrSetProblemOnInstallAction, while calling ScCheckPrerequisites (f:\titanium\admin\src\udog\bo\comboifaces.cxx:1399)
               Der Vorgang wurde erfolgreich beendet.
    [09:33:06] Ein Fehler ist beim Überprüfen der Voraussetzungen für die Komponente "Microsoft Exchange" durch Setup aufgetreten:
    0X80072030 (8240): Ein solches Objekt ist auf dem Server nicht vorhanden.
    [09:33:14]  CComBOIFacesFactory::QueryInterface (f:\titanium\admin\src\udog\bo\bofactory.cxx:54)
    I did search for:
    - Error code 0X80072030 (8240)
    - ScPRQ_ServerIsNotRUSResponsibleServerInTheNonEmptyOrg
    Nothing so far. In case some more information is needed just let me know.
    Any help would be greatly appreciated as I absolutely don't know how to remove my Exchange 2003. Manual removal is not an option.
    Alex

    I kept on searching and found something else:
    http://www.outlookforums.com/threads/33038-cannot-uninstall-Exchange-2000
    It says that the following groups need to be resided in the AD's default "Users" organizational unit:
    - Exchange Domain Servers
    - Exchange Enterprise Servers
    - Exchange Services Group
    Unfortunately I cannot find the "Exchange Services Group". Does that have something to do with my problem?
    Furthermore I found out that the Exchange 2003 has been originally installed with SBS 2003 back in time. The SBS 2003 has then be migrated to a regular Windows Server 2003 infrastructure with 2 DCs. But there still is a load of stuff reminiscent of SBS
    2003 within the AD.
    Then I dug deeper into my AD using ADSIEdit. I found another attribute homeMTA that is pointing to a corresponding Exchange server. After adjusting my aforementioned VBS script a was able to look into that attribute as well. I found 2 users pointing to my old
    Exchange server within their homeMTA attribute.
    Furthermore I saw that when trying to uninstall Exchange 2003 there is no path to my installation anymore. It's empty:
    Another issue?
    Regards
    Alex

  • PDF Exception: Invalid object for the XFA entry in the forms dictionary

    Hi,
    We have an online adobe interactive form, via webdynpro, which saves OK, but occassionaly when a form is loaded again the form appears blank and the below error is returned by the ADS.  I've searched but cannot find any definitive answer to this issue:
    Processing exception during a "GetData" operation.#Request start time:Tue Jan 11 14:08:47 GMT 2011#com.adobe.ProcessingException: Error exporting Data into PDF - PDF Exception: Invalid object for the XFA entry in the forms dictionary.#[Ljava.lang.StackTraceElement;@51bb49da##Exception Stack Trace:#com.adobe.ProcessingException: Error exporting Data into PDF - PDF Exception: Invalid object for the XFA entry in the forms dictionary.#[Ljava.lang.StackTraceElement;@51bb49da###at com.adobe.ads.remote.EJB_PDFAgent.exportFormData(Unknown Source)###at com.adobe.ads.operation.GetData.execute(Unknown Source)###at com.adobe.ads.operation.ADSOperation.doWork(Unknown Source)###atcom.adobe.ads.request.Request.processOperations(Unknown Source)###at com.adobe.ads.request.Request.process(Unknown Source)###at com.adobe.AdobeDocumentServicesEJB.processRequest(Unknown Source)###at com.adobe.AdobeDocumentServicesEJB.rpData(Unknown Source)###at com.adobe.AdobeDocumentServicesLocalLocalObjectImpl0_0.rpData(AdobeDocumentServicesLocalLocalObjectImpl0_0.java:120)###at sun.reflect.GeneratedMethodAccessor1814.invoke(Unknown Source)###at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)###at java.lang.reflect.Method.invoke(Method.java:324)###at com.sap.engine.services.webservices.runtime.EJBImplementationContainer.invokeMethod(EJBImplementationContainer.java:126)###at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:157)###at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:79)###at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:92)###atSoapServlet.doPost(SoapServlet.java:51)##at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)###at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)###at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)###at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)###at com.sap.engine.services.http
    server.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)###atcom.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnali er.java:364)###at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)###atcom.sap.engine.services.httpserver.server.Reques
    Analizer.handle(RequestAnalizer.java:265)###at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)###at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)###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:104)###at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)##Caused by: com.adobe.internal.pdftoolkit.core.exceptions.PDFInvalidDocumentException: Invalid object for the XFA entry in the forms dictionary.###at com.adobe.internal.pdftoolkit.services.xfa.impl.PDFFormSupport.exportXFAData(Unknown Source)###at com.adobe.internal.pdftoolkit.services.xfa.XFAService.exportDataset(Unknown Source)###... 32 more##
    Please help!
    Edited by: Kevin Alcock on Jan 11, 2011 2:20 PM

    Hi Otto,
    We have had the form working and in most instances the form can be updated multiple times without issue.  However, occassionally a form is created OK but the next time it is launched it is blank (the data is visible when the PDF is downloaded to the desktop)
    Do you think this issue could be to do with the form layout/XML...I changed the form template 2 days ago as I suspected this issue could be realted to incorrect field bindings but we have had the error on a form created after the change was made.
    Many Thanks,
    Kevin
    Edited by: Kevin Alcock on Jan 13, 2011 1:10 PM

  • How to remove unused objects from the webcatalog In OBIEE11g

    Hi,
    I want to delete unused objects from obiee11g catalog, i know in obiee10g it's working fine (i.e: we can do it via manage catalog then delete the unused objects) is there any way to do it automatically like RPD utility --->removing unused objects from Physical layer in RPD
    fyi: I don't want to delete manualy. i need somethink like button/link to find unused objects(report,filter,folder..etc) from my obiee11g catalog.
    Thanks
    Deva
    Edited by: Devarasu on Nov 29, 2011 12:06 PM
    Edited by: Devarasu on Nov 29, 2011 3:15 PM

    Hi,
    Checked with Oracle Support team and confirmed below points
    --> incorporated into the Current product and consider as BUG it may resolve future release
    --> Currently there isnt any automatic method to remove the unused objects like reports, filters,folder etc from catalog.
    Treated as Bug
    Bug 13440888 - AUTOMATICALLY REMOVE OF UNUSED CATALOG OBJECTS FROM WEBCATALOG
    FYI:
    SR 3-4984291131: How to remove unused objects from the webcatalog in obiee11g
    Thanks
    Deva

  • How to bind Hibernate domain objects to the UI layer

    Dear All,
    I am trying to bind FX UI controls to properties of a Hibernate Domain object. Is there any good example to refer to for this purpose?
    Thanks & Regards,
    Nitin Gupta

    Assuming you do not formulate your hibernate objects as pojos with javafx properties directly, if the hibernate object is a pojo with or without PCL, you can convert the properties of the pojo to observable values (or properties) directly. These are used in a bind statement.
    Check out what jgoodies does with BeanAdapter or PresentationModel. You need the same concept. I've attached a class that does this for a pojo already (its an incomplete port of jgoodies PresentationModel). It will work for any pojo. It does not have setter support as it was just a demonstration. Its efficient for a pojo with a large number of properties. You could also write a very short property connector to produce one observable value per property. The value of the class below is to be able to swap out the bean being observed without having to change or reset the property observable values each time. Bind once and then just reset the bean (think master detail).
    package scenegraphdemo;
    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.Map;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.property.ObjectPropertyBase;
    import javafx.beans.property.Property;
    import javafx.beans.property.StringProperty;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.beans.value.WritableValue;
    * An object binding object that creates object bindings based on property names
    * specified as strings. This is a convenience class to avoid having observable
    * values directly dependent on the underlying bean. The actual bean the
    * properties connect can be changed dynamically using the channel or
    * <code>setBean</code>. This allows you to setup binding when you don't have
    * the bean to bind to or the bean to bind to will change as in the detail part
    * of a master-detail screen. Generally, the return values from
    * <code>getProperty()</code> should be used for binding not the factory itself.
    * The object should be a domain object bean with bean methods to get or set the
    * value using java bean naming conventions OR it should use javafx property
    * definition conventions. The factory will automatically listen for standard
    * java bean changes using <code>PropertyChangeListener</code> approaches unless
    * you indicate to not to.
    * <p>
    * When the bean itself changes, the properties fire to indicate that their
    * values may have changed and the observing object should update itself. This
    * object allows you to integrate your javafx/POJOs into the binding
    * infrastructure without being dependent on the actual underlying bean. If you
    * are familiar with jgoodies <code>BindingAdapter</code> this is a similar
    * class.
    * <p>
    * This only handles reading bean properties. Need to add set() logic.
    * <p>
    * TODO: Make this work better. Many corner cases to cover.
    * <p>
    * TODO: Instead of just method calls on POJOs, also check for PCL. Note that
    * javafx properties won't work easily they are always tied to the underlying
    * object so I would have to write another CaptiveObjectProperty object that is
    * essentially a delegator.
    public class BeanPropertyFactory<T> extends ObjectProperty<T> {
         ObservableValue<T> channel;
         Map<String, CaptiveObjectProperty> properties = new HashMap<String, CaptiveObjectProperty>();
         boolean listenForBeanPCLEvents = true;
         public boolean isListenForBeanPCLEvents() {
              return listenForBeanPCLEvents;
         public void setListenForBeanPCLEvents(boolean listenForBeanPCLEvents) {
              this.listenForBeanPCLEvents = listenForBeanPCLEvents;
              if (getBean() != null)
                   removeBeanPCLListener(getBean());
          * The bean channel where the bean is obtained.
          * @return
         public ObservableValue<T> getChannel() {
              return channel;
         public BeanPropertyFactory() {
              setChannel(new ObjectProperty());
         public BeanPropertyFactory(ObservableValue<T> channel) {
              if (channel == null)
                   setChannel(new ObjectProperty());
              else
                   setChannel(channel);
         protected void setChannel(ObservableValue<T> channel) {
              if (this.channel != null) {
                   removeBeanChangeListener(this.channel);
              this.channel = channel;
              if (this.channel != null) {
                   addBeanChangeListener(this.channel);
                   updateStringProperty(getBean());
              invalidateProperties();
              fireValueChangedEvent();
         protected StringProperty stringProperty = new StringProperty();
          * The string property is an observable toString property. It cannot be set.
          * @return
         public StringProperty beanStringProperty() {
              return stringProperty;
         public String getBeanString() {
              return beanStringProperty().getValue();
          * A listener that listens to changes in the bean channel. This only fires
          * when the bean changes not when the properties on the bean change. The
          * default actions updates the "string" property representation of this
          * object as well as attaches property change listeners.
          * @author Mr. Java
         protected class BeanChangeListener implements ChangeListener {
              @Override
              public void changed(ObservableValue arg0, Object arg1, Object arg2) {
                   if (arg1 != null) {
                        BeanPropertyFactory.this.removeBeanPCLListener(arg1);
                   if (arg2 != null) {
                        BeanPropertyFactory.this.addBeanPCLListener(arg2);
                   updateStringProperty(arg2);
         protected void updateStringProperty(Object obj) {
              if (obj != null)
                   beanStringProperty().setValue(obj.toString());
              else
                   beanStringProperty().setValue("null");
         protected void removeBeanChangeListener(ObservableValue<T> obj) {
              if (beanChangeListener == null)
                   beanChangeListener = createBeanChangeListener();
              if (obj != null) {
                   obj.addListener(beanChangeListener);
         protected void addBeanChangeListener(ObservableValue<T> obj) {
              if (beanChangeListener == null)
                   beanChangeListener = createBeanChangeListener();
              if (obj != null)
                   obj.removeListener(beanChangeListener);
          * The instance of a change listener for detecting when the bean in the bean
          * channel changes.
         ChangeListener beanChangeListener = new BeanChangeListener();
          * Subclass can override to create their bean change listener.
          * @return
         protected ChangeListener createBeanChangeListener() {
              return new BeanChangeListener();
         public BeanPropertyFactory(T bean) {
              setChannel(new ObjectProperty(bean));
         public Property getProperty(String property) {
              if (property == null || property.isEmpty())
                   throw new IllegalArgumentException("Property cannot be null");
              if (properties.containsKey(property))
                   return properties.get(property);
              CaptiveObjectProperty p = new CaptiveObjectProperty(this, property);
              properties.put(property, p);
              return p;
         @Override
         public T getValue() {
              return getBean();
          * A listener that listens for property change events on the bean. When the
          * bean changes, the listener must be removed then attached to the new bean
          * but can use the same instance of this class. The action is to inform any
          * existing property objects that the property has changed. The detection of
          * property changes is centralized in the factory class for efficiency.
         protected class BeanPropertyListener implements PropertyChangeListener {
              @Override
              public void propertyChange(PropertyChangeEvent evt) {
                   if (properties.containsKey(evt.getPropertyName())) {
                        CaptiveObjectProperty p = properties.get(evt.getPropertyName());
                        p.propertyChanged();
                   updateStringProperty(getBean());
          * The cached listener instance to listen to the bean (in the bean channel)
          * property change events if it supports PCL.
         PropertyChangeListener beanPropertyListener;
          * Subclasses can override to implement their own behavior. Its best to
          * extend from <code>BeanPropertyListiner</code> to include the default
          * behavior.
          * @return
         protected PropertyChangeListener createBeanPropertyListener() {
              return new BeanPropertyListener();
          * Add a listener only if the PCL methods exist. This listens for property
          * changes on the bean's property not changes in the actually bean held by
          * the bean channel.
         protected void addBeanPCLListener(Object obj) {
              if (!isListenForBeanPCLEvents())
                   return;
              if (obj != null) {
                   if (BeanPropertyUtils.hasPCL(obj.getClass())) {
                        if (beanPropertyListener == null)
                             beanPropertyListener = createBeanPropertyListener();
                        BeanPropertyUtils.addPCL(obj, beanPropertyListener, null);
          * Remove a listener only if the PCL methods exist.
          * @see #attachBeanPCLListener
         protected void removeBeanPCLListener(Object obj) {
              if (obj != null) {
                   if (BeanPropertyUtils.hasPCL(obj.getClass())) {
                        if (beanPropertyListener == null)
                             beanPropertyListener = createBeanPropertyListener();
                        BeanPropertyUtils.removePCL(obj, beanPropertyListener, null);
          * Invalidate the properties in the property cache. Then changed the bean in
          * the bean channel. Then fire a value changed event.
          * @param bean
         public void setBean(T bean) {
              invalidateProperties();
              if (getChannel() instanceof WritableValue) {
                   ((WritableValue) getChannel()).setValue(bean);
              } else {
                   throw new IllegalArgumentException(
                             "Could not set bean value into a non-writable bean channel");
              fireValueChangedEvent();
          * Called to indicate that the underlying bean changed.
         protected void invalidateProperties() {
              for (CaptiveObjectProperty p : properties.values()) {
                   p.invalidate();
         public T getBean() {
              return getChannel().getValue();
          * Lazily get the method representing the property prior to getting or
          * setting. Because this is a property, it can also be bound to.
          * @author Mr. Java
          * @param <T>
         protected static class CaptiveObjectProperty<T> extends
                   ObjectPropertyBase<T> {
               * The string name of the property.
              String readPropertyName, writePropertyName;
               * If the property is really a javafx property, it is stored here.
              Property<T> enhancedProperty;
               * Used if the property is not an enhanced property.
              Method readMethod, writeMethod;
               * The factory that holds the bean we obtain values against.
              BeanPropertyFactory factory;
              public CaptiveObjectProperty(BeanPropertyFactory factory,
                        String property) {
                   this.readPropertyName = property;
                   this.factory = factory;
              public CaptiveObjectProperty(BeanPropertyFactory factory,
                        String property, String writePropertyName) {
                   this.readPropertyName = property;
                   this.writePropertyName = writePropertyName;
                   this.factory = factory;
              @Override
              public Object getBean() {
                   if (factory == null || factory.getBean() == null)
                        return null;
                   return factory.getBean();
              @Override
              public void store(T value) {
                   if (writeMethod == null && enhancedProperty == null) {
                        getWriteMethod(value.getClass());
                   if (writeMethod == null && enhancedProperty == null) {
                        return;
                   try {
                        if (enhancedProperty != null) {
                             enhancedProperty.setValue(value);
                             return;
                        if (getBean() == null)
                             return;
                        writeMethod.invoke(getBean(), value);
                        return;
                   } catch (Exception e) {
                        e.printStackTrace();
              @Override
              public T getValue() {
                   if (readMethod == null && enhancedProperty == null) {
                        getReadMethod();
                   if (readMethod == null && enhancedProperty == null)
                        return null;
                   try {
                        if (enhancedProperty != null)
                             return enhancedProperty.getValue();
                        if (factory.getBean() == null)
                             return null;
                        Object rval = readMethod.invoke(getBean());
                        return (T) rval;
                   } catch (Exception e) {
                        e.printStackTrace();
                   return null;
              @Override
              public String getName() {
                   return readPropertyName;
               * Invalidate the method. Perhaps the bean changed to another object and
               * we should find the method on the new object. This is called prior to
               * the <code>getBean()</code> being changed.
              public void invalidate() {
                   readMethod = null;
                   fireValueChangedEvent();
               * This is used to externally signal that the property has changed. It
               * is quite possible that this object does not detect those changes and
               * hence, an external object (in all cases the BeanPropertyFactory) will
               * signal when a change occurs. Property change detection is centralized
               * in the factory for efficiency reasons.
              public void propertyChanged() {
                   fireValueChangedEvent();
              protected Property getJavaFXReadProperty(String propertyName) {
                   if (factory.getBean() == null)
                        return null;
                   String methodName = getName() + "Property";
                   try {
                        Method mtmp = factory.getBean().getClass()
                                  .getMethod(methodName, new Class<?>[0]);
                        enhancedProperty = (Property) mtmp.invoke(factory.getBean(),
                                  new Object[0]);
                        return enhancedProperty;
                   } catch (Exception e) {
                        // e.printStackTrace();
                        // silently fail here
                   return null;
              protected void getWriteMethod(Class<?> argType) {
                   if (factory == null || factory.getBean() == null)
                        return;
                   if (enhancedProperty == null)
                        enhancedProperty = getJavaFXReadProperty(getName());
                   if (enhancedProperty != null)
                        return;
                   writeMethod = getPojoWriteMethod(getName(), argType);
               * Sets the method, either an enhanced property or the POJO method via
               * reflection.
               * @return
              protected void getReadMethod() {
                   if (factory == null || factory.getBean() == null)
                        return;
                   enhancedProperty = getJavaFXReadProperty(getName());
                   if (enhancedProperty != null)
                        return;
                   // Look for standard pojo method.
                   readMethod = getPOJOReadMethod(getName());
               * Return a get method using reflection.
               * @param propertyName
               * @return
              protected Method getPOJOReadMethod(String propertyName) {
                   if (factory.getBean() == null)
                        return null;
                   // Look for standard pojo method.
                   String methodName = getGetMethodName();
                   try {
                        Method mtmp = factory.getBean().getClass()
                                  .getMethod(methodName, new Class<?>[0]);
                        return mtmp;
                   } catch (Exception e) {
                        // silently fail here
                        // e.printStackTrace();
                   return null;
              protected String getGetMethodName() {
                   String methodName = "get"
                             + Character.toUpperCase(getName().charAt(0));
                   if (getName().length() > 1)
                        methodName += getName().substring(1);
                   return methodName;
               * Return a set method using reflection.
               * @param propertyName
               * @param argType
               * @return
              protected Method getPojoWriteMethod(String propertyName,
                        Class<?> argType) {
                   if (factory.getBean() == null)
                        return null;
                   String methodName = getSetMethodName();
                   try {
                        Method mtmp = factory.getBean().getClass()
                                  .getMethod(methodName, argType);
                        return mtmp;
                   } catch (Exception e) {
                        // silently fail here
                        // e.printStackTrace();
                   return null;
              protected String getSetMethodName() {
                   String methodName = "set"
                             + Character.toUpperCase(getName().charAt(0));
                   if (getName().length() > 1)
                        methodName += getName().substring(1);
                   return methodName;
          * Obtain a property using the binding path. The binding path should be
          * simple property names separated by a dot. The bean has to specified
          * because the return value is a property that can be used directly for
          * binding. The first property specified in the binding path should be a
          * property on the bean.
          * <p>
          * The difference between this and <code>Bindings.select()</code> is not
          * much other that it uses the bean factory machinery and the path can be
          * specified as a string. Of course, the bean can be a plain pojo.
          * @param bindingPath
          * @return
         public static Property propertyFromBindingPath(Object bean,
                   String bindingPath) {
              if (bindingPath == null || bindingPath.isEmpty())
                   return null;
              BeanPropertyFactory lastFactory = null;
              Property lastProperty = null;
              String[] parts = bindingPath.split("\\.");
              if (parts.length > 0) {
                   for (int i = 0; i < parts.length; i++) {
                        if (parts.length() <= 0 || parts[i].isEmpty()) {
                             throw new IllegalArgumentException("Binding path part " + i
                                       + " has no length");
                        BeanPropertyFactory newFactory;
                        if (i == 0)
                             newFactory = new BeanPropertyFactory(bean);
                        else
                             newFactory = new BeanPropertyFactory(
                                       (WritableValue) lastProperty);
                        lastProperty = newFactory.getProperty(parts[i].trim());
                        lastFactory = newFactory;
              return lastProperty;
         * Alot like <code>Bindings.select</code> but also handles pojos.
         * @param bean
         * @param path
         * @return
         public static Property propertyFromBindingPath(Object bean, String... path) {
              String tmp = "";
              for (int i = 0; i < path.length; i++) {
                   tmp += path[i];
                   if (i <= path.length - 1)
                        tmp += ".";
              return propertyFromBindingPath(bean, tmp);
    and a supporting classpackage scenegraphdemo;
    import java.beans.PropertyChangeListener;
    * Static methods for manipulating PCL for standard java beans.
    * @author Mr. Java
    public class BeanPropertyUtils {
         protected final static Class<?>[] NO_ARGS = new Class<?>[] { PropertyChangeListener.class };
         protected final static Class<?>[] ARGS = new Class<?>[] { String.class,
                   PropertyChangeListener.class };
         protected final static String pclAddMethodName = "addPropertyChangeListener";
         protected final static String pclRemoveMethodName = "removePropertyChangeListener";
         * Return true if the class has PCL methods. Does not check for remove.
         * <p>
         * addPropertyChangeListener(PropertyChangeListener)
         * <p>
         * addPropertyChangeListener(String, PropertyChangeListener)
         * @param bean
         * @return
         public static boolean hasPCL(Class<?> clazz) {
              try {
                   if (clazz.getMethod(pclAddMethodName, NO_ARGS) != null) {
                        return true;
              } catch (Exception e) {
                   // silently fail
              try {
                   if (clazz.getMethod(pclAddMethodName, ARGS) != null) {
                        return true;
              } catch (Exception e) {
                   // silently fail
              return false;
         * Add a listener.
         * @param bean
         * @param listener
         * @param propertyName
         public static void addPCL(Object bean, PropertyChangeListener listener,
                   String propertyName) {
              try {
                   if (propertyName == null) {
                        bean.getClass().getMethod(pclAddMethodName, NO_ARGS)
                                  .invoke(bean, new Object[] { listener });
                   } else {
                        bean.getClass()
                                  .getMethod(pclAddMethodName, ARGS)
                                  .invoke(bean,
                                            new Object[] { propertyName, listener });
              } catch (Exception e) {
                   e.printStackTrace();
         * Remove a listener.
         * @param bean
         * @param listener
         * @param propertyName
         public static void removePCL(Object bean, PropertyChangeListener listener,
                   String propertyName) {
              try {
                   if (propertyName == null) {
                        bean.getClass().getMethod(pclRemoveMethodName, NO_ARGS)
                                  .invoke(bean, new Object[] { listener });
                   } else {
                        bean.getClass()
                                  .getMethod(pclRemoveMethodName, ARGS)
                                  .invoke(bean,
                                            new Object[] { propertyName, listener });
              } catch (Exception e) {
                   e.printStackTrace();
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

  • Why is the LookUp object in the Flow Task of my SSIS package going red (and not working) ? Sql Server 2008 R2

    I have been working with the Sql Server 2008 R2 SSIS Tutorial at
    https://msdn.microsoft.com/en-us/library/ms170419(v=sql.105).aspx
    --specifically -- Lesson 1.  I have been having some problems with this lesson where the source data from the samples download doesn’t exactly match the data described in the tutorial, and the tables in the tutorial are different from what
    is contained in AdventureWorksDW (tutorial refers to DimTime – AdventureWorksDW contains DimDate and no DimTime).  
    So, after futzing in BI with this tutorial  so that I can at least get it to run in Debug – it errors out on the 2<sup>nd</sup> LookUp object.
    Rather than looking for a fix to the problem(s) that I am having between the tutorial and the stuff I downloaded in the samples --
     I want “Adapt” the tutorial so I can use the stuff I downloaded and hopefully learn how to use SSIS with the elements (source data and tables) that are present on my workstation. 
    Here is a description of what is going on for me – which I really don’t understand what is going on in BI – based on the images below – like what columns (from what tables) are they associating to in the OleDB Destination? 
    Note:  the sql in the LookUps here is the sql that I copied from the tutorial. 
    I probably need to modify these sql statements – so -- the help I am requesting is to make the required modifications/changes
     so that I can adapt this tutorial with the stuff that’s on my workstation.
    I downloaded the samples and the AdventureWorksDW mdf for Sql Server 2008 R2. 
    It turns out that in the tutorial it wants me to select a DimTime table, but the version of the AdventureWorksDW db does not contain a DimTime table. 
    Instead, it contains a DimDate table.  So I tried adapting DimDate for the tutorial. 
    Additionally, the sample data file -- SampleCurrencyData.txt -- has slightly different data types than the types described in the tutorial, so I selected data types for the columns in the datasource text file that would work in BI would to
    connect column from source data file to the table.
    After finishing all the steps for Lesson 1 -- when I tried debugging the package – and it error'd out on  the 2<sup>nd</sup> Lookup object whichwent red.
      I edited the lookups and the sample Ole DB Destination to "ignore on fail” and I did all
     green but the FactCurrencyRate table is not being populated -- as described in the tutorial, so I reset the on error back to default (Fail on error option).   And based on this tutorial -- I believe FactCurrencyRate
    table is the table which is supposed to be populated with the data from SampleCurrencyData.txt?
    In the sample data file that downloaded with all the samples  I removed all the data from the text file except for 6 rows, so instead of the original 1100 or so rows, I have only 6 rows of data in the source data file (just to keep things
    simple for debugging for now).  I did not modify the data itself. 
    Here is what the (raw) data contained in SampleCurrencyData.txt looks like (from the samples that I downloaded from codeplex) – it’s supposed to be 4 columns of data – float, nvarchar, datetime, float:
    0.281690141       USD      
    6/26/2004 0:00  0.281713948
    0.281690141       USD      
    6/27/2004 0:00  0.281642539
    0.281690141       USD      
    6/28/2004 0:00  0.281761573
    0.283286119       USD      
    6/29/2004 0:00  0.283221933
    0.283286119       USD      
    6/30/2004 0:00  0.283358363
    0.281690141       USD      
    7/1/2004 0:00     0.281682206
    Below are images of my BI Layout for Lesson 1 from this tutorial -- the FlatFile and configurations for On Fail Error, A Flow task, the 2 LookUps (CurrencyKey and DataKey), the OleDB Destination configuration, the Design view of the associated tables and
    the Debug Run of Lesson 1, and the following error messages. My goal is to figure out what is going on in BI for this tutorial.
    Error: 0xC020901E at Extract Sample Currency Data, Lookup Datakey [51]: Row yielded no match during lookup.
    Error: 0xC0209029 at Extract Sample Currency Data, Lookup Datakey [51]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. 
    The "component "Lookup Datakey" (51)" failed because error code 0xC020901E occurred, and the error row disposition on "output "Lookup Match Output" (53)" specifies failure on error. An error occurred on the specified
    object of the specified component.  There may be error messages posted before this with more information about the failure.
    Error: 0xC0047022 at Extract Sample Currency Data, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. 
    The ProcessInput method on component "Lookup Datakey" (51) failed with error code 0xC0209029 while processing input "Lookup Input" (52). The identified component returned an error from the ProcessInput method. The error is specific
    to the component, but the error is fatal and will cause the Data Flow task to stop running. 
    There may be error messages posted before this with more information about the failure.
    --this is the flat file
     -- SampleCurrencyData.txt (which only contains 6 data rows for my purposes)
    --and here is where I assign the data types for the colums of -- SampleCurrencyData.txt
    This is the first LookUp Object -- LookUp Currency Key – The DB contains DimCurrency table. 
    I copied the sql from the tutorial here.
    I actually have a DimCurrency table in my copy of AdventureWorksDW. 
    Here’s the design view of DimCurrency and a sample of the data contained in DimCurrency and the On Fail configuration
    I actually have a DimCurrency table in my copy of AdventureWorksDW. 
    Here’s the design view of DimCurrency and a sample of the data contained in DimCurrency and the On Fail configuration
    --Here is what the data looks like in the DimCurrency table
    --2<sup>nd</sup> LookUp object  -- LookUp Data Key – this is the LookUp
     where BI errors out on Debug
    --it appears this lookup is referencing the DimDate table – which I DO have in the DB.
    --I can’t find the following sql in the tutorial, so I suppose BI added the sql (did it?)
    --Here's how I configured for On Error
    --Here is DimDate table in Design view
    --Here is a sample of the original data contained in DimData
    OleDB Destination
    --Here is where I get lost a bit – what is going on in the destination here?
    --Here's my On Error configuraino
    --and here is the FactCurrencyRate table
    --and here is a sample of the data contained in FactCurrencyRate
    Rich P

    Thank you for your reply.  I changed the error handling as you suggested on the 2nd lookup to redirect to unmatched rows.  Now I get all greet.  I don't have the conditional split as in your diagram.  But also, nothing appears to have
    happened in the DB.  Aren't the rows in my text file supposed to be added to the FactCurrencyRate table?
    How do I get a conditional split?
    Rich P
    OK, sorry I forgot to reply you back.
    Conditional Split was just dummy task. Ignore it.
    Manipulate the data in such way that you get matching records.
    Inside Source, for first 2 rows I put the dates which are available in DimDate.
    1.00010001,ARS,7/1/2005 0:00,0.99960016
    1.00010001,ARS,2/5/2006 0:00,1.001001001
    1.00020004,ARS,9/5/2001 0:00,0.99990001
    1.00020004,ARS,9/6/2001 0:00,1.00040016
    1.00050025,ARS,9/7/2001 0:00,0.99990001
    1.00050025,ARS,9/8/2001 0:00,1.001001001
    Then in OLE DB Destination, I loaded the rows to TestFactTable.
    (Now, you don't even need NO MATCH OUTPUT as there are matching records here)
    Cheers,
    Vaibhav Chaudhari
    [MCTS],
    [MCP]

Maybe you are looking for