Crystal RAS SDK - Change universe connection details

We currently have a large number of Crystal Reports that have universes as there data sources. I have been trying via the RAS SDK to change the database connection without success.
I can access the table definition and return the relevant propertybags but as soon as I alter these the report it is corrupted - I can correct the corruption by using the Set Data Source option. I need to be able to point the report to the same universe but in a different folder currently the only method we have is to recreate the query against the universe.
We are using Business Objects XIR2 SP4 and Crystal Reports XIR2
Does anybody know if this is possible or have any code snippets to share.

A Crystal Report references Universes by either the Universe SI_CUID or SI_SHORTNAME value, so should not depend on the folder location of the Universe.
As you've seen, trying to modify Universe info in a Crystal Report using RAS will break it.
When you create a Crystal Report against an Universe, the Crystal Report Designer connects to the Web Intelligence Report Server to back the Query Panel.  After the query is created, the SQL statement is retrieved from the Web Intelligence Report Server and defined as a SQL Command in the Crystal Report itself.
The RAS, by itself, does not have functionality to connect to the Web Intelligence Report Server - if you try and manually change the connection info using RAS, the most likely outcome is report that just won't run.
Sincerely,
Ted Ueda

Similar Messages

  • Changing database connection details aftre WAR file deployment

    Hello,
    I create a WAR deployment file and distribute this to a Tomcat web container. The package unpacks as expected however the production database details are different from my devlopment environment. The database connection name is the same. I thought if I simply change the connection details in the connections.xml file and restart the web app this would do the trick. It does not. What am I missing?

    Maybe your application is using a connection as defined in data-sources.xml. Check there.

  • SQL/VBA SDK to view Universe Connection details from CMS

    Hi
    Am trying to find Database Name and User Name from Universe Connections. It looks like all these details are placed as a Property bag. So am looking for VBA code to view the Property bag or any direct Query Builder SQL to fetch these details.
    Please share your Inputs.
    Thanks.

    Hi Ted
    The MetaData DataConnection objects housed in the CMS repository don't have a public API associated with them.
    Thanks for your information. I found the below code from BOB forum which gets Database Name etc from CMS, but am not able to make it work this in VBA (Excel Macro).
    Imports System.Xml
    Public iStore As New CrystalInfoStoreLib.InfoStore
    Public Connections As CrystalInfoStoreLib.InfoObjects
    Public ConnectItem As CrystalInfoStoreLib.InfoObject
    Public ConnectObject As New CrystalConnectionPluginLib.Connection
    Dim QueryStr As String = ""
    Dim ElementStr As String = ""
    Dim NWLayer As String = ""
    Dim RDMS As String = ""
    QueryStr = "select SI_ID, SI_CREATION_TIME, SI_UPDATE_TS, SI_REVISIONNUM,SI_OWNER, SI_DESCRIPTION, SI_NAME, SI_CONNUNIVERSE, SI_METADATA_PROPERTIES from CI_APPOBJECTS where SI_KIND = 'MetaData.DataConnection' and SI_PARENTID=123 order by SI_NAME"
    Connections = iStore.Query(QueryStr)
    For Each ConnectItem In Connections
      Dim sr As New System.IO.StringReader(ConnectItem.Properties("SI_METADATA_PROPERTIES").Properties("SI_METADATA_BVCONN_ATTRIBUTES").Value)
      Dim doc As New Xml.XmlDocument
      doc.Load(sr)
      Dim reader As New Xml.XmlNodeReader(doc)
      While reader.Read()
        Select Case reader.NodeType
          Case Xml.XmlNodeType.Element
            If reader.Name = "Name" Then
              ElementStr = reader.ReadElementContentAsString
                If ElementStr = "NetworkLayer" Then
                  NWLayer = reader.ReadElementContentAsString
                End If
                If ElementStr = "RdmsName" Then
                  RDMS = reader.ReadElementContentAsString
                End If
            End If
        End Select
      End While
    Next
    MsgBox(ConnectItem.Title & vbCrLf & NWLayer & vbCrLf & RDMS)
    Thanks.

  • Dynamically changing Universe Connection

    We are in the process of implementing CM (Configuration Management) process to migrate the code from Development to QA to Production.
    Currently we are taking the code from Development using Import Wizard and creating a BIAR file, move that BIAR file to QA server and using "InstallEntSdkWrapper.jar" we are importing into QA.
    Sameway, when we want to migrate the Universe, Reports to Production, we are opening the universe using Designer, changing the connection to Production, exporting to Development Repository. Creating BIAR file from Development using Import Wizard, move the BIAR file to production server, and use "InstallEntSdkWrapper.jar" to import Universe, Reports to production repository.
    Now the CM (Configuration Management) process says, whenever we create a BIAR file for QA deployment, we should check-in to Clear Case, once we test it in QA, and QA approves that there are no defects, we should migrate SAME BIAR file to production, without creating another BIAR
    file from Development.
    The problem I am facing here is, because of security restrictions, Network Team stopped/closed Ports 6400 thru 6403, that means we can't connect any client tools (i.e Deisgner, Import Wizard) to any
    environment other than Development Environment.
    I can't use the same BIAR file to deploy into production which was deployed to QA as that BIAR file points to QA Database.
    Please let me know how to resolve the issue:
    I am looking for a way to change the connection dynamically,
    1. Either by using any kind of parameters
    2. Change the connection using CMC or any other tool.
    Or any other method to use the same BIAR file which was used to deploy in QA, and deploy it in production.
    We are on BO XI R2 SP4
    It is installed on AIX platform.
    Is there any 3rd party tool ?
    OR does BO has this option in Businss Objects XI 3.1 ?
    Thank you in advance.

    Hi,
    Check whether if you have drivers pointed to correct Database by creating a valid user to required DB in your local system.
    Cheers,
    Suresh Aluri.

  • Crystal Report based on Universe and RAS SDK missing functionality

    Hi,
    In Crystal Report Designer Application i can select Universe as a data source for the Crystal Report and on the query panel construct the actual query using Universe objects and conditions.
    Now, my question is how can i do the same PROGRAMMATICALLY. I.e. i want to make a new or take an existing crystal report, check if it's based on universe, then access the actual universe query structure and construct/modify the query by operating with the actual Universe objects and conditions.
    I tried to use RAS SDK for this, but i could only access Tables that dont even show on which universe they are based on. 
    Should i use some other SDK to do this?
    Thanks,
    Roman.

    Thanks for your response. Ok, if it's so complicated, then i'm not concerned about universe query creation. I have more specific questions now:
    1) You've said that CrystalReport stores Universe SI_CUID values that it connects to. Let's say i have 3 tables based on universes in the report. What is the best way to determing which universe correspond to which table using RAS SDK?
    I looked at ConnectionInfo for each table, it sais that it's based on universe, but it DOES NOT have universe CUID property.
    Using Enterprise SDK i can access SI_UNIVERSE_INFO of ProcessingInfo for report InfoObject and see the list of universes used, but they are not matched to the actual tables, so i cannot really find out which universe belongs to which table.
    2) If EXISTING CrystalReport is based on Universe, is it possible to retrieve the actual universe objects and conditions used in this report? I can see that field names correspond to object names, BUT i also need a parent class name, becuase object is NOT identified by it's name only withing the universe.

  • Connection error -2147217387 with Java RAS SDK and Crystal Server 2011

    Due to a change in operating system, we are required to upgrade our Crystal Reports server from BusinessObjects Crystal Reports Server 11.5 to SAP Crystal Server 2011. We use the Java RAS SDK (RASCore 9.2.2.446 / RASApp 9.0) more or less as described in Java RAS2008-unmanaged exportreport. We use the Crystal Server to export reports stored on disk as PDF files.
    In SAP Crystal Server 2011, the CrystalReports2011ReportApplicationServer is configured with Request Port 1566 and Host Identifier 172.16.4.154 (the local machine). The Crystal Server, report-definition files, and Java VM are all on the same machine.
    The error is
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: XML serialization failed.---- Error code:-2147217387 Error code name:connectServer
         at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.v.request(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.ab.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.do(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.initialize(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ClientDocument.for(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.for(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(Unknown Source)
         at ourpackage.OurClass.openReport(OurClass.java:95)
         ... 6 more
    Caused by: java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:189)
         at java.net.SocketInputStream.read(SocketInputStream.java:121)
         at java.net.SocketInputStream.read(SocketInputStream.java:203)
         at java.io.DataInputStream.readInt(DataInputStream.java:388)
    The code is as follows.
    ReportClientDocument clientDocument = new ReportClientDocument();
    clientDocument.setReportAppServer("172.16.4.154:1566"); // localhost
    // Error occurs on ReportClientDocument.open method
    clientDocument.open("D:\\path\\to\\report.rpt", com.crystaldecisions.sdk.occa.report.application.OpenReportOptions.refreshRepositoryObjects.value());
    DatabaseController dbController = clientDocument.getDatabaseController();
    dbController.logon("dbuser", "dbpassword");
    ParameterFieldController pfController = clientDocument.getDataDefController().getParameterFieldController();
    Fields fields = clientDocument.getDataDefinition().getParameterFields();
    ParameterField oldParameter = (ParameterField) field.get(0);
    ParameterField newParameter = new ParameterField();
    oldParameter.copyTo(newParameter, false);
    newParameter.getCurrentValues().clear();
    ParameterFieldDiscreteValue newDiscreteValue = new ParameterFieldDiscreteValue();
    newDiscreteValue.setValue("paramValue");
    newParameter.getCurrentValues().add(0, newDiscreteValue);
    pfController.modify(oldParameter, newParameter);
    clientDocument.refreshReportDocument();
    PrintOutputController po = clientDocument.getPrintOutputController();
    InputStream is = po.export(reportFormat);
    Could anyone advise me how to proceed with resolving this error?

    Thanks for the link. I copied the CrystalReportsSDK.jar and logging.jar from the Crystal Server java\lib directory into my project and revised the code accordingly. Now, a slightly different error occurs at the same place:
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server: {0}. --- Connection reset by peer: socket write error---- Error code:-2147217387 [CRSDK00000039] Error code name:connectServer
      at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(ReportSDKServerException.java:115)
      at com.crystaldecisions.proxy.remoteagent.TCPIPCommunicationAdapter.request(TCPIPCommunicationAdapter.java:659)
      at com.crystaldecisions.proxy.remoteagent.AdapterCommunicationChannel.send(AdapterCommunicationChannel.java:88)
      at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.request(ReportAppSession.java:382)
      at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.logon(ReportAppSession.java:342)
      at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.initialize(ReportAppSession.java:330)
      at com.crystaldecisions.sdk.occa.report.application.ClientDocument.initializeServerConnectionAdapter(ClientDocument.java:627)
      at com.crystaldecisions.sdk.occa.report.application.ClientDocument.initializeServerConnection(ClientDocument.java:658)
      at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.initializeServerConnection(ReportClientDocument.java:1420)
      at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(ClientDocument.java:982)
      at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.open(ReportClientDocument.java:226)
      at ourPackage.OurClass.openReport(OurClass.java:97)
    The revised code is
    ReportClientDocument clientDocument = new ReportClientDocument();
    clientDocument.setReportAppServer("172.16.4.154:1566"); // localhost
    // Error occurs here
    clientDocument.open("D:\\path\\to\\report.rpt", com.crystaldecisions.sdk.occa.report.application.OpenReportOptions.openAsReadOnly.value());

  • Crystal Report Universe Connection

    Hello,
    I have a Crystal report developed based on Universe as the data source. Say this report is in Dev environment. Suppose I need to promote this report to Test environment to UAT or production then how is it possible?    
    I have used import wizard using this I am able to move my report from one environment to another. report is successfully moved from source to destination but when I go to refresh the crystal report, an error is thrown (both in Crystal Report designer and Info view) :
    "Failed to open the connection. 
    Details:
    Update of the SQL command from the Universe failed. This report cannot be
    refreshed unless the SQL command is updated from the Universe."
    As such the Dev copy works fine. Please suggest me how to move a report from 1 environment to another.
    If I changes connection manually in UAT Database --> Set Database location -->update then same report work fine,
    But I have multiple reports I cannot manually edit connection of each report.
    Useful details as below.
    Crystal Reports 2008 (Service Pack 1)
    Business Objects 3.1 
    View the connection details in report.
    Set database location
    Expand Universe connection
    Properties - It will show server details of connection- user name - universe name- path of universe
    Kindly advice.

    This is the same as: Migration of Crystal Report
    Please do not cross post as this is against the SCN Rules of Engagement.
    If this is a critical issue, you should be able to create a phone case - I suspect for you this would be free as you have BI / BO(?). If you are not sure how to, see your admin.
    I will be locking this post now. Please continue on the above link.
    - Ludek
    SCN Moderator

  • Migrate from Crystal Report Server XI R2 to new Eclipse RAS SDK Question

    Hi,
    I am migrating Crystal Report Server XI R2 RAS SDK to Eclipse RAS SDK which seems to be quite easy.
    I have the following old code which basicly programmaticly creates a Report from scratch adds a Table and then
    populates the Report with a Pojo Collection.
    <br> <br>
    Now before I would have : <br>
    <br>
    Table oTable = new Table(); <br>
    oTable.setName("reportTable"); <br>
    pbConnAttributes.putStringValue("QE_DatabaseType", "Java Beans Connectivity"); <br>
    pbConnAttributes.putStringValue(PropertyBagHelper.CONNINFO_DATABASE_DLL, "crdb_javabeans.dll"); <br>
    PropertyBag pbLogonProperties = new PropertyBag(); <br>
    pbLogonProperties.putStringValue("Java Bean Classes", className); <br>
    pbLogonProperties.putStringValue("SSOKEY", ""); <br>
    pbConnAttributes.put("QE_LogonProperties", pbLogonProperties); <br>
      pbConnAttributes.putBooleanValue(PropertyBagHelper.CONNINFO_SSO_ENABLED, false); <br>
    oTable.getConnectionInfo().setKind(ConnectionInfoKind.CRQE); <br>
    oTable.getConnectionInfo().setUserName(""); <br>
      oTable.getConnectionInfo().setPassword(null); <br>
      oTable.getConnectionInfo().setAttributes(pbConnAttributes); <br>
    //following statement throws Exception <br>
    doc.getDatabaseController().addTable(oTable, null); <br>
    <br>
    getDatabaseController().setDataSource(pojoCollection, pojoClass.class,"reportTable", "reportTable");
    <br>
    <br>
    Now wenn using the c <br>lient eclipse RAS SDK which pbConnAttributes should I use? <br>
    No matter which ones I choose I get a Bad Driver Exception or Named Exception. <br>
    Can anybody help?
    Edited by: snake-john99 on Aug 11, 2010 10:35 AM
    Edited by: snake-john99 on Aug 11, 2010 10:39 AM

    Hi Mikael,
    Since you're already on CR Server XI R2, you can use the Upgrade Management Tool to migrate all the content to CR Server 2013.
    Anwers to your questions:
    1) Yes, the Upgrade Management Tool does support this kind of migration
    2) It does seem that the UMT allows you to move all report instances as well as the scheduled jobs over to the new server
    3) I've always had issues with Business Views when using Import Wizard however I'm not sure whether they work well with the new UMT. In any case, I always prefer to export the LOVs and BVs from within the Business View Manager to a .xml file and then import them in the higher version of the Server, again, from within the Business View Manager.
    -Abhilash

  • Crystal Reports for Enterprise and universe connections

    Hi, I have noticed an issue with Crystal Reports for Enterprise that may give many administrators a headache.
    If a BOBJ user has access to a sensitive universe (eg HR or Finance data) to run pre-built WebI reports from  (but not create new ones or edit the universe) then they must have been give data-access to that universe's connection object. Security on the universe and folder could prevent them from accessing information from the universe they shouldn't see or editing the reports and creating new ones.
    However if the same user is given access to Crystal Reports for Enterprise in order to access other data sources, then the fact that they have data-access to the above universe connection object now creates a security problem.
    Crystal for Enterprise allows a user to open a universe connection object as a data-source. If the user opened the connection for the above 'sensitive' universe they could see all the data in the database - avoiding any universe level restrictions in the process.
    What is the suggested way around this? There doesn't appear to be granular enough security to prevent users with data access on a connection object also using that object to create new reports in Crystal for Enterprise.
    The only way around it I can see is to deny the user access to the sensitive universe output altogether, but this changes the whole business process for the team involved.
    thanks
    Keith

    I have a couple of thoughts:
    1.  Create a special reporting user in the database that only has access to a set of views that don't include the sensitive information.  Then create a universe based on those views which uses a connecting that logs in as that special user.  Give the folks who don't have access to the sensitive data access to this connection and universe instead of the universe and connection that include the sensitive data.
    2.  Since you have BO, you should have a support contract.  I would report this as a bug.  However, SAP may tell you that it is "working as designed", in which case you could go to IdeaPlace (https://ideas.sap.com/) and add this as a requested enhancement.
    -Dell

  • Setting the height of detail section with RAS SDK

    Hi, all,
    is it possible to locate a section (CrystalDecisions.ReportAppServer.ReportDefModel.Section) in a reportk you and set its maximum height?
    When I find a detail section in question like so section = reportClientDocument.ReportDefController.ReportDefinition.DetailArea.Sections[counter];
    it just gives me the height of one row.
    Is there a way to set a maximum size of it?
    Thank you!

    Hi Jelena,
    see the below sample to add a new section to the report.
    http://scn.sap.com/docs/DOC-6025
    in the sample, see below code how the section properties are set.
    //Set the properties for the section
        boSection.Kind = CrystalDecisions.ReportAppServer.ReportDefModel.CrAreaSectionKindEnum.crAreaSectionKindDetail;
        boSection.Name = "Detail2";
        boSection.Height = 1000;
        boSection.Width = 11520;
    Refer to above sample and write your own code to identify the section and then set the properties.
    Othe RAS SDk samples are here.
    http://scn.sap.com/docs/DOC-28646
    - Bhushan
    Senior Engineer
    SAP Active Global Support
    Follow us on Twitter
    Got Enhancement ideas? Try the SAP Idea Place
    Getting started and moving ahead with Crystal Reports .NET applications.

  • How to create cross tab reports using RAS SDK api with Crystal Reports XI

    Hi Everybody,
    Iam generating reports in a web-based application with Crystal Reports XI using Report Application Server(RAS) SDK API. The columns in my report exceed that of an A4 sized page. So, when I export that report to pdf, only those columns that fit to a page are showing up. To solve, this problem, I thought of using cross tab. But, I donot know how to generate cross tab report using RAS SDK API. I have tried to get some code from the internet. But, I did not find any java code for that.Can some one give me some sample code.It is very urgent.
    Thanks in advance.

    Hi,
    The easiest way I use is to create the worksheet as regular table and then when i verify the data I get (non aggregate) I duplicate it as a cross tab.
    In the duplication wizard I just need to define the axis (using drag and drop).
    if you want to create a cross tab from the beginning you need to define that in the new workbook wizard (check the "cross tab" rather then "table"), chose your fields and define the place you want them.
    The data point (the center of the cross tab) is aggregated as to your machine definition and will happen automatically.
    for example: to find the amount of receipt by months:
    On the left put the "Buyer Name", on top put the "Months" and in the data point put the amount.
    What you'll get is something like:
    months: jan feb mar apr ......
    buyer_name
    jhon_smith 100 50 30 250 ......
    jhon_doe 80 45 90 453 ........
    and so on.....

  • Crystal Reports and Universe Connection (Access DB)

    Hi,
    I am trying to use a universe as a data source for Crystal Reports 2008. The universe is defined on a simple relational Access DB table (.mdb file which resides on the server). After selecting the universe as data source, I can select measures and attributes from it, but after clicking "ok" I am getting the error "Fehler bei Anmeldung." ("Logon failed.").
    Please note that although I am connecting to a relational (not OLAP!) DB, SAP-Note
    " 1363326 - Error: Logon failed on Crystal Report conecting to OLAP Universe."
    describes exactly the error I am facing (except that this note is for OLAP universes).
    The universe works fine if I use it in WebI as data soruce.
    Which universes can Crystal Reports 2008 actually use in general?
    Are there any special restrictions for the data model?
    Thanks for your help!

    Make sure that the Access DB is accessible also from the local workstation the CR Designer is installed on.
    In fact I would recommend to setup your universe connection to you the generic ODBC driver and setup a system DSN for accessing the DB once on your BO server and once on your client. Make sure to use the same DSN name in both cases.
    Regards,
    Stratos

  • Change a universe connection in webi

    Hi All
    I want to change a connection within webi to point to a diff universe
    many thanks

    Hi Allen,
    This is a limitation of the Query-HTML panle that you cannot change the Universe for a Webi report. This option is not even available in the Interactive Mode in XI R2.
    In BO XI 3.0, along with Java Report panel the Interactive Report Panel also offers the functionality to change the Universe. This feature must have been added considering the same need.
    Thanks,
    UT.

  • Steps to change universe database connection from SQL server to Oracle 10

    Hi,
    we are moving from sql server to Oracle 10.Please let me know the steps and various parameters I should consider while changing universe database connection from SQL server to Oracle 10.
    Following are the steps which I assumed :
    1.     create a new Oracle database connection or edit the existing connection to point to Oracle server
    2.     Need to check sql for each object, having integrity check for universe will solve the purpose of parsing each object
    3.     Exporting the universe after integrity check
    4.     Report data testing
    Let me know if I miss on any steps.Also what all factors I need to consider while moving to Oracle for eg: what @ custom sql,what @ table names,what @ LOV etc.
    Kindly reply

    Thanks Abhijeet and Shreyash,
    I will follow the steps you have suggested.
    Actually I was searching for this on net and got to know that with Oracle database connection,theres lot of stuff needs to take care of in terms of custom sql and LOV and in our case,we have lot of custom sql for each object in the universe so just wanted to confirm.
    I will do the changes and let you guys know in case theres any isuue specifically to Oracle.

  • Automatic way to change the connection for Multiple universes

    We recently migrated the BO objects like universes and connections from 3.1 QA to 4.1 Dev.
    But now we want to point all our universe connections of 4.1 Dev system to the BW Dev system instead of BW QA.
    Is there any automated way of doing it ?
    Thanks,
    Tilak

    Promotion Management Overrides

Maybe you are looking for

  • PDF to spool to run program in background

    Hi Experts, i have created a custom program by copying FP_TEST_00 and gave nodialog mode for out parameters which will supress the prompt for printer and that i can run it in background. i just want the data to written to spool. call function 'FP_JOB

  • Import Design Objects in Service Builder

    I am able to export and import configuration objects in Configuration Integration Builder from the Tool menu. I am able to export Design Objects in Enterprise Service Builder. I am also able to import the Design Objects in Enterprise Service Builder,

  • PAN Newsreader & multipart binaries

    PAN (133-4) has stopped being able to preview images is they are multipart (single part images are still OK). I get the following message: Attachment not shown: MIME type image/jpeg; filename 199.jpg Any ideas?

  • Duplicate an entire folder sturcture with html files within RH

    RH 8 HTML Is it possible? currently you can duplicate a single topic, is there a way to quickly duplicate a entire folder structure? I'm making a skeleton layout of topics for release notes, because they are published to the web aswell, we keep all p

  • Calling Tibco EMS through Weblogic

    We're POCing Oracle SOA as a replacement for Tibco at our company, however, until we fully replace our tibco architecture, for reusabilities sake we want to be able to call tibco ems from applications hosted on weblogic. So far, we've been unable to