BOBJ

Monday, June 18, 2012

OpenDoc URL's with SAP BI4.0




Overview

OpenDocument is functionality in BusinessObjects which enables URL reporting and linking documents. It processes incoming URL requests for documents in the Central Management Server (CMS) and delivers the correct document to the end user.
OpenDoc basically provides URL access to documents and avoid having them to navigate through a folder hierarchy.
Using OpenDoc you can link to the viewable objects like:
Ø  Crystal Reports
Ø  Web Intelligence documents (WebI)
Ø  Dashboards
Ø  Interactive Analysis documents
Ø  BI launch pad workspaces

Note: This document deals with linking of Webi documents.

OpenDocument Syntax

Basic URL

The OpenDoc syntax and its parameters allow you to construct URLs that link to viewable objects.

Server specific:
http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?< parameter1 >&< parameter2 >&...&< parameterN >
Note: Once the report is moved from one server to another i.e. Dev to QA to Production server. Administrator has to modify the OpenDoc URL to current server name & port.

Non-Server specific:
../../opendoc/openDocument.jsp?< parameter1 >&< parameter2 >&...&< parameterN >
Note: This syntax doesn’t require any modification.



URL syntax consideration

·         Ampersand (&) is used to join all the parameters
·         Server name and port refers to the BO Enterprise server name and port.
·         Parameter link cannot contain spaces or special characters. Replace the space with plus sign (+).  Eg. &sDocName=Sales+Report
·         All OpenDoc parameters and parameter values are case sensitive.
·         OpenDoc URL cannot exceed the maximum character limit. Therefore, know the browser character limit to ensure you URL will be within the limit.

 

Document Identifier Parameter

 Identifier Parameters are used to identify the target document by its ID, Name, Type and Instance.

Parameter Description
Parameter
Description
Mandatory
Code Sample
iDocID
Specifies the unique identifier of the viewable object.
Yes, but can be replaced by sDocName

iDocID= Aa6GrrM79cRAmaOSMGoadKI
sDocName
Specifies the name of the viewable object.
No
sDocName=Sales+in+2003
sIDType
Specifies the type of object identifier used.
If you pass in an InfoObject ID as a value to iDocID rather than CUID, you do not need to specify this parameter
sIDType=CUID
sInstance
Specifies the scheduled instance of the target document to open.
No
sInstance=Last; sInstance=User;
sInstance=Param;
sType
Specifies the type of the target document
No
sType=wid

Example:

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sInstance=Last
Or
http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=346&sInstance=Last


Input parameters

Input parameters are used to pass the parameter values to the target document.
  

Parameter
Description
Mandatory
Code Sample
lsC
Specifies a contextual prompt for Web Intelligence documents if there is an ambiguity during SQL generation.

No
openDocument.jsp?iDocID=346&sType=wid
&sRefresh=Y&lsC=Reservations
lsI
Specifies index or key value. This parameter must be associated with one of the parameters lsS, lsM or lsR.
No
lsMStore=e-Fashion New York Magnolia&lsIStore=2
lsM[NAME]
Specifies multiple values for a prompt.
No
lsMSelectState=[Alberta],[Washington]
lsR[NAME]
Specifies a range of values for a prompt.
No
lsRparamNumberR=[1..3]
lsS[NAME]
Specifies a value for a single prompt.
No
lsSparamCurrency=121
sRefresh
Indicates whether a database refresh should be forced when the target document is opened.
No
sRefresh=Y or sRefresh=N
sReportName
Specifies the report to open if the target document contains multiple reports.
No
sReportName=First+Report+Tab


Example:

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?sDoc=IndexTest&sType=wid&lsMStore=[caption]&lsIStore=[index]&sRefresh=Y

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sRefresh=Y&lsMSelect+Cities=[Paris],[London]&sRefresh=Y

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sRefresh=Y&lsSSelect+Cities=[Paris]&sRefresh=Y

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sRefresh=Y&lsRparamNumberR=[1..3]&sRefresh=Y


Output parameters

Output parameters are used only if the report output is required in specific format or force to display any prompt values not specified in the URL.

Parameter
Description
Mandatory
Code Sample
NAII
Indicates whether to force the display of the prompt selection page.
No
NAII=Y (prompt values that are passed with lsS, lsM, or lsR in the URL are applied and not displayed in the "Prompts" dialog box)
noDocument
A value of true forced a report to open in design mode using the existing report template.
No
noDocument=true automatically forces a Web Intelligence report into design mode.
sViewer

