Mindmajix

Business Objects Interview Questions

SAP Business Objects Interview Questions

Please find the below Business Objects Interview Questions


Q. Login can’t continue

On a client computer using the Universe Designer to connect to Business Objects Enterprise XI, an error message appears:

“Unable to connect to CMS @@cluster name. Login cannot continue”. Why does the error message appear and how do you resolve it?

A: The error message appears because the client computer is having problems resolving the name of the Crystal Management Server (CMS).

To fix name resolution contact your Network Administrator to fix this on a network – wide basis. This is recommended solutions.To put in place a temporary workaround perform the following step:

  1. Right – click “Start , click “Explore”, go to \winnt\system32\drivers\etc directory on the client computer.
  2. Open the hosts file in a text editor like Notepad.
  3. Insert the IP address and CMS server name in the HOSTS file.

The above steps allow the Universe Designer to connect to Business Objects Enterprise XI successfully.


Q. Program Object error while running

When scheduling the performance metrics or program objects in the Central Management Console, the following error message appears:  “The Program Object reported an error while running, but no error code was provided”

If – trace is added to command line of the program job server in the Central Configuration Manger, the logs contains the error message:

“trace message: procprogram helper: RExecHlepr::Execute() – Failed to run the command. err no=25”;

How can this be fixed?

A: The UNIX system does not have the RSH server running on the system. This issue has been fixed in MHF1. But after applying MHF1, to successfully schedule a performance metric refresh or program object, you also have to change the object settings.

To change the object settings do the following:

  1. Log on to CMC.
  2. Click Objects>Object Settings button>Program Objects tab.
  3. Select the radio button Schedule with the following operating system credentials but do not specify any username or password under it.

For the individual program object, do not specify any username or password on the Process>Logon page.


Q. BusObj & Oracel ADI

We just installed BusObj XI and were told that we can’t install the application along with Oracel ADI Application Desktop Integration. How do I proceed?

A: If you’re running Oracle applications integrator, you should not be running BOEXI on the same server. There are most – likely problems between the ways both systems handle similar tasks. If Business Objects is telling you that their software won’t work in tandem with ADI, I would definitely heed to their advice. Worst – case scenario, you’d cause irreparable damage to your ADI installation. Best case scenario, both applications are competing for system resources.


Q. Determine which report is running

 Is there a way to determine which reports are currently running?

A: Here is the URL entry you would put into your browser address: http://<server>/businessobjects/enterprose 115/webTools/websamples/query/1 orgonform.aspx?framework=&page=current

Once you hit this site you’ll be prompted for the administrator credentials. After passing through the login formalities you’ll be presented with an open area where you can type:

“select SI_ID,SI_NAME,SI_DESCRIPTION from CI_INFOOBJETS        where SI_SCHEDULE_STATUS = 0”

You can select whatever you like, you can include the Object ID, name and whatever description is available. Run that via Query Builder or build an application that utilizes the SDK and run it in that manner.


Q. Input file repository location change

 My input Repository is located in the standard Program Files\Business Objects\Business Objcest Enterprise 11.5. I initially installed and I placed it on the C: drive which has a limited space. Is it possible to move parts of this to another drive and then change a setting somewhere to reflect the changes?

A: During the process of installing BOE XI, there are no provisions for establishing the Input/Output FRS to an alternate location; however, this can be done prior to installation. Here are the steps:

  1. Establish a folder on the alternate location (i.e.D:\FileStore), then under d:\filestore establish three more sub-folders (Input, Output, Temp).
  2. Go to the CMC and download all the processes.
  3. Locate the original file store folder and copy items over to new area (ref step 1). 4
  4. Go the CMC:

