If a BEx Query is using data functions, it cannot be used as a data source for BO, thus we need to remove these data functions from the query and implement it to BO WEBi report level.Below solution shows hoe the %GT function can be implemented in WEBi.

 

BO Solution: Calculation Context

%GT functions can easily be implemented in BO using Calculation Context.

 

In BO report by default the calculation context is define by the dimensions fetched on to the report.Adding or removing the dimensions from the report changes the measure amount aggregation.

 

However, if user wants to remove or add any dimension from the calculation context without adding or removing the dimension from the report block the this can be achieved using the calculation context.

 

As in below example Contribution percentage can be calculated using the formula:

=[REVENUE] / [REVENUE] In Report

 

The IN Report Context projects the measure up to the overall report total.By using this calculation context in the report denominator we can ensure that we will always be dividing by the grand total.

img1.jpg

Please note we cannot achieve the above result by using =Sum[REVENUE] in denominator because Sum will be calculated in context with Resort dimension, so =Sum[REVENUE] will give $971,444.00 only when placed in adjacent column to revenue.

To Set up SSO access for SAP authentication:

  1. Login to CMC with Administrator privilege.
  2. Go To Authentication -> SAP from the Home Page
  3. Entitlement Systems Dialog Box opens up
  4. Choose  Role Import Tab and add the required roles
  5. Check if SAP Authentication is enabled on the Option tab
  6. Import keystore file
    The message
    No key store file has been uploaded indicates no previous uploads
  7. Setup Key Store/Private Key password, Private Key Alias and System ID
  8. Setup Security Token Service
    The Security Token Service is running as part of Adaptive Processing Server (APS)
    Go to CMC -> Servers and check if APS has Security Token Service
    .If not, stop APS and add Security Token Service, then start APS

 

Generate keystore and certificate

  1. Run PKCS12Tool program to generate keystore
    PKCS12Tool Windows location: <INSTALLDIR>\SAP BusinessObjects Enterprise XI4.0\java\lib
    PKCS12Tool Unix location: <INSTALLDIR>/sap_bobj/enterprise_xi40/java/lib
    (Windows command line example: "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\
    sapjvm\bin\java" -jar PKCS12Tool.jar -alias mywin -storepass admin1 -dname CN=palmtree )

Keystore File is generated at this location:

Capture.JPG

 

2.     Generate certificate with keytool
Enter keystore password which is defined in the previous step. (In this example the password is: admin1)
(Windows command line example: "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\
sapjvm\bin\keytool" -exportcert -keystore keystore.p12 -storetype pkcs12 -file cert.der -alias mywin )

 

Capture.JPG

Hi All,

 

   Just sharing this tip that is useful at times. You can restrict no of rows in your webi report tables as per your requirement. I used it for displaying the input selection values of a block on the top of my report as there were no of tables involved with input control defined for other tables and its not easy for the user to remember selections from all of them. As of now there is no known way to display your input control selections on a block in BOBJ 3.1. You can only display report filters provided as a standard function.

 

   In our case we have two tables Tab1 & Tab2. Tab1 is showing month wise data. Tab1 is defined as input control for Tab2.Tab2 is showing dealer wise breakup for the selected month. Now user wants to see the selected month on the top of the report. Here are the steps:

 

1. Insert a table (Tab3) without a header on top of the report. Pass calendar month dim to it. Define input control from Tab1 to Tab3.

   First it will look like this

Tables.jpg

2. Once you select a row from Tab1 it will restrict values in Tab3. Let say you selected Dec 2011, Tab3 will look as below:

     Tables2.jpg

 

3. Logically it will solve your purpose to show Input Selection of Tab1. But still its advisable to restrict it for a single row. Otherwise in some exceptional cases

    if system assumes nothing is selected on Tab1 then all the values will be displayed on Tab3 and the table may overlap any below object.

 

4. To do that define a new variable Var1 with the formula: " RunningCount([L01 Calendar Year/Month]) ". It will give serial no for all the records in the table as

     below:

Tab3.png

 

5. Remove Var1 from Tab3 and restrict var1 in Report Filter on Tab3 with value as constant = 1.

 

Filter.png

 

Now Tab3 is restricted for 1 row any time and it will display selected dim from Tab1. One can use this trick to see input selections on other tables on report so that user will know at what drill level he is analyzing the data.

 

 

Regards
Jitendra

Hello Everybody

This is my first blog in SDN and I would like to put down some of the limitation faced when I tried to use WEB INTELLIGENCE reporting in BI4.0 with the new connectivity option of directly using a BEX query using BICS option. I have used the .UNV universe in 3.x environment and below are some of the limitation immediately became visible  with BICS approach.

Very Important ones.

1>     BEX  built using a sub query technique:  In this case the when the “Allow External Access to this Query” is checked the Report can’t even executed in Bex( or bex web), therefore can’t be used in BOBJ platform.

2>     Slice and Dice of the dimension in the report most of the time requires refreshing of  the Report:  This is due to the inherent nature of the Data base delegated Measure setting in the Virtual universe generated at the back end during run time, and setting can’t be changed because of that. We probably have to live with this even if we don’t want the calculation of Key Figure to be done by BW for every slice and dice in WEBI.

3>     The following Filtering technique which works for .UNV universe , doesn’t work for BICS

a.       Object Base Filter ( Filter comparing the same dimension)

b.      Sub Query

c.       Feeding the Output of One query to Another