Specifies the selected report viewer.
No
sViewer=html
sOutputFormat
Specifies the format in which to open the target document
No
sOutputFormat=H;
sOutputFormat=P
(H- HTML, P- PDF)
sWindow
Indicates whether the target report will open in the current browser instance or launch a new one
No
sWindow= Same;
sWindow= New

Example:

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&lsSYear=FY1999&NAII=Y&sRefresh=Y

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sViewer=html

http://< server >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=6471&noDocument=true

http://< servername >:< port >/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID&sRefresh=Y&lsRparamNumberR=[1..3]&sRefresh=Y&sWindow=New

Steps to create an OpenDoc URL

OpenDocument work with the web version of WebIntelligence (WebI) and it is not supported by client version. We can create OpenDoc URL in client version. But, to test the OpenDoc URL we need to export the reports to CMS.
OpenDoc URL can be created by two ways
·         Using Wizard
·         Custom Linking

Now let us create an OpenDoc link by passing parameters between two WebI reports.
Report 1: Sales report (summarized report).
I have Quarter, Month and Week fields in the report filter section & Store name, Year, Category and Sales Revenue in report layout.



Report 2: Details of sales report (the complete details of the Sales report) which has prompts to filter the report for the parameter value picked by OpenDoc URL from Report 1.




Linking Webi Documents using OpenDoc Wizard

Step 1: Logon into BI launch pad using your login credentials.

Step 2: Open your preferences and make sure you have below settings.

Step 3: Open the report (Design mode) in which you want to have the OpenDoc URL.
In this report, we have Quarter, Month and Week as report filters and Category, Year, Store name (Section) and Sales revenue as report objects.


Step 4: Right click on the Sales revenue measure in the report. Select “Linking -> Add Document link”.


Step 5: A new window will open. Click on browse and select the target document.

Step 6:  Select all prompts available in report 2 for OpenDoc URL. Click Ok.


Step 7: Check the option “Use complete URL path to create hyperlink”. Accept the message by clicking ‘Yes’.
You can also check the other available options as per your requirement.

Link to document instance: If this is checked, the OpenDoc URL is linked to the latest refreshed instance of the target report.

Target area within the document: If this is checked, the OpenDoc URL jumps to the specific report tab of the target report.


Step 8:  Choose “Select Object” for the document prompt values from the dropdown. I am using this, to filter the target report by picking the dimension values of the corresponding quantity and show the details in the target report.




Step 9: Click OK and check the report. You’ll be seen with “#Multivalue” error.



#Multivalue error:
Cause: In the report layout we have only 3 Dimensions and Sales Revenue is aggregated by those 3 dimensions whereas when we are linking the document to the target document we also did with Quarter, Month and Week.
By default, the wizard picks only single parameter value for the specified prompt i.e. it uses only lsS[NAME]. In this case, we need to have only those dimensions which are in the report layout to avoid this error or create a custom URL to pick multiple parameter values.
Note: Refer “Custom linking Webi documents” to write you own custom OpenDoc URL.

Step 10: Now, go to step 6 to select only the dimensions as prompts which are in the report layout and follow the same steps to complete the URL.



Click Ok and proceed to assign the dimension for the selected prompts.

Leave the rest of the prompts value as “Use document default” and click ok.

Note: In this case, the target document shows perfect data only when the source report is not filtered by any dimension.

Step 11: Finally, we have linked two Webi reports. Click on the Quantity value and the second report open up showing the details of the quantity.


Monday, June 4, 2012

If.. Then .. Else In BEX Formula

You can make conditional calculations using Boolean operators An expression in the form

IF THEN ELSE can also be made using a formula in the form
* + NOT *


Example: IF Actual Costs > Plan Costs THEN Plan Costs + Plan Deviation ELSE Actual Costs
can be written as the following formula:


(Actual Costs > Plan Costs)* (Plan Costs + Plan Deviation) + (NOT (Actual Costs > Plan Costs)) * Actual Costs

or

(Actual Costs > Plan Costs)* (Plan Costs + Plan Deviation) + (Actual Costs <= Plan Costs) * Actual Costs