(http://<server>/businessobjects/enterprose115/admin/en/admin.cwr), login as administrator than go to servers and locate the “Input.xxx” entry, click on it, and change the entry for root directory accordingly. Do likewise for the “Output.xxx” entry. Go back to the CCM and up all services.

Take not that the alternate location mentioned in step #1 can also be a UNC versus a local drive, however, when using a UNC, you will need to have administrative rights to the drive on the network. There are additional security impacts to consider when choosing this option.


Q. E-mail only when report contains data

I need to have a scheduled/run report only be e-mailed to users if it actually contains data. I thought perhaps I could use an event but I have no idea where to begin. What are the possible steps to do this?

A: Try the following steps:

  1. Schedule the report to some destination (folder).
  2. Check files size using a batch file (there are scripts you can find online)
  3. Once size is good (need trial and error to come up with a size number), batch file should copy that file to some folder, which could trigger the instance of a report to run with email destination.

Batch file can be scheduled on server or perhaps within BOXI. You also needs to create file based event.


Q. Pass ID filed in list of values

I have a table with three columns like this

      ID Name Salary

  1. Siva 100
  2. Raja 50
  3. Raja 40

I have prompted the users to select the name from the list of values.

User can see the list of Names like this:

Sive(1)

Raja(2)

Raja(3)

I want to pass the ID filed when they select name to the database. How can I pass ID field instead of Name?

A: When populating the pick list for the parameter you can select use description (it allows name, description or both) for the display and then the user will see the name. since you have used the id field, you can reference it in the record selection.


Q. Find jobs that are running now

How do I find a list of jobs that are running right now?

It tells me 4 jobs are running in CMC>Settings>Metrics and I want to find out which are these jobs, who submitted them, etc.

A: Open the XI launch pad and click at “Instance Manager” under Administration tools in the left side frame. Log into to this application and you will see the drop down which will give you the information you need.


Q. ODBC selection

Is it also possible for users when viewing a report through info view, be given the option to select an ODBC connection for the report they are trying to use? We want our users to select the database on the server which they want to run the report against.

A: You should use Business Views to allow users the option to select the data source through Info view. Business Views are one of the semantic layers available to BOE XI along with Universes. Business Views allow you to set up something called a Dynamic Data Connection. This allows you to dynamically change from one database to another dependent on a report parameter.


Q. Hiding Group Tree

 I have reports that are viewed from infoview but group tree shows up.

How will I hide the “Group Tree” in Business Objects Enterprise XI?

A: The only way this can be done is to open each report. Select “Report Options”, clear the check box from “Create Group Tree” and save back to Enterprise. The information for configuring BO Enterprise XI .Net to disable the “Group Tree” is as follows:

You need to configure the web.config on the box that has the Web Component Adapter (WCA).

To configure the .NET WCA, you need to edit the web.config file associated with the WCA.

This file is located in the following directory:

C:\Program Files\ Business Objects\ BusinessObjects Enterprisen \Web\Content \application

To configure web.config

  1. Stop your application server.
  2. Edit the web.config file by using a text editor such as Notepad.

The following entry will disable the “Group Tree”

<context-param>

<param-name>viewrpt.groupTreeGenerate</param-name>

<param-value>false</param-value>

<description>“true” or “false” value determining whether

a group tree will be generated.</description>

</context-param>

  1. Restart your application server.

      If you have more than one system with a WCA you must edit each of the files.

       For the JAVA WCA the process is as follows:

  1.     Stop your application server.
  2. Extract the web.xml file from the webcompadapter.war archive.
  3. Edit the file by using a text editor such as Notepad or vi.
  1. Reinsert the file into the WEB-INF directory in webcompadapter.war. To reinsert web.xml into WEB-INF using WinZip, right-click on the WEB-INF directory that contains your edited web.xml file and select “Add to Zip File…”. Adding the file in this way ensures that it is placed in the correct directory inside the archive.
  1. Restart your application server.

For the .NET, you have to set the value of key=“viewrpt.group TreeHide” to True and value of key=“viewrpt.group TreeGenerate” to False in the c:\program files \Business Objects BusinessObjects Enterprisen \Webcontent \ web.config file.


Q. Viewer Hyperlink from Infoview error

We are running BOE XI on a Windows Server 2003 box using IIS 6.0 the clients are all using Windows XP.

I have successfully used the hyperlink (Add place holder) in the “send to email” destination in Infoview’ to have an instance of a report mailed to users. We also use SSO. However, after a recent update (latest BOXI and Common XI update) the links no longer work. On clicking a link, the browser returns: “An error has occurred: An unknown error has occurred.”

Is there a known solution to this?

A: Here is the source of original openDocument.aspx. We had a similar problem and noticed that my openDocument.aspx was corrupted. Make a backup CPU and paste the following code in openDocument.aspx and see if it helps.

<%@ LANGUAGE=“JSCRIPT” CODEPAGE=65001 %>

<1%

Response.Expires = -1;

Response.ContentType = “text/html”;

Response.Charset = “UTF-8”;

%.>

<!–#include file=“tools/utils.aspx” -à

<%

var bFindCharset = true; //false: no guessing is done with charset for the incoming query string, use the one defined by sCharset variable

//true: will try to read an optional parameter &charset= to determine charset encoding

VarsForceCharset = “UTF-8”; //charset by default, change this to support legacy OpenDocument URLs not url-encoded with UTF-8

//empty string ““ would mean to use the default charset on this platform

var sCharset = new String(sForceCharset);

if (bFindCharset) {

var sCharsetTemp = ““ + Request.QueryString(“charset”);

if (sCharsetTemp != “undefined”) { //if the param exists it MUST have a valid

charset name value, otherwise the behavior is not certain…

sCharset = sCharsetTemp;

}

}

//switch to the corresponding codepage for reading query string parameters

//currently only a limited number of codepage is supported…

if (sCharset.toLowerCase() == “iso-8859-1”) Session.CodePage = 1252;

else if (sCharset.toLowerCase() == “shift-jis”) Session.CodePage = 932;

else if (sCharset.toLowerCase() == “iso-2o22-kr”) Session.CodePage = 949;

else if (sCharset.toLowerCase() == “gb2312”) Session.CodePage = 936;

else if (sCharset.toLowerCase() == “big5”) Session.CodePage = 950;

else Session.CodePage = 65001;

//openDocument.asp

//see spec bluecanal

////////////////////////////////////////////////////////////////////////// ///

//Description :

//Properties :

//////////////////////////////////////////////////////////////////////////

///

/* Here is the exhaustive list of supported query string parameter as defined in latest spec (CBo)

* sRepoType (legacy: RepoType)

* sRepo (specific CBo)

* sPath (specific CBo)

* sDocName (legacy: sDoc)

* sAlternateDocName (specific CBo)

* sType (legacy: sTyp, legacy values: “W”qy, “R”ep, “B”qy)

* slDType (specific CBo, can be CUID, GIRD, RUID, ParentlD, InfoObjectlD (default))

* iDocID

* sReportName (legacy: sReport ?)

* sPartContext (specific CBo)

* sReportPart (specific CBo)

* sReportMode

* slnstance (specific CBo) “lsM*, lsR*, 1sS” and lsC*

* sRefresh (legacy: Refresh,sForceRefresh)

* NAII

* sOutputFormat

* sViewer

* sWindow

* sMode

* Page (only legacy ?)

* sMode

* Page (only legacy ?)

* sKind (specific CM)

* token “ sf

* buttonrefresh

* buttonexport

* buttonprint

*/

/*

// From this list we define an array containing all authorized parameters.

//We removed the implicit parameters passed to IV (docname, id, repotype, doctype)

//and the parameter already handled by this page’s logic (ls- for prompts and sRefresh)

var stAutorizedParams = new Array(

// “sRepoType”, “RepoType”,

“sRepo”, “sPath”,

// “sDocName”, “sDoc”,

“sAlternateDocName”,

// “sType”, “sTyp”, // “slDType”,

// now the ID type for crystal is stored inside the id

// “iDocID”,

“sReportName”, “sReport”,

“sPartContext”,

“sReportPart”,

“sReportMode”,

“slnstance”, //

“lsM*”, “I R*”, “lsS*”, “lsC*”,

// “sRefresh”, “Refresh”, “sForceRefresh”,

“NAII”,

“sOutputFormat”,

“sViewer”,

“sWindow”, // is handled here but passed to viewer anyway (in case of the viewer wants to know it is opened in a window)

“sMode”,

// “sEntry”, // for future usage

// “sKind”, // “token”, “Page”,

“sf”,

“buttonrefresh”,

“buttonexport”,

“buttonprint”

);

*/

var stHandledParams = new Array(

“sRepoType”, “RepoType”,

“sDocName”,

“sDoc”, “sType”,

“slDType”, // now the ID type for crystal is stored inside the id

“iDocID”,

“sReportName”, “sReport”,

“sPartContext”,

“sReportPart”,

“sReportMode”,

“sInstance”,

// “lsM*”, “lar”, “IsS*”, “lsC*”,

// “sRefresh”, “Refresh”, “sForceRefresh”,

“NAII”,

“sOutputFormat”,

“sViewer”,

“sWindow”, // is handled here but passed to viewer anyway (in case of the viewer wants to know it is opened in a window)

“sMode”,

// “sEntry”, // for future usage

// “sKind”,

// “token”,

“Page”,

“sf’,

“buttonrefresh”,

“buttonexport”,

“buttonprint”

);

*/

var stHandledParams = new Array(

“sRepoType”, “RepoType”,

“sDocName”, “sDoc”,

“sType”, “sTyp”,

“slDType”, // now the ID type for crystal is stored inside the id

“iDocID”,

“lsM*”, “lsR*”, “IsS*”, “IsC*”,

“sRefresh”, “Refresh”, “sForceRefresh”,

“sEntry”, // for future usage

“sKind”,

“token”

);

//get the corresponding hashtable for faster lookup (+lowercase keys)

var htHandledParams = new Array(stHandledParams.length);

for (var ii = o ; ii < stHandledParams.length ; ii++) { htHandledParams[stHandledParams[ii].toLowerCase()] = “Y”;

}

//get parameters var sDocName = “” + Request.QueryString(“sDoc”); if(sDocName == “undefined” I I sDocName == “”) sDocName = “” +

Request.QueryString(“sDocName”);

if(sDocName == “undefined” I I sDocName == “”) sDocName = “untitled”;

//special CBo, Crystal uses different ID types. Read this value here

var slDType = “” + Request.QueryString(“slDType”); if (slDType ==

“undefined”) slDType = “”;

slDType = slDType.toLowerCase ();

var sDocID = “” + Request.QueryString(“iDocID”);

if(sDocID == “undefined” I I sDocID == “”) sDocID = “0”; //default

var iDocID = o;

if (slDType != “cuid”

&& slDType != “quid”

&& slDType != “mid”

&& slDType != “parentid”

&& strlsNumeric(sDocID)) { //this is not a crystal special ID type, but a normal numeric ID (BO or InfoObjectlD)

iDocID = sDocID – o;

sDocID = “” + iDocID;


Q. Define Business objects?

Business object can be considered as integrated analysis, reporting and query for the purpose of finding solution to some business professionals that can be helpful for them to retrieve data from the corporate databases in a direct manner from the desktop. This retrieved information can be presented and analyzed within a document that of business objects. Business objects can be helpful as an OLAP tool by the high level management as a major part of Decision Support Systems.


Q. Explain the pros of using business objects?

There are many advantages in making use of business objects and they are

  • User friendliness
  • Business terms that are familiar
  • Graphical interface
  •  Deployment of documents on an enterprise basis by making use of WebI
  • Dragging and dropping
  • Powerful reports for a lesser amount of time.

Q. List out the different products related with Business Objects?

There are various kinds of products related with business objects and they are

  • User module
  • Designer
  • Supervisor
  • Auditor
  • Set Analyzer
  • Info View
  • Business Objects – Software Development – Kit
  • Broadcast Agent

Q. Define Designer?

Designer is a module related with Business Objects IS used by the designers for creating and maintaining universes. Universes can be considered as semantic layer that can isolate the end users from the various issues that are technical and related with the structure of database. Universe designers has the possibility for distributing the universes to the end users after moving these as file through the system of files or can be done by exporting the files to the repository.


Q. What are the kinds of modes associated with designer and business objects?

There are especially two different kinds of modes associated with these platforms, they are

  • Enterprise mode
  • Workgroup mode

Q. List out the various kinds of methods related with multidimensional analysis that is inside business objects?

There are two different methods related with multidimensional analysis available inside BO and these methods are

  • Slice & Dice
  • Drill down

Q. List out the kinds of users associated with business objects?

There are various different kinds of users associated with business object, they are

  • General supervisor
  • Supervisor
  • Graphical Interface
  • Designer
  • Supervisor Designer
  • End User
  • Versatile User

Q. What are the various data sources available?

Business objects help you in accessing the data from variety of sources. You have the possibility of accessing data from RDBMS like oracle, MS SQL server and IBM DB2.


Q. Define the kinds of data providers?

There are various kinds of data providers available for the business objects and they are

  • Stored procedures
  • Queries over universe
  • Free hand – SQL
  • VBA procedures
  • SAP
  • OLAP servers
  • Personal data files

Q. Define drill mode?

This is a kind of analysis mode associated with business objects and helps in breaking down data as well as in viewing data from all the possible angles and the levels of detail for discovering the factor that has caused good – bad result.


Q. What is a personal connection?

Personal connection can be created only by a single user and it can’t be made used by others. The details regarding such a connection can be usually stored inside PDAC.LSI file.


Q. What is Shared connection?

This is a kind of connection that is usually made used by other user via a server which is shared one. The details regarding the connection can be stored within the SDAC>LSI file which can be found within the installation folder of the business objects.


Q. What is a secured connection?

Secured connection is a kind of connection that can be helpful in overcoming the various limitations associated with the former connections. The rights related with this kind of connection can be set over documents as well as objects. Universes can be brought inside central repository only by making use of secured connection. The parameters regarding these connection care usually saved inside CMS.


Q. Define custom hierarchies?

The custom hierarchies can be used for defining the universe for facilitating drill down that is customized and can happen between objects from different or same classes considering the user requirements.


Q. How can custom Hierarchies be created?

The custom hierarchies can be created by following the path tools ->hierarchies in BO designer.


Q. Define a context in the universe.

Context can be defined as the particular path of join between a specific group of joins or the tables for the purpose of a particular query. A particular object that can be found inside the column of a table, belonging to particular context is supposed to be compatible to all the various kinds of objects belonging to the same context. In the case of objects that are from the various kinds of context, different kinds of SQL can be generated, and the results can be merged inside micro cube. This is for making sure that there is no incorrect result associated with a loop or any other kind of issue related with join path.


Q. How can Contexts be created?

Context can be created by making use of feature associated with context or by manual procedures. The context are usually created by making use of logical calculation or based on the business requirements. The detect context may not be much useful in this case and so it should be done by making use of manual procedure.


Q. Define a Chasm Trap?

Chasm trap is a condition that arises when the values inside the fact table get inflated at the time of measuring the values from two different fact tables by considering the dimensions inside dimension table.


Q. How can Chasm Trap be solved?

Chasm trap should be solved by making use of two different methods.

In the case of SQL parameters in universe, the option generates numerous queries for each and every measure that needs to be chosen. This helps in generating SQL statement for every measure and gives the correct results.

Another approach is to include two joints in different contexts, where the problem will get solved by generating two synchronized queries.


Q. What are the utilities of Derived tables?

Using SQL queries from the database level, Derived tables are created in the universe. The columns of the derived table will be the columns selected in the query. Derived table can be used in the complex calculations which are difficult to be achieved in the report levels. Using a dblink, tables can be accessed from a different schema, is another use of derived tables.


Q. Define User Objects?

User objects is a universe of classes and objects which is created by the universe designer. Once the objects consisted in the universe does not matches your necessities, then the user can create his own objects called User objects.


Q. List out the @functions?

The @functions are:

  • @Aggregate_Aware
  • @Script
  • @Select
  • @Variable
  • @where
  • @Prompt

Q. Describe the uses of @functions?

The @prompt function asks the end user to enter any specific values. The Visual Basics for applications macro’s results will be recovered by using @Script function. An existing statements SELECT statement can be re-used by using @Select function. For a name or variable, the value assigned to it will be referenced using @Variable. An existing object’s where clause can be re-used by @Where functions.


Q. How many Domains are there in Business Objects? What are they?

There are three Domains in Business Objects and they are:

  • Security
  • Document
  • Universe

Q. How to access one derived table from another?

Using @Derived_table function, we can access one derived table from another. The syntax is as ,

@derived_table(the derived table name)


Q. Define Slice in Business Objects?

Slice works with the master or detail reports and it is used to rename, reset and delete the blocks.


Q. Differentiate Dice and Slice?

Slice:       It renames, reset and delete the  blocks. It works with the master/detail report.

Dice:       It displays the data and removes the data.  It turns the crosstabs and tables into c harts and vice versa.


Q. What is a master/detail report?

Large blocks of data can be split into sections by using master/detail report. Repeating values can be avoided by using this and also the subtotals can be displayed.


Q. Define a class?

The class can be defined as a collection of objects in a universe. Subclasses can be derived from classes and using these classes and the subclasses, we can create a hierarchy.


Q. How many approaches are there for linking universes?

There are three approaches available for linking the universes and they are:

  The Kernal approach.

 The Master approach.

  The Component approach.


Q. Define data mining?

Data mining is the process through which you can extract the required details from the database, which can be made used for making conclusions.


Q. List out the available Drill modes?

Drill modes helps to analyze data from different angles and different state of details. The available Drill modes are;

  • Drill up.
  • Drill down.
  • Drill by.
  • Drill through.

Q. Define aggregate_awarness?

when we have a same fact tables in different grains,we use aggregate_awarness function to define one object for measures in fact tables.the syntax is as,

@aggregate_aware(highest_level.lower level)


Q. Define the term fan trap?

A one to many join links to a table which respond with another one to many join links is called fan trap.


Q. Define Data provider?

The query or the data source is called as the data provider.


Q. When we use a context?

Context is created when the dimension objects are present in one or both fact tables.


Q. What is a standard mode?

Only the users within the group can be accessed in this mode.


Q. List out the schemas supported by Business Objects Designer?

There are five different schemas supported by Business Objects designer and they are:

  • star schema.
  • Snowflake schema
  • Multistar schema
  • Normalized production schema.
  • Data warehouse with aggregates.

Q. Define Channel?

Channel is a website with ‘push’ technology. It is to make the users know up-to-date information. Each and every Business Objects channel will be associated with a broadcast agent, who can have several channels.


Q. What are the restrictions over user objects?

User objects are not shared with other end users. It is stored in a specific user object definition file. So if any end-user tries to refresh or edit the query contains another user’s user object, it will be automatically cleaned and removed.


Q. List out the tasks of universe designer?

The tasks consists of,

  • Designing the universe.
  • Creating the universe.
  •  Maintaining the universe.
  •  Distributing the universe

Q. List out the main components of designer interface?

The main components it consists of are:

  •  The table browser.
  •  The structure pane.
  •  The universe pane.

Q. What you meant by report bursting?

To maintain the version documents according to the user profiles, we use report bursting.


Q. Define WEBI?

Web intelligence is a solution that is specialized in supporting the decisions related with queries, reports and analysis.


Q. Abbreviation of DSS is?

Decision Support Systems.


Q. Define strategies?

To automatically extract structural information from database or  from a flat file we use a script known as strategy.


Q. Give a definition for universe?

It is a set of objects and classes.these objects and clss es will be intended for an application or a group of users.


Q. Define secured mode?

Secured mode restrict the access of specific users over specific commands.


Q. What is Drill by?

Using drill by we can move to other hierarchy and analyze the other data, which belongs to another hierarchy.


Q. What is a list of values?

It is file which contains the data values associated with an object.


Q. What are the differences between Personal, Shared and Secured connections?

  • A Personal connection is created by one user and cannot be used by other users. The connection details are stored in PDAC.LSI file.
  • A shared connection can be used by other users through a shared server. The connection details are stored in SDAC.LSI file in the Business Objects installation folder. However one cannot set rights and securities on objects in a shared connection. Neither can a Universe to exported to repository using a shared connection.
  • A secured connection overcomes these limitations. Through it rights can be set on objects and documents. Universes can be exported to the central repository only through a secured connection. The connection parameters in this case are saved in the CMS.

Q. What are custom hierarchies? How can they be created?

Custom Hierarchies are defined in a universe in order to facilitate custom drill down between objects from same or different classes according to user requirement. They can be created from Tools -> Hierarchies in the BO Designer.

Screenshot_4


Q. What is a context in universe? How are they created?

In an universe, a context defines a particular join path between tables or a specific group of joins for a particular query. Any objects created on a table column which belong to specific contexts is naturally compatible with all other objects from same contexts. When objects from two or more contexts are used, separate SQL is generated and results are then merged in a micro cube. This makes sure that no incorrect result is generated due to loop or any other join path issue.

 Context, give the context name and select the joins that should be present in the context. For a universe contexts should be created in a way that all joins(except shortcut joins) fall in at least one contextàContexts may be created using detect contexts feature or manually. They are generally created based on logical calculation and business requirements, hence the detect context method is not very effective. To manually create a context Go to Insert

Screenshot_5


Q. What is a chasm trap? How can it be solved?

In a dimensional schema based universe, we may have one dimension table joined with two fact tables such that both of them are one-to-many joins(F >- D -<F ). In such a scenario, if we drag a measure each from both the fact tables along with dimensions from dimension table, the value of the measures in the fact tables are inflated. This condition is known as chasm trap.

A chasm trap can be solved using 2 methods:

In the universe SQL parameters, the option, generate multiple queries for each measure needs to be selected. This will generate separate SQL statement for each measure and give the correct results. However, this method would not work, if a dimension (for example date) occurs multiple times in the result set due to chasm trap.

Screenshot_6

A better approach is to put the two joins in two different contexts. This will generate two synchronized queries, thus solving the problem.


Q. What is a fan trap? How can it be solved?

In a universe structure, we may have 3 tables joined in such a way that, the 1st table has a one to many join with the 2nd table, which in turn has a one to many join with the 3rd table(A -< B -< C). In such a scenario, if a measure is present in the 2nd table and it is dragged along with any dimension from the 3rd table, the value of the measure will be inflated. Such a condition is known as a fan trap.

A fan trap is solved by creating an alias of the 2nd table and defining contexts such that, the normal table is joined only with the first table, while the alias is joined with both the 1st and the 3rd table. We would take 2nd table’s measure only from the normal table and other dimensions of the 2nd table from the alias table


Q. Should we encounter fan traps in a data warehouse scenario? If so, then how?

If a data warehouse is based on the Kimball model, it is a dimensional schema. In a universe built on that DW, for a fan trap to occur in such a schema, we require direct join between two fact tables, which is against the principles of dimensional modeling.

On the other hand in a data warehouse based on Inmon model, it is a normalized schema. Though in such a case, universes are generally designed on Data Marts, which are dimensional schemas (where fan traps should not occur). However, if a universe is built on the DW (for the purpose of operational reporting), then a fan trap can occur in that universe


Q. What is aggregate awareness? What is its advantage?

Aggregate awareness function is used in scenarios where we have same fact tables in different grains. Using this function we can define only one object for the measures in the fact tables as

@aggregate_aware(highest_level,lower level)

We also need to define dimensions for associated granularities and define their incompatibilities with the corresponding facts through the aggregate navigation. This is accesses through Tools -> Aggregate Navigation

Screenshot_7

The advantage is that in a Webi or Deski report when one drags the measure object with the dimension object of a particular granularity, the measure column from the Fact table of the corresponding granularity is selected in the BO default Query. If we did not use aggregate awareness, we would need to define separate objects for each of the fact tables which would be difficult to understand from a user’s point of view.


Q. What are the 2 different approaches of implementing aggregate awareness? Which one is better in terms of performance?

The 2 approaches are as follows:

Aggregate tables are built in the database, which contains the dimension fields(not foreign keys) along with the aggregated measures. In the universe they are present as standalone tables, i.e they are not joined with any dimensions. Aggregate aware function is used to define both the dimensions and measures of such tables.

No aggregate tables are built in the database level. They contain the normal fact table at different granularities. In the universe, aggregate aware is used only to define the measures and aggregate incompatibility is set accordingly.

The first approach is better in terms of performance, since for the higher levels of aggregation, all the information is obtained for a single table. However, a large scale implementation of this approach in a dimensional schema is difficult. In most BI projects, the second approach is preferred


Q. What is a derived table? What is its utility?

A derived table is a table created in the universe using an SQL Query from database level. The columns selected in the query become the columns of the derived table. A derived table can be used for complex calculations, which are difficult to achieve in report level. Such calculations are done in query level itself.

Another use of derived table can be to access tables from a different schema through a dblink.

Screenshot_8


Q. How is a derived table different from a view? Which one is a preferred solution?

A derived table is present only in the universe level, while a view is created in data base level. Generally views are preferred since, in its case the onus of calculation remains on the database and it does not load the BO server. However, in cases where developers do not have access to database, derived table is the only solution.


Q. How can we access one derived table from another?

We can access one derived table from another using the function @derived_table. The syntax is:

@derived_table(Derived Table Name)


Q. What is Index Awareness? How is it implemented?

Index awareness is a property of the universe, by means of which values in the filter conditions of the queries/data providers built from the universe, are substituted by their corresponding indexes or surrogate keys. Generally the values in the filter condition come from a dimension table (like country etc) and we require a join with the fact table to get this value.

However, if index awareness is implemented, this join is eliminated and the query filter takes the equivalent index value from the fact table itself.

To implement index awareness, one needs to identify the dimension fields which are to be used in query filter. In the Edit Properties of the object, we get a Keys tab. In this tab, the source primary key of the table from which the object is derived needs to be defined as primary key, and the database columns for all foreign key relationships with the other tables also need to be defined here. Once this is done for all required dimensions, the universe will become index aware

Screenshot_9


Q. How can we use index awareness in universe prompt?

An extended prompt syntax is available since BO 3.1. It is as follows

@Prompt( ’message’, ‘type’, [lov],

mono/multi,

free/constrained/primary_key,

persistent/not_persistent,

{‘default value’:’default key’} )

If the indexes for the dimension object is defined in the universe and we define the prompt condition on the object with the clause ‘primary key’ in place of free or constrained, then the filter condition will convert the prompt values entered to their corresponding indexes and eliminate the join with the dimension table


0 Responses on Business Objects Interview Questions"

Leave a Message

Your email address will not be published. Required fields are marked *

Copy Rights Reserved © Mindmajix.com All rights reserved. Disclaimer.
Course Adviser

Fill your details, course adviser will reach you.