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)?
ThanksPost 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>
mlieHello 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,
SimhaThe 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 -
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.
ThanksCheck 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,
Ganeshwhen 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 PMHi 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.
AnitaHi 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!
-Dellsorry 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,
ShyamThanks 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 INFOVIEWIn 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
SweetyHi 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
-
Firefox 9.0.1, When i write in the search box on Google the font is bold and on some website it is bold also in the gmail but on other sites it is fine. Please let me know how can I fix this.
-
Automator problem parsing variable as filename in disc image
Dear apple/automator forum. I have just recently started using Automator, and i am experiencing a little problem which im hoping to get a helping hand with. First, heres my screenshot (sorry its in danish, ill explain what iwe done): www.bergsorensen
-
Is there any way to cut audio while keeping the video it is tied to?
ok, I have a video from a dvd i burned on FCE but the sound is messed up. I am going to be making a AMV with it anyway so I don't really need the audio. Is there any way of cutting the audio without disturbing the video it was imported with. I must s
-
File SENDER - "Recordsets per message" being ignored..
Hi I have a file to file scenario Sender file: A1,A2,A3 B1,B2,B3 I want to split the SENDER/SOURCE file in the adapter (NO BPM) so that I am creating n number of RECEIVER files - ONE for each line. I am trying to use content conversions and setting "
-
Dear Expert., Pls tell me the method to change form title i have code as below : If (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD) Or (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ALL_EVENTS) Then If pVal.FormTypeEx = "149" Then oForm.Title =