4>     Combined Query Technique( Minus, Union etc) –  The Option for this also doesn’t seem to be enabled

5>     Drilling - while I absolutely love the way the Hierarchy perform with the new BICS option, the Good Old drilling doesn’t work with BICS and I think this is huge

 

Some Other:

6>     Display Attribute defined in BEX with change of description of the field, ordering etc, has no bearing in the WEBI report. All display attribute defined in the Back end info Object level are available, and can be confusing for the General Users. This doesn’t necessarily be a defect but confusing for the end users , depending upon the type of end users.

7>     Due to inherent nature of BICS approach, we can’t do the following.. but I see this as more as a different way of doing things instead of limitation etc.

a.       Can’t have predefined filters as .UNV

b.      Can’t group dimension in logical group

Since I see WEBI as the most important Self service and Report authoring tool by Business rather than IT, these can cause some problem and pain points for use of WEBI down the line with BEX/BICS.

There are others smaller one, line query Stripping etc… Let’s see if you faced similar issues and have a healthy discussion about these.

Thanks

Arun

Hi All,

 

  As a good practice it is recommended to make use of existing variables while creating a BEx query. Variable descriptions are fixed at the time we define them for a characteristic. A report developer assigns a descripton more relevant to report user. If a variable with same properties is required in some other report intended for a user who is part of some other business unit, for example vendor/transporter/service provider all are same but have different calling category for different business units. In these cases you do not have much choices at Bex level, you have to create a different variable if you want a different description on selection screen.

  If you are using Webi as your reporting solution then you can make use of same variable for any number of requirements without changing its base description (defined at BEx level).

 

For example a user who is performing analysis on Freight data will call its vendor as transporter. So webi selection screen will show Vendor by default (as maintained in BEx query variable).

Prompt.png

Now we can fix its description in universe as below:

1) Open the underlying universe in Designer. Goto filters and double click the filter for vendor

Filter.png
2) A new window will open. Go in the where section and chnge descriptions maintained after @Prompt

 

Before Change:

Cond1.png

After Change:

Cond2.png

Parse and export the universe.

 

3) Open your webi report and refresh, you will see your selections with new descriptions.

Newsel.png

 

Hope it will be useful to all BW-BOBJ developers. So make use of what system already have rather than spending some time to create a replica.

 

Regards:

Jitendra

Calculation Contexts:

 

A Webi report basically contains the business data as dimensions and their associated measures.

For eg : A report could display Quantity sold(measure) in a Year(dimension).

 

Basically, Measures depend on the combination of other rows or columns with which it is associated in a report.

They change dynamically based on the contexts they are placed. We can change these default context by using

calculation contexts and thereby control a measure.

 

Calculation contexts can be leveraged extensively to display the exact data with help of the aggregate functions

along with context operators.

 

 

A Scenario Walkthrough:

 

In one of my projects, I faced a scenario to display the measures  Cpu_Utilization  and Memory_Utilisation only

for their respective Date Code in the detail levels as shown in the below Table 1.

 

From Table 1 we can understand that each date code has multiple hour codes which in turn has two Sbc items

under it which gives the detail values of both the measures, But in the output we don’t need to display Hour_code

and Sbc columns.

 

Table 1:

Figure 1.png

By removing both  those Hour_code and Sbc columns I got the below output in an aggregated manner,

Fig 2.jpg

 

So, to attain both those measures in the detail manner with respect to date code without displaying  hour_code

and Sbc columns,I have contexed the measures for each hour_code and Sbc in every date code.

 

=Average ([MEMORY_UTILISATION] For Each ([HOUR_CODE]; [SBC])) In ([DATE_CODE])

 

=Average ([CPU_UTILISATION] For Each ([HOUR_CODE]; [SBC])) In ([DATE_CODE])

 

Below is the desired output table achieved after using the above contexts,

Fig 3.jpg

Replacement Path in BEx Query and BO Workaround

 

You want to make BEx query accessible to Business Objects, in which a variable of type replacement path with query is used.The replacement path query has a ready for input variable thus the BEx query cannot be made available for OLAP (SAP note: #820925).

un1.jpg

In the above example YA_FPI is replacement path query with ready for input variable 'Employee'.

 

BEx Output:

Shown below is the output of the main query that is based on the Employee(Person) fetched from the replacement path query.

un2.jpg

BO Alternate Solution: Merging Dimensions

The same functionality can be achieved using the merged dimension functionality in BOBJ report.Create a report with 2 dataproviders: 1. Replacement Path Query, 2. Main Query and merge based on similar dimension (Replacement path variable from replacement path query and similar dimension from the main query should be merged).

 

Drag object from replacement path query(replacement path variable) and remaining objects from the main query.

This works similar way the left and right outer join works in RDBMS. See the below workflow for better understanding:

  • Create 2 universes

       1. on replacement path query

       2. on main query

  • Create a report based on above 2 dataproviders(Universe).

Untitled3.jpg

  • Merge the object(replacement path variable) from replacement path query with the similar dimension object in the main query. As shown in below example - Employee Key from replacement path is merged with Employee Key from main query.

un4.jpg

  • Now we want replacement path query to drive the results, to achieve this open up each merged dimension object and use the dimension key that come from the replacement path query and fetch the other objects from the main query.

Here's what the block kook like:

 

BO Output:

un7.jpg

This way the objects from main query will be restricted only for those Employee Keys(Person) fetched from the replacement path query, as the dimensions are merged.

Filter Blog

By author:
By date:
By tag: