Latest Instance using BO enterprise SDK

Post Author: sureshpolishetty
CA Forum: Integrated Solutions
How to get the lastest instance of a report stored in crystal enterprise server (XIR2) using BO Enterprise sdk?.
Can anybody help me with the query(using CI_INFOOBJECTS table)?
Thanks

Hi
The following query will list all the last successful instances of a report.
SELECT * FROM CI_INFOOBJECTS
WHERE SI_PROGID = 'CrystalEnterprise.Report'
AND SI_INSTANCE_OBJECT = 1
AND SI_SCHEDULE_STATUS = 1
AND SI_PARENTID= 22842
ORDER BY SI_ENDTIME DESC.
The last Infoobject from the Infoobjects returned would give the latest instance id (SI_ID).
Hope this helps.
Thanks
Soni

Similar Messages

  • How to get latest instance using BO Enerprise SDK?

    Post Author: sureshpolishetty
    CA Forum: .NET
    How to get the lastest instance of a report stored in crystal enterprise server (XIR2) using BO Enterprise sdk and .NET?.
    Can anybody help me with the query(using CI_INFOOBJECTS table)?
    Thanks

    Post Author: Argan
    CA Forum: .NET
    Select SI_LAST_SUCCESSFUL_INSTANCE_ID from ci_infoobjects where si_name = 'Charting'
    Jason

  • How to extract latest instance of a report using BO Enterprise SDK?

    Using BO Enterprise SDK how to extract latest instance of report from Crystal Enterprise XIR2?. Can anybody help me with explanation or code?
    Thanks in advance.

    Hi,
    Use the following query in the query builder
    SELECT
    SI_NAME, SI_SCHEDULEINFO.SI_STARTTIME
    FROM
    CI_INFOOBJECTS
    WHERE
    SI_RECURRING = 1
    SI_NAME: The recurring report name.
    SI_SCHEDULEINFO.SI_STARTTIME:  The date and time the report is scheduled to run next.
    The query above will return all the recurring reports .
    Regards,
    Prithvi
    Edited by: Raj_10 on Sep 14, 2011 1:54 PM

  • Concurrent report export using enterprise SDK question

    Hello,<br>
    Our company uses Enterprise SDK to export report to PDF. We test our software using CR Server 2008 trial version. I am looking for advices for following questions:<br>
    1. As out testing server is trial version at the moment, it does not complain or generate any warning messages on numbers of concurrent users (we can only view current sessions and licenses from CMC). Could someone please let me know what will happen when full version CR server detects that max limit concurrent users access has reached? Will the server notify SDK, and SDK will generate exception; or the request will be queued until any other concurrent user end his session. <br>
    2. We implement an EJB to invoke SDK process. While EJB itself is thread safe, I am not quite sure if enterprise SDK is thread safe too. My assumption is that one SDK will be instantiated per JVM (like JRC?). It will issue a new thread to each report request (from EJB). Please correct me if I am completely wrong. <br>
    3. This is about licensing. Our scenario is there will be multiple (and concurrent) end users use our J2EE system, and may request report from CR server. Our J2EE system, however, will use one user account to login to CR server through enterprise SDK. In the other word, CR server will treat our J2EE system as one user (even if there are multiple or concurrent request). My question is that does it violate legal agreement with Business Object if I configure the user account our J2EE system uses as Named user?! If it is, we will get concurrent user licenses instead. Please advice. Thank you =)<br>
    Kind Regards,<br>
    mlie

    Hello Adam, <br>
    Thanks for your reply. It is very helpful. <br>
    As for point 1, what exact SDKException will SDK throw (e.g. SDKException.Unexpected)?<br>
    In point 2, "There have been issues reported previously that only occur when using EJB's.". Is it possible to let me know what kind of issues they are? <br>
    In point 3, as CMS supports Window AD authentication, and our system uses same mechanism to perform authentication, I guess the best strategy is to implement single sign on? Please advice. Thank you <br>
    Regards,<br>
    mlie

  • How to use BatchSecurityItem  in BusinessObjects Enterprise SDK

    Hi All,
              Can you please provide me code snippet or hint,to use BatchSecurityItem  Class in BusinesObjects Enterprise SDK.I am struck.Please help.
    Regards,
    Simha

    The InfoObjects.BatchSecurityItems collection property is used to speed up performance when you're trying to check multiple rights for an InfoObject.
    Whenever you check for a InfoObject right via the InfoObject.SecurityInfo, it sends a round-trip request to the CMS for per method call.  The round-trip to the CMS makes it slow.  To help with performance, each right you check via a method call is cached on the SDK side.
    You can use the InfoObjects.BatchSecurityItems to 'pre-cache' rights by Object ID and Right ID, such that a single request is made for a collection of rights, and cached SDK side.  So subsequest requests to InfoObject.SecurityInfo for rights will use the cached value.
    It's pretty straightforward to use - make your Enterprise SQL request for InfoObjects from the InfoStore.  Retrieve the BatchSecurityItems collection.  For each right you want to check (say from the CeSecurity.Right enumeration), call BatchSecurityItems.Add for the right ID and object ID.
    Then invoke BatchSecurityItems.Fetch().
    That's pretty much it.  Then subsequent queries to the InfoObject.SecurityInfo will use the cached security rights info.
    Sincerely,
    Ted Ueda

  • We are in the process of upgrading to Directory Server 5.1, and are currently using Netscape C SDK 4.0. Is it recommended (or required) that we update to the latest version (5.08) of the SDK as well?

     

    No it is not a requirement that your client application uses the latest version of the C-SDK. However some bugs have been fixed in the latest version of the C-SDK and also some new features are available... so I can only recommend you to use it.
    Regards,
    Ludovic.

  • Control-M scheduling using SAP BO Enterprise SDK

    How can we use SAP BO Enterprise SDK to implement Control-M Scheduling..?
    Any links to the documentation would be great.
    Thanks

    Check our Developer Library for documentation and samples
    http://www.sdn.sap.com/irj/boc/sdklibrary
    I've also moved your post to the appropriate forum. If you have any specific questions, experts in these forums will be able to help.

  • Crystal report for Enterprise show latest instance shows URL not found error

    hi everyone,
    we recently upgraded our BO4.1 platform from SP2 to SP5.
    after the upgrade we are getting error while view the latest instance of Crystal report in BI launchpad, this error occurs only for Crystal report and that only when we scheduled in pdf format.
    anybody faced this issue before, any idea or resolution?
    Thanks in advance.
    Regards,
    Ganesh

    when I click on view latest instance, i am getting below error.
    The requested URL /BOE/portal/1503182223/CrystalReports/filename/CREnt_BICS_STS_Check.pdf was not found on this server
    but when see the path, I could see the path till /BOE/portal/1503182223/CrystalReports/
    is it remaining path, like the “file name” part generated at runtime?
    could you please support me, do we need changes required in tomcat?
    Regards,
    Ganesh

  • Memory issue using BO XI Enterprise SDK and ISecurityInfo

    Hello everybody
    I have a big issue using the XIR2 SDK when I want to get rights for an object (universe or overload for example). When I start my process the memory used keep growing, starting for 20 mb to more than 100mb and if I have too many objects, the script hangs. I tried to simplify my code to make it understandable :
    My Main Class
                   Vector<Integer> vIntOv = OverloadsFactory.getAllOverloadsID();
                   Iterator<Integer> itOvIterator = vIntOv.iterator();
                   Integer cIdOv = null;
                   while(itOvIterator.hasNext()) {
                        cIdOv = itOvIterator.next();
                        System.out.println("ID OV = "+cIdOv);
                        Overload ov = OverloadsFactory.getOverloadById(cIdOv);
                        Iterator<PrincipalRestricted> itRestPrin = ov.getPrincipalRestricted().iterator();
                        PrincipalRestricted cPrin = null;
                        while(itRestPrin.hasNext()) {
                             cPrin = itRestPrin.next();
                             System.out.println("     REST = "+cPrin.getPrincipalName());
                             cPrin = null;
    The getOverloadById method in OverloadFactory class :
         public static Overload getOverloadById(int overloadID) throws OverloadException, IOException, ClassNotFoundException, SDKException {
              String name="";
              String creationTime="";
              Vector<RowRestriction> vRestrictedRows = new Vector<RowRestriction>();
              Vector<ObjectRestriction> vRestrictedObjects = new Vector<ObjectRestriction>();
              Vector<PrincipalRestricted> vPrincipalRestricted= new Vector<PrincipalRestricted>();
              String boQuery="SELECT * " +
                        "FROM CI_APPOBJECTS " +
                        "WHERE SI_KIND='OVERLOAD' AND SI_ID="+overloadID;
              Iterator<IOverload> itOverload = BoxiRepositoryManager.getInstance().executeQuery(boQuery).iterator();
              if(itOverload.hasNext()) {
                   IOverload currentIOverload = itOverload.next();
                   name=currentIOverload.properties().get("SI_NAME").toString();
                   creationTime=currentIOverload.properties().get("SI_CREATION_TIME").toString();
                   //System.out.println("OVERLOAD : "+currentIOverload.getTitle()+" / UNIVERSE : "+UniversesFactory.getUniverseById(currentIOverload.getUniverse()).getName());
                   Iterator<IRowOverload> itRestrictedRows=currentIOverload.getRestrictedRows().iterator();
                   while(itRestrictedRows.hasNext()) {
                        IRowOverload currentRestrictedRow = itRestrictedRows.next();
                        //System.out.println("     RR ("+currentIOverload.getID()+") Where Clause : "+currentRestrictedRow.getWhereClause());
                        vRestrictedRows.add(new RowRestriction(currentRestrictedRow.getRestrictedTableName(), currentRestrictedRow.getWhereClause()));
                   //System.out.println("     RR ("+currentIOverload.getID()+") Size : "+vRestrictedRows.size());
                   Iterator<IObjectOverload> itRetsrictedObjects=currentIOverload.getRestrictedObjects().iterator();
                   while(itRetsrictedObjects.hasNext()) {
                        IObjectOverload currentRestrictedObj = itRetsrictedObjects.next();
                        //System.out.println("     RO ("+currentIOverload.getID()+") Object Name : "+currentRestrictedObj.getObjectName());
                        vRestrictedObjects.add(new ObjectRestriction(currentRestrictedObj.getObjectID(), currentRestrictedObj.getObjectName()));
                   Iterator<IObjectPrincipal> itIObjectPrincipal = currentIOverload.getSecurityInfo().getObjectPrincipals().iterator();
                   while (itIObjectPrincipal.hasNext()) {
                        IObjectPrincipal currentIObjPrincipal = itIObjectPrincipal.next();
                        vPrincipalRestricted.add(new PrincipalRestricted(currentIObjPrincipal.getID(),currentIObjPrincipal.getName()));
                   itOverload = null;
                   return new Overload(overloadID,currentIOverload.getUniverse(),name, vRestrictedObjects, vRestrictedRows, vPrincipalRestricted, creationTime);
              } else {
                   throw new OverloadException("This Overload ID is not valid");
    At the beginning I thought it was a problem in my own code but if you comment the following part in the above method, you'll see that the memory increase will not happen anymore :
    Iterator<IObjectPrincipal> itIObjectPrincipal = currentIOverload.getSecurityInfo().getObjectPrincipals().iterator();
                   while (itIObjectPrincipal.hasNext()) {
                        IObjectPrincipal currentIObjPrincipal = itIObjectPrincipal.next();
                        vPrincipalRestricted.add(new PrincipalRestricted(currentIObjPrincipal.getID(),currentIObjPrincipal.getName()));
    Here the error
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
       at java.util.Hashtable.rehash(Unknown Source)
       at java.util.Hashtable.put(Unknown Source)
       at com.crystaldecisions.sdk.occa.security.internal.a.a(Unknown Source)
       at com.crystaldecisions.sdk.occa.security.internal.f.new(Unknown Source)
       at com.crystaldecisions.sdk.occa.security.internal.a.commit(Unknown Source)
       at com.crystaldecisions.sdk.occa.infostore.internal.ap.a(Unknown Source)
       at com.crystaldecisions.sdk.occa.infostore.internal.ar.if(Unknown Source)
       at com.crystaldecisions.sdk.occa.infostore.internal.ar.getObjectPrincipals(Unknown Source)
       at com.crystaldecisions.sdk.occa.infostore.internal.ar.getObjectPrincipals(Unknown Source)
    So it why I think that either there is an issue with "getSecurityInfo()" or I'm using it in a bad way. I tried many things like nulling my objects (even if in java the garbage collector does that by itself), changing my code... but no improvements, it's why I m requesting help from the experts
    Thanks to you
    PS : sorry for my grammar, i'm french
    PS 2 : i just want notify that I'm not a java expert so if you have to criticize my code, no prob
    Edited by: Cyril Amsellem on Aug 8, 2008 5:00 PM

    Hi Merry
    Thanks a lot for answering me. I didn't know that "getObjectPrincipal" takes so much memory for running.
    According to you is it normal that the used memory keep growing even after nulling my objects ? For me after requesting the Principales for an object (overload or universe) the memory used should be released. It seems that even after the process an object created in the ISecurityInfo class is still living...
    Thanks again for taking time to help me

  • How does one add tables to an existing universe using COM designer SDK.

    Morning All
    How does one add tables to an existing universe using COM designer SDK. I have tried:
    objUniverse.Tables.Add (strTable_Name)
    but get "Cannot create Table" error.
    Any ideas?
    Thanks in advance.
    Anita

    Hi Anita,
    -Use the Add method to add classes and objects to an existing universe using a VB 6 application.
    Adding a Class
    Definition: Function Add(Name As String) As Class
    Syntax: NameOfClassesVariable.Add
    Adding an Object Instance
    Definition:  Function Add(Name As String, [ClassName As String]) As Object
    Syntax: NameOfObjectsVariable.Add(name, [class])
    - name is the name of the object.
    - class is the name of the class containing the object. This parameter should be used in cases where more than one objects exist with the same name.
    Sample Visual Basic 6 Code
    Dim DesApp As Designer.Application
    'MODIFY AND EXPORT CLASSES AND OBJECTS OF AN EXISTING UNIVERSE
    Sub modify_and_export_universe()
    Dim DesUnv As Designer.Universe
    Dim DesCls As Designer.Class
    Dim DesObj As Designer.Object
    Dim DesDBCol As Designer.DBColumn
    Dim DBColName As String
    Set DesApp = New Designer.Application
    'Login to designer
    Call DesApp.LogonDialog
    'Make sure to log on with your administrator profile
    'e.g : "hostname","username", "password","Enterprise"
    'Make Designer application visible
    DesApp.Visible = True
    'This line disable warning messages from Designer
    DesApp.Interactive = False
    'to Open  locally  the universe you want to modify
    'Set DesUnv = DesApp.Universes.Open("club_uni")
    'Use OpenFromEnterprise method (Universes Class) to import a universe from the repository and opens it
    Set DesUnv = DesApp.Universes.OpenFromEnterprise("Universes", "club_uni", False)
    'Add a valid connection which already exists
    DesUnv.Connection = "club"
    'open the universe
    'Call DesApp.Universes.Open("club_universe")
    'Add the table Account and refresh the view in the main window
    Set DesTab = DesUnv.DBTables.Item("Customer").Insert
    DesUnv.ArrangeTables
    'Add a class
    Set DesCls = DesUnv.Classes.Add("Class MyCustomer")
    'Looping through all the fields of the DB Table Account
    For Each DesDBCol In DesUnv.DBTables.Item("Customer").DBColumns
    'Store name of the column
        DBColName = DesDBCol.Name 
         'Add an object to the class
        Set DesObj = DesCls.Objects.Add("Obj " & DBColName)
         'Affect a field to the object
        DesObj.Select = "Customer" & "." & DBColName
    Next
    'Save the existing universe with the same name club_uni or you can change
    DesUnv.SaveAs "club_uni"
    MsgBox "Universe created and saved Class MyCustomer has been added!!"
    'Close the universe
    UnvFullName = DesUnv.FullName
    MsgBox "The UniverseFilePath is " & UnvFullName
    'Close the universe
    DesUnv.Close
    'This line disable warning messages from Designer
    DesApp.Interactive = False
    'Export the universe to the CMS DB (to the last universe folder)
    'Make sure you save the universe before exporting it
    Call DesApp.Universes.Export("Universes", UnvFullName)
    MsgBox "This document has been exported successfully !!"
    'Close designer
    DesApp.Quit
    Set DesApp = Nothing
    End Sub
    Hope this helps.
    Regards,
    Deepti Bajpai

  • Get instance status through RESTful SDK

    I am working with a client who has integrated some BO 3.1 functionality into their application using the .NET SDK.  I am evaluating their code because they are upgrading to BI4.1 and a lot of the code will have to be scrapped and rewritten because they are using classes that are no longer available in the 4.1 .NET SDK.
    Ideally I'd like to rewrite the code using the RESTful web services.  I can see how to get folders and reports, how to schedule reports, and most of the other functionality they'll need.  However, I'm trying to figure out how to get a list of instances that belong to a report (Crystal or Webi) and the status of the instance (e.g., Success, Fail, Recurring, etc.)  Is this capability available in the RESTful web services?  If so, what is the request URI to get it?
    Thanks!
    -Dell

    sorry Dell, no status for crystal instances, but webi does have status.
    Get details of a report:
         GET        http://localhost:6405/biprws/infostore/5602
         This will also show a link to latest instance
    To get instances (can’t get status)
         GET        http://localhost:6405/biprws/infostore/5602/children
    To get instances that are PDF or Crystal formats (format is
    same as SI_KIND)
         GET        http://localhost:6405/biprws/infostore/5602/children?type=Pdf
         GET        http://localhost:6405/biprws/infostore/5602/children?type=CrystalReport
    Webi (raylight) has more details (including status):
         GET        http://localhost:6405/biprws/raylight/v1/documents/5487/schedules
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <schedules>  
         <schedule>
                          <id>10336</id>
                          <name>Formatting Sample</name>
                          <format type="webi"/>
                          <status id="1">Completed</status>
                    </schedule>
              </schedules>
    Dan

  • How to get the list of values for a dynamic parameter using Web Services SDK?

    <p>I am struggling to get the list of values for a dynamic parameter of a report.</p><p>I am using Java Web Services SDK ... I tried to use PromptInfo.getLOV().getValues() method but it does not work.</p><p>First of all ... is this possible (to get the list of values for a dynamic param) using Web Services?</p><p>Second of all, if this is possible, how should I do it ... it seems it works fine when running the report from CMC. It asks for DB logon info and after that it provides a list of values.</p><p>Thx </p>

    <p>Your assumption is correct. We are trying to get the LOVs from the Crystal Report. I was not aware that this is not supported by Web Services SDK.</p><p>We used Web Services SDK to integrated the Crystal Reports in our web application. We implemented some basic actions for reports: schedule, view instances, run ad-hoc reports.</p><p>We encountered this problem when trying to run/schedule reports with dynamic parameters (a list of values from DB). We were unable to get the LOVs.</p><p>Please let me know if you can think of an alternative to look at.</p><p>Thanks a lot,</p><p>Catalin </p>

  • Error while creating data source using Oracle Enterprise Manager 10g

    Hi,
    I have deployed my web application developed on OC4J 9.0.4 stand alone (Win2K) to an integrated OC4J version(Solaris) using Oracle Enterprise Manager 10g.
    However, I get an error when I try to create a data source.
    The data source I want to create would have the following parameters (as seen in data-sources.xml on the stand alone version):
         <data-source
              class="com.evermind.sql.DriverManagerDataSource"
              name="TestDS"
              location="jdbc/OracleCoreDS"
              xa-location="jdbc/xa/OracleXADS"
              ejb-location="jdbc/TestDS"
              connection-driver="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:@hostName:1521:test"
              username="user"
              password="password"
              min-connections="5"
              max-connections="20"          
              inactivity-timeout="30"
         />
    When I entered the above data on the Enterprise Manager Data Sources page, I got the following error:
    quote:
    Error saving Data Source Properties. - Entity et="system";ei="0",et="application";ei="48",et="data-sources";ei="167":child:data-sourcechild key:location:jdbc/OracleCoreDS; class:com.evermind.sql.DriverManagerDataSource; already exists in the repository. Resolution: Please check the code base.
    unquote:
    Could somebody tell me what I'm doing wrong ?
    I tried to manually edit the data-sources.xml file but the data source didn't show up on the Enterprise Manager.
    I'm using a new OC4J instance (on the Solaris machine) for my applications. Is the data source error related to this?
    Any help will be greatly appreciated.
    Thanks,
    Shyam

    Thanks for your reply , Steve.
    I noticed that there is a default datasouce on the EM with the following parameters:
    <data-source
              class="com.evermind.sql.DriverManagerDataSource"
              name="OracleDS"
              location="jdbc/OracleCoreDS"
              xa-location="jdbc/xa/OracleXADS"
              ejb-location="jdbc/OracleDS"
              connection-driver="oracle.jdbc.driver.OracleDriver"
              username="scott"
              password="->pwForScott"
              url="jdbc:oracle:thin:@localhost:1521:oracle"
              inactivity-timeout="30"
         />
    The location and xa-location attributes that I use for my "test" data source are the same as the default one. So, could this be the issue?
    What should be the values for location and xa-location attributes from my "test" data source?
    Any help will be greatly appreciated.
    Thanks,
    Shyam

  • How to hide the view latest instance option for the reports in XIR3

    Created an access level and denied the rights "view document instances" and "view document instances that the user owns" in the access level.
    Applied this access level for a particular group on a particular folder.
    Login to Infoview and when view the history,there are no instances for a particular report under that folder.
    But we could still see the 'View Latest instance' option in the properties of the report and when click on it,we are able to view the report.
    As per the security assigned,the user should only be able to view the instances owned by him.
    Plz help me how to hide the option in INFOVIEW

    In 9.3.1 (not sure about 9.2) there is a table in your BIPlus repository which stores preferences/profile information, however, having a user simply log in to WA doesn't appear to automatically create a row for them in this table. (So this may not be a viable solution to your situation, I'm still looking for one myself.) This table stores lots of preference info such as whether or not to show the Main Menu, Toolbar, Masthead, etc. by default.
    To hide the View Pane, edit the data in the SHOW_INFO_PANEL column, change it from a 1 to a 0 and for that user the View Pane will not longer appear by default.
    HYA_USER_PREFS
    But again, this only works if you already see the user in the table otherwise I guess maybe they have to 'touch' their Preference before it creates an entry in that table. Haven't figured that part out yet, and Support didn't have any information.
    If anyone has found a way to maneuver through the table structures I'd love to hear any insight you can offer.
    Before you make any changes to the data in this table be sure to take adequate repository backups, and use caution as usual.
    I'm going to create a Shared Preference and have each user point to it the first time they log in - but then you lose the ability for each user to have their own personal folder as their default, so it's still not the ideal solution. Really wish there was a way for Admins to set certain prefs. A coworker reminded me under 7.? or 6.x things like View Pane were system-level settings which was easy to control, but now it's at the user level.
    Good luck,
    Karen

  • Unable to view latest instance in BO Infoview XIR2

    Hi,
    I am unable to view latest instance in BO Infoview XIR2. Can any one please let me know general procedure to cross check in Infoview or Consol
    Thanks in Aadvance
    Regards
    Sweety

    Hi Sweety,
    What happens if you login as the Enterprise Adminstrator account,  do you get the option to View Latest Instance?
    - What do you mean exactly when you say you cannot view the latest instance? 
    - Are you missing the option/context menu or is the incorrect report displaying?
    I would suggest working with your Enterprise Administrator to ensure you have sufficient rights to View the latest instances.  However,  if you're not able to select the option check out this SAP Note:
    https://bosap-support.wdf.sap.corp/sap/support/notes/1202260
    Regards,
    Wallie

Maybe you are looking for