Using RUID in OpenDocument
Is there anything special to know about using RUID in an OpenDocument statement? I'm writing a program to generate hyperlinks, and have found that RUID seems to be kept constant through server migration.
I've found that this works:
="<a href='http://MyServer/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?
sType=wid
&iDocID=AeG8ppyqd7tLtAaBBsOLOdY
&sIDType=GUID
... Other random options ...
+ "</a>"
This works too:
="<a href='http://MyServer/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?
sType=wid
&iDocID=AeG8ppyqd7tLtAaBBsOLOdY
&sIDType=CUID
... Other random options ...
+ "</a>"
But this produces an error (Internal error occured: Internal Error: the value of parameter id is invalid.):
="<a href='http://MyServer/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?
sType=wid
&iDocID=AeG8ppyqd7tLtAaBBsOLOdY
&sIDType=RUID
... Other random options ...
+ "</a>"
The only type that isn't accepted is the RUID. How can I make this work, so that I don't need to update hyperlinks every time something is migrated from our test system to our live system?
If you look at the documentation [here|http://devlibrary.businessobjects.com/BusinessObjectsXIR2SP2/en/en/BOE_SDK/boesdk_dotNet_doc/doc/boesdk_net_doc/html/Report_Linking13.html] it appears that it is only meant for use of OLAP and Crystal Reports. Looking at the XI3 documentation, the use of RUID is no longer documented.
Similar Messages
-
Passing a Prompt value to Webi using Xcelsius with OpenDocument
-Operating System: Windows XP
-OS Patch level: Service Pack 3
-Office Version: 2007
-Flash Player version: 10
-Xcelsius Version and Patch Level: Enterprise 2008 with SP2 (version: 5.2.0.0)
-Xcelsius Build number (Help>About Xcelsius): 12,2,0,608
-Business Objects Enterprise version/patch level (if applicable): Edge 3.1
-Issue Description:
I'm trying to open a Webi Document from my Xcelsius dashboard and pass the value for the prompt "Region". Ultimately I want to have this value determined by the drill down from a chart but at the moment I cannot get it to work even by adding the value at the end of the URL. The webi report opens but the user is given the prompt option and asked to select the value, where I want to pass this so it automatically shows the selected region.
The URL I'm currently using is:
http://"servername":8081/OpenDocument/opendoc/openDocument.jsp?sType=wid&sRefresh=Y&sDocName=Regional_Drilldown&mode=full&nbPrompts=1&lsSRegion=South
I have double checked the report and the prompt is definitely called "Region" and "South" is a valid region.
I would be very grateful for some help.
Many thanks
Robert PetersHi Robert
I would take out the reference to the number of prompts to give:
http://"servername":8081/OpenDocument/opendoc/openDocument.jsp?sType=wid&sRefresh=Y&sDocName=Regional_Drilldown&mode=full&IsSRegion=South
If you copy and paste the url into a browser does it sucessfully find the document?
Regards
Charles -
Using opendocument for child report
Hello Experts,
One my webi report(parent) is likned with another wei report(child)using hyerlink and opendocument.
Now my requirement is to hide refresh button of child whenever it would get opened (After clicking on hyperlink on parent)
So every time, user clicks on hyperlink on parent report, child report should get opened without 'Refresh' button.
Is there way out to this problem using SDK or url reporting?
Regards,
JohnWith the SDK, you can create your own Web Intelligence viewer. Other than that, there's not way to control the refreshability of a document other than using the security model (i.e., do not give rights to a user to refresh the document).
Sincerely,
Ted Ueda -
Create ODF document using ABAP ?
There any way to create ODF documents (Text/Spreadsheet) using ABAP + http://opendocument.xml.org standards ?
Tks,
CleberThere any way to create ODF documents (Text/Spreadsheet) using ABAP + http://opendocument.xml.org standards ?
Tks,
Cleber -
How do we stop an extra window from opening when we use openDoc in 3.1?
We have migrated content from XI r2 to 3.1 and when we use the opendoc/openDocument.jsp, it works but is also opening a blank browser window. Any idea how to prevent this? We've tested on 3 different versions of IE (6, 7 and 8). It doesn't appear to be affected by user preference settings in InfoView and doesn't seem to matter if the new parameter is part of the URL. Here's a sample URL:
http://[server name]:[port]/OpenDocument/opendoc/openDocument.jsp?sPath=[ReportsByRole],[Shared]&sDocName=TrendedSupplyIndex+Report
We get the same result if we're using Crystal, Webi or Xcelsius and we get the same result if we use the wizard and build the connection on a Webi report so it's using the opendocument.jsp file that's in AnalyticalReporting\opendocHi,
Thanks for the reply. We did try adding the window.close to the Tomcat55\webapps\OpenDocument\opendoc\isApplication.jsp file and that resolved the issue. However, we eventually figured out that we could get by without the customization by using different parameters in the report links.
This example works for Xcelsius (to Xcelsius, Webi)- it has to have the appKind and isApplication parameter:
/AnalyticalReporting/opendoc/openDocument.jsp?appKind=InfoView&isApplication=true&sPath=[ReportsByRole],[SHARED]&sDocName=DailyProductivityTool&lsSAU=406000&lsSFacility=Fa&lsSCompany=No
This example works for Crystal (to Crystal):
"../OpenDocument/opendoc/openDocument.jsp?sType=rpt&sPath=[Communications],[ReportLibrary]&sDocName=ReportProfile&sWindow=New&lsSReportID=" & {@ReportID}
This example works for Webi (to Webi):
="<a href=../../opendoc/openDocument.jsp?iDocID=Ac20j.bpit1IrTJ5MYi6dvw&sIDType=CUID&sType=wid&sRefresh=Y&sWindow=New&NAII=Y&lsSPleaseentervalueforFiscalYear(YYYY)="[var_Year]"&lsSPleaseentervalueforStartFiscalMonth(MM)="[var_Start Month]"&lsSPleaseentervalueforStopFiscalMonth(MM)="[var_Stop Month]"&lsMSelectoneormoreAccountingUnit(s)="[var_CoEntAcctUnit]" title=\"Departmental Responsibility Summary\" href=\"#\" style=\"text-decoration:none; color:blue;\">"[var_Co]"-"[Account Unit]+"</a>" -
Open hyperlink in a new browser
Hello,
All of our crystal reports are posted on Infoview. I need to create a report that would have a hyperlink to a different report also posted on Infoview. I want the second report opened in the new window. What formula should I use to open a second report in the new window?
Thanks!!
Olgahello all,
you can do this using opendocument syntax. unfortunately opendocument syntax information is not that common.
1) please do a search on your system for report_viewers.zip or report_viewer.chm. this is the help file that has the information on opendocument.
2) once you have opened the chm go to the Search tab and type in opendocument
3) select "URL Reporting Using openDocument" and press the "opendocument parameters" link
4) scroll down and there is a "sWindow" parameter and use the value New
in the chm there are examples on each opendoc parameter....i have pasted this particular page below as well.
in cr2008 there is an Enterprise Hyperlink wizard which has open in new window as an option.
there are a lot of things you can do with opendocument:
a) go to the top of a report page
b) use an "index" at the top of a report page to go to, for example, groups that start with the letter "G"
c) go to a specific part of the report or another report
d) hide the drilldown tabs
e) hide the toolbar
etc.
i will endeavour to blog about this in the near future and have some sample reports.
here's the info from the chm
OpenDocument parameters
There are two implementations of the openDocument function. The exact syntax of the <platformSpecific> parameter depends on your implementation:
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
The first parameter of the link
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?
The first parameter, as displayed in the example above, must precede all other parameters. After this information, the parameters can appear in any order.
The parameters of the function are displayed in the following table. The mandatory column indicates whether the parameter is required in the link.
Note: The document containing the openDocument link is called the parent document, and it resides on the parent system. The document to which the link points is called the target document, and it resides on the target system.
Parameter syntax Description of parameter Mandatory? Values accepted for parameter
sPath
The name of the Crystal folder and subfolder containing the target document.
Yes if sDocName is specified and is not unique.
Crystal folder and/or subfolder:
[folder],[subfolder]
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports,SubFolder
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sType
The file type of target document or report.
Yes
wid
rpt
car
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sDocName
Document name.
One of sDocName or iDocID is mandatory.
Document name.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2005
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
iDocID
Document identifier.
One of sDocName or iDocID is mandatory.
Document identifier.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
Replace 2010 with the document ID.
Tip:
To obtain the document ID, navigate to the document in InfoView, hover your mouse over the document name hyperlink, and look for the ID number in the browser's status bar. You can also obtain the document ID from the Central Management Console.
sIDType
Crystal object type.
Yes if the target is a Crystal report or OLAP Intelligence report (sType=rpt or =car) in an Object Package (otherwise, use sPath and sDocName)
CUID
GUID
RUID
ParentID
InfoObjectID (default)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2003&sIDType=InfoObject
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sReportName
Indicates which report to open if target document is multi-report.
No (default is the first report)
Report name for Web Intelligence documents, sub-report for Crystal Reports, pages for OLAP Intelligence reports.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=Salesin2003&sReportName=FirstReportTab
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sOutputFormat
Indicates the format in which the target document is opened.
No (default is HTML if the parameter is not specified in the link)
H (HTML)
P (PDF)
E (Excel)
W (Word)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2003&sOutputFormat=E
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sReportPart
Indicates which specific part of the target report to open.
No
Name of the report part.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2003&sReportPart=Part1
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sPartContext
In Crystal Reports, a report part is associated to a data context.
Yes if a value is specified for sReportPart
Data context of the report part.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2005&sReportPart=Part1&sPartContext=0-4-0
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sInstance
Indicates which specific instance of the target report to open.
No (use with sDocName and lsS[NAME])
User (Link to latest instance owned by current user)
Last (Link to latest instance for report)
Param (Link to latest instance of report with matching parameter values)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2003&sReportPart=Part1&sInstance=User
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sReportMode
For Crystal targets only, indicates whether the link should open the full target report or just the report part specified in sReportPart.
No (default is Full)
Only applies if a value is specified for sReportPart
Full
Part
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sPath=SalesReports&sDocName=Salesin+2003&sReportPart=Part1&sReportMode=Part
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sRefresh
Indicates whether a refresh should be forced when the target document or report is opened.
No
Y (forces the document's refresh)
N (note that the refresh on open feature overrides this value)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&sRefresh=Y
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
sWindow
Indicates whether the target report will open in the current browser window or whether a new window will be launched.
No
Same (current browser window)
New (new browser window is launched)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&sWindow=New
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
lsS[NAME]
Specifies a value for a single prompt. [NAME] is the text of the prompt.
No
A single prompt value.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&lsSSelectaCity=Paris
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
lsM[NAME]
Specifies multiple values for a prompt. [NAME] is the text of the prompt.
No
Multiple prompt values, separated by a comma. If the target is a Crystal report, each value must be enclosed in square brackets. If the target is a OLAP Intelligence report, use the MDX WITH clause (refer to Specifying prompts for OLAP Intelligence report targets).
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=rpt&sDocName=SalesReport&lsMSelect+Cities=[Paris],[London]
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
lsR[NAME]
Specifies a range of values for a prompt. [NAME] is the text of the prompt.
Note: Not supported by OLAP Intelligence
No
A range of values for the prompt, separated by a double period (..). If the target is a Crystal report, the range must be enclosed in square brackets and/or parentheses (use a square bracket next to a value to include it in the range, and parentheses to exclude it). If the target is a OLAP Intelligence report, use the MDX WITH clause (refer to Specifying prompts for OLAP Intelligence report targets).
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=rpt&sDocName=SalesReport&lsRTime+Period:=[2000..2004)
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
lsU
Specifies a URL to which the user is redirected.
Note: Not supported by OLAP Intelligence
No
A URL.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&lsU=http://www.site.com
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
lsC
Specifies a contextual prompt if there is an ambiguity during SQL generation (Business Objects and Web Intelligence documents only).
Note: Not supported by OLAP Intelligence
No
A prompt value that resolves the ambiguity in the SQL generation.
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&lsC=Sales
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter.
NAII
Forces the display of the prompt selection page.
Note: Not supported by OLAP Intelligence
No
Y (all prompts whose values are passed with lsS, lsM or lsR are pre-selected)
N (displays only the prompts whose values passed with lsS, lsM or lsR)
Example:
http://<webserver>/businessobjects/enterprise11/<platformSpecific>?sType=wid&sDocName=SalesReport&iDocID=2010&NAII=Y
For Java implementations, use desktoplaunch/opendoc/openDocument.jsp in place of the <platformSpecific> parameter.
For .NET implementations, use InfoView/scripts/opendocument.aspx in place of the <platformSpecific> parameter
Edited by: Jamie Wiseman on Dec 3, 2009 10:01 AM -
Please, help me with with Report Engine SDK!
I am using Report Engine SDK. This is my code:
<%@ page import="com.crystaldecisions.sdk.framework.*"%>
<%@ page import="com.crystaldecisions.sdk.exception.SDKException"%>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore"%>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObject"%>
<%@ page import="com.crystaldecisions.sdk.occa.security.ILogonTokenMgr"%>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.*"%>
<%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer,
com.crystaldecisions.sdk.occa.report.application.OpenReportOptions,
com.crystaldecisions.sdk.occa.report.application.ReportClientDocument,
com.crystaldecisions.sdk.occa.report.exportoptions.ReportExportFormat,
java.io.ByteArrayInputStream"
%>
<%@ page import="java.util.Iterator"%>
<%
// Reference to the Report Engine:
%>
<%@ page import="com.businessobjects.rebean.wi.*"%>
<%!IInfoObjects getList(IInfoStore iStore) {
IInfoObjects list = null;
String query = "SELECT SI_ID, SI_NAME, SI_PARENTID," + " SI_KIND, SI_INSTANCE, SI_DESCRIPTION FROM"
+ " CI_INFOOBJECTS";
try {
list = iStore.query(query);
} catch (SDKException sdke) {
list = null;
return list;
}%>
<%! void see_all_objects(IInfoStore iStore){
IInfoObjects webiDocs = getList(iStore);
Iterator infoObjectsIter = webiDocs.iterator();
while (infoObjectsIter.hasNext()) {
IInfoObject folder = (IInfoObject) infoObjectsIter.next();
System.out.println(folder.getID());
System.out.println(folder.getTitle());
System.out.println(folder.getDescription());
%>
<%
String CMS = request.getParameter("cms");
String userID = request.getParameter("user");
String password = request.getParameter("password");
String auth = request.getParameter("auth");
if (CMS == null)
CMS = "";
if (userID == null)
userID = "";
if (password == null)
password = "";
if (auth == null)
auth = "";
IEnterpriseSession enterpriseSession;
try {
ISessionMgr mySessionMgr = CrystalEnterprise.getSessionMgr();
enterpriseSession = mySessionMgr.logon(userID, password, CMS, auth);
if (enterpriseSession != null) {//Create and store useful objects for the session.
session.setAttribute("EnterpriseSession", enterpriseSession);
IInfoStore iStore = (IInfoStore) enterpriseSession.getService("InfoStore");
session.setAttribute("InfoStore", iStore);
//see_all_objects(iStore);
//String folderQuery = "SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='4.rpt'";
String folderQuery = "SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='5.rpt'";
IInfoObjects folders = iStore.query(folderQuery);
IInfoObject folder = (IInfoObject)folders.get(0);
//Instantiation of a Report Engine:
ILogonTokenMgr iLManager = enterpriseSession.getLogonTokenMgr();
ReportEngines repEngines = (ReportEngines) enterpriseSession.getService("ReportEngines");
ReportEngine widocRepEngine = (ReportEngine) repEngines
.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);//WI allows editing and creation
session.setAttribute("widReportEngine", widocRepEngine);
ReportEngine fcdocRepEngine = (ReportEngine) repEngines
.getService(ReportEngines.ReportEngineType.FC_REPORT_ENGINE); //FC just viewing
session.setAttribute("fcdReportEngine", fcdocRepEngine);
Opening documents:
1. Establish a BusinessObjects Enterprise session for the user
2. Get an identifier for the document
3. Retrieve the ReportEngine instance to open the document of desired type.
4. Open the document using the ReportEngine.openDocument method for Web
Intelligence or Desktop Intelligence documents.
int idReport = folder.getID();
System.out.println("Document about to be opened "+idReport);
System.out.println("Name file: "+folder.getTitle());
DocumentInstance docInstance= widocRepEngine.openDocument(idReport);
// DocumentInstance docInstance = fcdocRepEngine.openDocument(idReport);
System.out.println("Document opened");
String docToken = docInstance.getStorageToken();
//User perform actions on document
// Open the document using its repository ID
BinaryView docBinaryView = (BinaryView)docInstance.getView(OutputFormatType.PDF);
//Parameterize the response
response.setContentType("application/pdf");
response.setHeader("Content-Type", "application/pdf");
response.setDateHeader("expires", 0);
//output the binary stream via the response object
docBinaryView.getContent(response.getOutputStream());
System.out.println("Document converted");
//To view an individual report, call Report.getView
//Open the first version of the document and save.
DocumentInstance docToSave = repEngines.getDocumentFromStorageToken(docToken);
docToSave.save();
System.out.println("Document converted");
// Close of the reportEngine
repEngines.close();
response.sendRedirect("home.html");
} else
response.sendRedirect("index.jsp");
} catch (SDKException mySDKExept) {
response.sendRedirect("index.jsp");
Opening documents:
//To view an entire document, call DocumentInstance.getView
%>
Edited by: Diego XMunch on Mar 10, 2011 3:41 PMBut I have this error:
com.businessobjects.rebean.wi.ServerException: Error interno al llamar a la API 'openDocumentMDP'. (Error: ERR_WIS_30270)
at com.businessobjects.rebean.wi.occa.OccaDocumentComAdapter.checkOpenDocError(Unknown Source)
at com.businessobjects.rebean.wi.occa.OccaDocumentComAdapter.openDocument(Unknown Source)
at com.businessobjects.rebean.occa.OccaReportEngineComAdapter.openDocument(Unknown Source)
at com.businessobjects.rebean.wi.ReportEngineImpl.openDocument(Unknown Source)
at com.businessobjects.rebean.wi.occa.WebiReportEngine.openDocument(Unknown Source)
at org.apache.jsp.login_jsp._jspService(login_jsp.java:163)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619) -
Passing the values to Hyperlink
Hi,
My requirement is I want to pass two values to hyperlink from a table. My table looks like
<b> Column 1; Column 2</b>
Row 1 Value1 ; Value 2
Row 2 Value 3; Value 4.
I want that If someone clicks on value1..... the Row1 and Column1 values should be passed in the URL...
It would be great if some1 could help me on this..
Thnx
BobBob,
The feature you want to use is called "OpenDocument". The best way to learn how to use OpenDocument is by reading the correct user's guide for it based on your version. If you're running XI 3.1, then look for this document: xi3-1_url_reporting_opendocument_en.pdf on the Tech Support site. If you have the previous version BOE (XI R2), then look for "be_xi_r2_opendocument.pdf".
Thanks,
John -
Integration of WEBI report in SAP Enterprise portal
Hi Colleagues,
I want to create my adhco report using WEBI and want to publish it to SAP NW Enterprise portal .
While creating the i view in the EP i dint find any option in i view template in order to create an i view for WEBI report .
However there is an option to choose crystal report as a template while creating an i view but nothing for WEBI and Xcelsius as such. So how can we embedd our Xcelsius and WEBI report in SAP Enterprise portal .
Is there any option to intergate the SAP NW Enterprise portal and BO Portal .
Kindly sugest.
Vibhav.You should be using opendocument links if using EP. with opendocument the URL contains all the pertinent info.
refer to chapter 8 of the SAP Integration kit guide for more info.
Post in the webi, general, or check out the outher documents link in the forum sticky post for the latest opendocument doc.
Regards,
Tim -
Hi All,
I am new to BO and have few queries in regards to using BO ( webi/deski) reports for Canned ( very few) and adhoc reports.
Requirement:
1) BO embedded within c# winapp. ( user to run reports from the winapp)
- This is achieved by using SDK and opendocument API.
- Relational database ( SQL server 2005) as Datasource.
Questions:
1) Can I use custom sytlesheets for all my Webi reports ( to standardise the report's look and feel) ?
2) Can Alerters be shared across reports ? ( alerter at Universe level ???)
3) BO reports with collapsable/expandable data rows ( similar to master\detail reports on .Net datagrid)
4) Callback to the UI ( the parent C# winapp ) from within the BO report (via hyperlink / drilling ???)
5) Display/hide specific toolbar controls and othere features ( like template/properties tabs) when rendering an adhoc report from within the C# winapp ?
Any help on this is greatly appreciated.
Thanks in Advance.
- Mahesh
Edited by: mahesh gopal on Feb 13, 2009 10:30 AMUmm, note Webi = web intelligence
Your requirement; winapp
Also, see the [Rules of Engagement|https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/rulesofEngagement]
One query per thread.
As a BO customer you should be able to create a phone incident. for the number of queries you have, I'd suggest doing so.
Ludek -
I'm working with a crosstab report displaying summary accounts on each row & current and prior year on each column. I'd like to create a drill down function for each of the summary accounts rows so that when I click on a summary account, the dept# that made up this summary total will be displayed either on a separate report or below the summary account that I click.
Any help would be greatly appreciated. Thank you.
This is what I want to create:
SUMMARY ACCOUNT FY2014 FY2013
600001 - SALARIES 500 380 (i.e. able to drill down to dept below when 600001 is clicked)
701000 - ER DEPT 200 175
757000 - CATH LAB 150 210
848000 - INFO SYSTEM 100 65
851000 - ACCOUNTING 50 50
710002 - BENEFITS 150 140
881000 - HUMAN RES 135 130
900000 - OTHERS 15 10
711003 - SUPPLIES XXX XXXThank you for the referenced thread. I've copied your answer on the thread to this reply below.
However, I do have a few question in following thru your instructions:
1. How do you procede with the 1st 3 bullets below?
2. What or where is the Business Object Platform?
3. What or where is the "Repository"
Please advice. Thank you.
Here are a few ways you can drill-down into a cross-tab (all of them are workarounds by the way).
The first method is using Report Parts or ‘Another Report Object’ and the second method is using an ‘OpenDoc’ URL
Both the methods need the target report (report that is opened when drilled into) to have the same groups as the Crosstab
The ‘Another Report Object’ can be setup in the following way:
The target report needs to saved to the BusinessObjects Platform first
Open the target report in the Crystal Report designer from the ‘Repository’
Assuming the groups have been setup properly, click on any field in the details section and ‘Copy’ (Ctrl+C)
Open the Report with the Crosstab
Right-click the Summary Field on the Crosstab and go to ‘Format Field’ > Hyperlink
Then Check ‘Another Report Object’ and click on ‘Paste’
All the required information should be populated automatically
This is how the Data Context should look like:
“/”+GridRowColumnValue(“Customer.Country”)+”/”+ GridRowColumnValue(“Customer.Region”)+”/”+ GridRowColumnValue(“Customer.Customer Name”)
Where “Country” and “Region” are rows in the Crosstab, “Customer Name” is a column in the crosstab.
Similarly, “Country”, “Region” and “Customer Name” are groups on the target report
So, the above formula would make sure the report drills-down to the last group
The next method using ‘OpenDoc’ makes use of the opendocument URL and passes values from the Crosstab to the target report’s parameters
Here’s how we can set this up:
The basic design of the Main report and the target report would be the same as in above, however we would need to create parameters that correspond to the groups on the target report
In this case, we would create three parameters – Country, Region and Customer Name
We would use these parameters as filters on the target report and our record selection formula would look like this:
{Country} = {?Country} and {Region} = {?Region} and {Customer Name} = {?Customer Name}
We would then link the Main reports ‘Country’, ‘Region’ and ‘Customer Name’ with these parameters
Now on the Main report Right-click the Summary Field on the Crosstab and go to ‘Format Field’ > Hyperlink
Check the option ‘A Website on the Internet’ and click on the formula button in ‘Hyperlink information:”; the formula should be as follows:
“/OpenDocument/opendoc/openDocument.jsp?iDocID=6472&lsSCountry=”&GridRowColumnValue(“Customer.Country”)&” &lsSRegion=”&GridRowColumnValue(“Customer.Region”)&” &lsSCustomer+Name=”&GridRowColumnValue(“Customer.Customer Name”)
When any summary value is clicked in the Cross-tab, the corresponding Country, Region and Customer Name are passed as values to the parameters of the target report
Hope this helps!
-Abhilash -
Business Obeject XI 3.1 SP4 and Internet Explorer 8
Hi,
The Business Objects XI3.1 SP4 what's new notes specify Browser support as below
Browser support
SAP Business Objects applications that are viewed in a browser support Microsoft Internet Explorer 8
in Compatibility mode only. Browsers running in Explorer 8 Standard mode are automatically switched
to Compatibility mode when applications such as InfoView or the CMC are launched. Upon exiting the
application, a browser reverts automatically to Internet Explorer 8 Standard mode. No user intervention
is required to switch from one mode to another.
Has anyone experienced issues running\editing webI reports using Infoview or OpenDocument in a corporate environment. Are there any known issues with using IE8 with SP4
Kindly advice.
Thanks & Regards,
Piyush PansareThere are no real problems between IE8 and BI4 that I am aware of. By far the most 2 common problems with IE8 are if you don't use 'Compatibility Mode' or if your 'Zoom' is greater or less than 100%.
With default IE8 settings, there's no issue, perhaps someone has blocked or disallowed certain Java scripts, applets, etc etc?
Alex -
Specify CrystalReportViewer virtual directory
Post Author: craibuc
CA Forum: .NET
Is it possible to specify the location of crystalreportsviewer115 virtual directory in the BO .Net SDK? I would like to use the virtual directory that is exposed by InfoView located on another server.
Thanks,
Craig BuchananPost Author: craibuc
CA Forum: .NET
I solved this issue by using URL reporting (openDocument.jsp). I use the BO .Net SDK to dynamically display folders and objects within folders. I also use the SDK to create the URL to open the report (or instance) using the openDocument functionality. -
Report window does not close properly when using openDocument
XI R2 InfoView
Windows 2003 server
IIS
IE7
We have been experimenting with the use of openDocument and have managed to achieve what we wanted but have one small problem. When the document is retrieved it is opened in a new browser window. When Close is selected from the drop-down Document menu the document is closed but the window shrinks to approx 8.5cm x 6 cm and remains open.
A similar thing happens when we use the Preview button to view a document in the CMC, except in that case the document does not close and closing the browser window leaves a button on the Windows taskbar. There doesn't appear to be a related window as it cannot be restored but you have to right click and select Close to get rid of it.
Any ideas what is causing these problems and how we can get round them?Anne,
There are some parameters in opendocument (for ex. sWindow) that can help control certain things, have you tried employing anything like that? What I find frustrating is the behavior of opendocument based on whether you're running Infoview or WebI -- each product, using the same exact opendocument syntax yields different results. Based on the sample code below, what I'm seeing with Infoview is the same browser instance is used for calling the child report, however, in WebI, a new browser instance is started and the child report is rendered in Infoview. In my case, when running within WebI and getting a new browser instance in Infoview, and then using the "Document", "close" workflow, the second instance is exiting and I'm back to the previous browser. Staying within Infoview entirely through the process, when closing the child report I get brought back to the folder list page. Who's to know?
="<a href=https://<server>/businessobjects/enterprise115/InfoView/scripts/opendocument.aspx?
idocid=100798&lsSInput_Pos_Nbr="+[Position Number Tracking]+">"+[Position Number Tracking]
+"</a>"
(double spaced on purpose)
Thanks,
John -
CR Server 2008 / Using openDocument interface with a no-logon wrapper
Hi, all!
I had a problem with the openDocument.jsp interface and a no-logon wrapper which took me quite a while to figure out. I'm now posting these results here in the hopes that someone else will find them useful. Of course, if anyone has input how to improve the solution, it's also welcome!
The system on which this was developed and tested was a vanilla Crystal Reports Server 2008 installation on Tomcat / MySQL / Windows Server 2003.
The problem was that calls to openDocument interface left sessions open and this quickly led to the situation where all the concurrent access licenses (CALs) were used. It seemed nondeterministic when a session was released; it could have been minutes or hours.
The solution: write a HTTP session timeout listener which logoffs the CRS-backend session. (The code below has still some dubug output enabled.)
package fi.niscayah.util;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import javax.servlet.http.*;
import java.util.Date;
import java.util.Enumeration;
import java.text.SimpleDateFormat;
public class KillSession implements HttpSessionListener
public void sessionCreated(HttpSessionEvent event)
debug("sessionCreated()", event);
public void sessionDestroyed(HttpSessionEvent event)
HttpSession session = event.getSession();
try {
java.util.Enumeration name = session.getAttributeNames();
while (name.hasMoreElements()) {
String attributeName = (String)name.nextElement();
Object attribute = session.getAttribute(attributeName);
if((attribute != null) && (attribute instanceof IEnterpriseSession)) {
debug(" attribute : " + attributeName);
debug(" type : " + attribute.getClass().getName());
IEnterpriseSession ies = (IEnterpriseSession)attribute;
ies.logoff();
debug("sessionDestroyed()", event);
} catch (Exception ex) {
debug("sessionDestroyed() exception");
private void debug(String msg)
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String timestamp = sdf.format(new Date());
System.err.println("[KillSession] [" + timestamp + "] " + msg);
private void debug(String msg, HttpSessionEvent event)
HttpSession session = event.getSession();
String id = session.getId();
String context = session.getServletContext().getServletContextName();
debug("[" + context + "] [" + id + "] " + msg);
(If you want to test the above code, create a .jar package out of it and put it in webapps/OpenDocument/WEB-INF/lib.)
Next we need to register our listener. I noticed that the openDocument-webapp's web.xml-file already contained a listener definition that claimed to expire enterprise sessions on HTTP timeout. I never saw such results; I tested it by registering my own listener, which only outputted debug information, and then when ever a session timeout happened, I checked the amount of licenses in use via the CMC - it never dropped predictably.
So, comment out the SessionCleanupListener and add KillSession.
<!-- SK: Added own listener. -->
<listener>
<listener-class>fi.niscayah.util.KillSession</listener-class>
</listener>
<!-- SK: Commented out. -->
<!-- SessionCleanupListener is used to expire the EnterpriseSession when the web session is timeout -->
<!-- <listener>
<listener-class>com.businessobjects.sdk.ceutils.SessionCleanupListener</listener-class>
</listener> -->
After the above, change the HTTP session timeout to something more suitable. If you're creating really big reports, one minute might be too little. Also notice, that the value is an approximation. The timeout event might happen just as one minute has passed, but usually it takes more.
<session-config>
<session-timeout>1</session-timeout>
</session-config>
Now we're good to go and test the openDocument interface. The result should be that every time a HTTP session timeouts, an enterprise session (which was initialized via the openDocument call) is logged off.
Next the no-logon wrapper.
I found a lot of examples for logging in automatically, but every one of them exhibited a strange behavior (at least when used in conjunction with the openDocument interface) where the session count was increased by two. A lot of head scratching later, the solution below was devised.
<%@ page language="java"
import = "com.crystaldecisions.sdk.framework.CrystalEnterprise,
com.crystaldecisions.sdk.framework.IEnterpriseSession,
com.crystaldecisions.sdk.framework.ISessionMgr,
com.crystaldecisions.sdk.exception.SDKException"
%>
<%
ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();
IEnterpriseSession entSession = sessionManager.logon("Guest", "", "<server>:6400", "secEnterprise");
String entToken = entSession.getLogonTokenMgr().createWCAToken("", 1, 1);
// So that this can be logged off when the session timeouts
HttpSession httpSession = request.getSession();
httpSession.setAttribute("nologon_SESSION", entSession);
String query = request.getQueryString();
String redirectURL = "http://<server>:8080/OpenDocument/opendoc/openDocument.jsp?" +
query + "&token=" + entToken;
response.sendRedirect(redirectURL);
%>
You can put the above .jsp-file where you like, but I dropped it in webapps/openDocument, since it's no use by itself.
The use of nologon.jsp is simple: use it as you would openDocument.jsp.
And there you have it. A word of warning though, if you're not sure what you're doing, I wouldn't recommend trying these things out. And you certainly shouldn't deploy these on a production environment.
As said before, any input is welcome!I'll comment on the BusinessObjects Enterprise logon tokens that you may generate via the Enterprise SDK.
DefaultToken - this is used for failover - i.e., if the original EnterpriseSession object is destroyed without having logoff() method invoked, the failover can be used to re-connect to Enterprise without redo-ing authentication. This token is immediately invalidated with EnterpriseSession.logoff().
CreateLogonToken - token represents an EnterpriseSession independent of the original EnterpriseSession that generates it. So you should generated the CreateLogonToken and log off the EnterpriseSession before using the token, or you'll have two licenses being used.
CreateWCAToken - the Web Component Adapter token - this token is tied to the EnterpriseSession used to create it. If this EnterpriseSession is invalidated, the WCA token can no longer be used. Since this is essentially re-use of the original EnterpriseSession, license count is not increased with its use.
So in your application, you're generating the WCA Token, and using the Session Listener to explicitly log off the originating EnterpriseSession. The SessionCleanupListener is for cleaning up sessions created within InfoView on Web Application Server Session timeout.
Sincerely,
Ted Ueda
Maybe you are looking for
-
How can I define "java.util.ResourceBundle" in my Code ?
Dear Mr. MLRon, Thanks to you for your replying to me. How can I define "java.util.ResourceBundle" in my Code ? To more understanding about my problem I can say that the Persian Font is Like as Arabic, but the Java can not Recognize it. please tell m
-
Updated to iOS 7.1.2 - Can no longer connect to WiFi
There is clearly a bug introduced after updating to iOS 7.1.2 and I inadvertently repeated this mistake on two iPhones (5 and 4S). Immediately after updating to the latest iOS, I was experiencing sporadic WiFi drop outs, especially for short time imm
-
Can anybody tell me how to fix this error...
[#|2005-07-07T14:21:32.199-0400|SEVERE|sun-appserver-pe8.0.0_01|javax.enterprise.system.container.web|_ThreadID=12;|StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception com.sun.faces.el.impl.ElException: En
-
A quick question- can I use a very thin wire using the wire trick, or does it need to carry a lot of current? I took apart some monstercable speaker wire, which is 100% ofc. One strand is very thin, is that a problem? We're talking hair thin almost.
-
How to call methods defined in another class ? is it possible?
Hi all, I am new to using JNI, was wondering if this is possible and how I might be able to do this. I'm trying to call some set/get functions defined in a class that is not part of the class where I have my native code defined and called... Let me e