BO FAQ BUSINESS OBJECTS Frequently Asked Questions Prepared by Raj Date: July 12th, 2011 Version: BO XI 3.x Note: This material is prepared by referring to many websites, blog sites of many BO gurus and material from various sources. I would like to thank all for their contribution. I just gathered and kept here for the sole purpose of helping BO newbie’s and whoever attending interviews to have a quick glance of the subject. 1|Page BO FAQ 2|Page BO FAQ Chapter 1: Data warehousing & BO Concepts What is Data warehouse? Ans. A Data warehouse is a Subject-oriented, Integrated, Time-variant and Non-volatile collection of data in support of management‘s decision making process. 1) Subject-Oriented: A data warehouse can be used to analyze a particular subject area. For example, "sales" can be a particular subject. Integrated: A data warehouse integrates data from multiple data sources (transactional systems - OLTP). For example, source A and source B may have different ways of identifying a product, but in a data warehouse, there will be only a single way of identifying a product. Time-Variant: Historical data is kept in a data warehouse. For example, one can retrieve data from 3 months, 6 months, 12 months, or even older data from a data warehouse. Non-volatile: Once data is in the data warehouse, it will not change. Only inserts are done to data warehouse and No updates. So, historical data in a data warehouse should never be altered. What is Data mart? Ans. Data mart is a subset of a Data warehouse. 2) What is Rapid Mart? Ans. It uses pre-packaged data marts for SAP, Oracle, PeopleSoft and Siebel applications to accelerate the delivery of analytical data. 3) What is the difference between OLTP and OLAP? Ans. OLTP stands for On Line Transaction Processing which deals with day-to-day transactions, stores the current data in the database which is normalized as updates are very frequent and deals with the small amount of data. 4) OLAP stands for On Line Analytical Processing stores the historical data based on OLTP source and the database is De-normalized as frequent updates will not happen and deals with bulk amount of data to support trend analysis and future predictions. What are the types of Dimensions? Ans. The types of dimensions are: Confirmed Dimension Junk Dimension De-generate Dimension Role-playing Dimension 5) What is Confirmed Dimension? Ans. Dimension which is shared by all fact tables or shared across different data marts is called as Confirmed dimension. 6) 3|Page BO FAQ Example: The date dimension table connected to the sales facts is identical to the date dimension connected to the inventory facts. What is Junk Dimension? Ans. It is a dimension table consisting of attributes that does not belong to the fact table 7) or any of the existing dimension tables. These attributes are usually text or flags with yes/no or true/false indicators. What is Degenerate Dimension? Ans. It is a fact table primary key and represents the unique identifier of the parent. It has no attributes and doesn’t join to an actual dimension table. Example: Invoice/Tran number. 8) What are Degenerated Objects? Ans. Objects created using SQL queries or stored procedures called Degenerated Objects. 9) What is Role playing Dimension? Ans. Dimensions which are used in multiple applications within the same database. For example a "Date" dimension can be used for "Date of Sale", as well as "Date of Delivery", or "Date of Hire". This is often referred to as a "role-playing dimension". 10) What is Casual Dimension? Ans. Dimension which will not change the fundamental grain of the fact table is called as 11) casual dimension. Example: Gender - Male, Female. What are slowly changing dimensions? Ans : Slowly Changing Dimensions are basically those dimensions whose key value will remain static but description might change over the period of time. For example, the product id in companies, product line might remain the same, but the description might change from time to time. 12) What are the types of slowly changing dimension (SCD)? Ans. There are 3 types of SCD. Type 1: History of dimension is not stored in the dimension table. No trace of the old record exists 13) Type 2: A new record is added into the customer dimension table for maintaining history whenever the attributes of a dimension is changed. Type 3: The original record is modified to reflect the change of dimension attribute. Partial history is maintained. 4|Page BO FAQ What is MOLAP? (Multidimensional) Ans. In MOLAP data is stored in multidimensional cube. The data can be retrieved fast and slicing and dicing operation is optimal and can perform complex calculations but limited data can be handled. 14) What is ROLAP? (Relational) Ans. In ROLAP data is stored in relational database. Can handle large amount of data but is limited by SQL functionalities and performance can be slow. 15) What is HOLAP? Ans. It is the combination of MOLAP and ROLAP. For summary type information, it uses the cube technology for fast performance and when detail information is needed, it can drill through from the cube into underlying relational data. 16) What is Dimension Modeling? Ans. Dimensional modeling is a logical design technique to present the data in a standard framework to allow for high-performance access. It is inherently dimensional and uses the relational model with some restrictions. Every dimensional model is composed of one table with a multipart key called the fact table and a set of smaller tables called dimension tables. Each dimension table has a single-part primary key that corresponds exactly to one of the components of the multipart key in the fact table. 17) What is Fact table? Ans. It is a table which contains two types of columns. One that contain numeric facts (measurements) and other column have foreign keys to dimension tables. A fact table contains either detail-level facts or facts that have been aggregated (Summary tables). 18) What is Dimension table? Ans. It is a table which contains further information about an attribute in a fact table. A foreign key of a fact table references the primary key in a dimension table in a many-toone relationship. 19) What are the different measure (fact) types? Ans. Additive: Measures that can be added across all dimensions. Example - Sales Semi-Additive: Measures that can be added across some dimensions and not across others. Example: Inventory level, where you cannot tell what a level means simply by looking at it. Non-Additive: Measures that cannot be added across any dimension. Example – Average 20) 5|Page BO FAQ What is ODS (Operational Data Store)? Ans. An operational data store (ODS) is an integrated database, source includes legacy systems and it contains current or near term data, means data is not static. An ODS may contain 30 to 60 days of information, while a data warehouse typically contains years of data and data is static. 21) What is a Star schema? Ans. A typical star schema has a completely de-normalized dimension and fact tables whose Entity-Relationship (ER) diagram looks like a star. Dimensions have Primary key and Fact table have foreign keys referencing dimension table primary keys. A star schema can have any number of dimension tables. The crow's feet at the end of the links connecting the tables indicate a many-to-one relationship between the fact table and each dimension table. 22) What is a Snowflake schema? Ans. In a snowflake schema one or more dimension tables are partially or completely normalized. A snowflake schema can have any number of dimensions and each dimension can have any number of levels. The following figure shows a snowflake Schema. 23) 6|Page BO FAQ What is the difference between Star and Snow flake schema? Ans. STAR SCHEMA: De-Normalized Data Structure, Category wise Single Dimension Table, More data dependency and redundancy, No need to use complicated join, Query Results Faster, No Parent Table, and Simple DB Structure. SNOWFLAKE SCHEMA: Normalized Data Structure, Dimension table split into many pieces, less data dependency and No redundancy, Complicated Join, Some delay in Query Processing, It May contain Parent Table, Complicated DB Structure. 24) What is the use of AFD? Where it can be stored? Ans. AFD stands for Automatic File Distributor. It is used to create dashboards. It can be stored in repository, corporate or personal. 25) What is Data Integrator (BODI)? Ans. Data Integrator is a data movement and integration tool and has the capability of Extracting, Transforming and Loading data from multiple sources into a target database or data warehouse. 26) What is Data Federator? Ans. It provides federated query capabilities that can accelerate deployment performance. It creates a virtual view of all data sources and allows a single BO universe or crystal reports to map to multiple sources and optimally federates (Integrates) queries against individual sources directly. 27) Are data mart and data warehouse normalized or de-normalized? Can both exist in same tier? Ans. Data in Data mart and Data warehouse is de normalized and optimized for OLAP systems. As data mart is the subset of data warehouse both can exist in same tier and it supports a particular business unit. 28) Can you explain BO architecture? Ans. BO is a 5 tier architecture consisting of: Client tier Application tier Intelligence tier Processing tier Data tier 29) 7|Page BO FAQ Client tier: There are two types of clients. a) Windows based clients – These are also called as Thick clients and needs to be installed on your machine to work on it. Example: Central Configuration Manager, Designer, Web Intelligence Rich Client, Desktop Intelligence, Report Conversion Tool, etc. b) Web based clients – These are also called as Thin clients and are accessed by any web browser. Example: Infoview, Web Intelligence, Central Management Console (CMC). Application tier: BO servers will be hosted either in JAVA application or .NET application. Intelligence tier: It has four servers. 8|Page BO FAQ a) Central management Server - It is a primary server which provide services for all other servers in the BI platform including management of Security Objects Servers Auditing b) Event Servers - It is a responsible for monitoring file based events, and notifying the CMS of any events occurred. c) Input/Output File Repository Server - It is a responsible for the creation of file system objects, such as exported reports, and imported files in non-native formats. d) Cache Server - It is used to store previous run activities of report view requests and avoids accessing the database each time a report is requested, thus accelerates viewing performance and reduces network traffic. Processing tier: It is the only tier that directly interacts with the reporting database and accesses the data tier and generates reports for clients. The main servers include: Job servers Processing servers Report Application server Multi-Dimensional Analysis server Dashboard and Analytics servers Data tier: It is made up of the data sources that contain the information used in the reports and documents managed by BO enterprise system, and supports wide range of corporate databases. The Connection server is responsible for handling connection and interaction with the various data sources. It supports relational databases (Oracle, MySQL, Microsoft SQL Server, DB2, Sybase) as well as OLAP (SAP BW, Microsoft Analysis Services, Hyperion Essbase). What are the different authentication modes you know? Ans. Version 3.0 supports below authentication: Enterprise Windows NT Windows AD LDAP (Light weight Data Access Protocol) which will be mapped in CMC. 30) What is Semantic layer? Ans. It is a business transaction layer between the database and reports. The semantic layer in BO is called as Universe. 31) 9|Page BO FAQ As many business rules will be applied on database, these rules generate the SQL and if two users ask for the same information, these users will get same result. It gives the users independence on the technology as just by dragging objects the query will be modified. It is an extra layer and is not free. It has to be created, maintained and managed. It must be kept in sync with any database changes that occur. It could connect to only 1 database at a time. What is meant by ZABO? Ans. ZABO stands for Zero Administration Business Objects which uses the hardware resources of the client machine for application level processing and communicates through the protocol defined for the browser to use the server resources for processing External requests (like running a database Query, creating a data provider to access data.) 32) 10 | P a g e BO FAQ 11 | P a g e BO FAQ Chapter 2: Designer What are the difference between BO XI R2 and 3.0? Ans. BO XI 3.0 supports the following features which are not supported in XI R2. These are: Smart measure: A measure can be called as a smart measure in the universe when its data aggregated in a way not supported by WEBI. A smart measure has projection function set to “Database delegated” on the properties tab of object properties. 1) Optional prompts: In WEBI you can ignore optional prompts by not specifying any value and prompts does not apply a filter on the data. ForceMerge function: With this WEBI function you can calculate measures for merged dimensions and is similar to Multicube function in DESKI. Data tracking: WEBI has the feature to track data changes by highlighting the changed data and displays the previous value of a dimension or measure along with its current value. 12 | P a g e BO FAQ It highlights the changed data according to parameters you set. In the option Auto-update, the current data becomes the reference data after each data refresh and the other option is “use the current data as referenced data” the report always show the difference between the most recent data and this fixed reference data. Multilingual support: From the same report, you can decide in which available language you want to view the report’s metadata and prompts. Using Translation manager you can add translations to the universe on which the report is created or translate the report itself. Once the document is translated, it is published and available to users in their preferred viewing language. Note: Data is dependent on database source cannot be translated. Document linking: Using WEBI you can create links to other WEBI documents, to web sites, or to any resource accessible from a WEBI report using a simple user interface. From WEBI you can even pass data to linked resource. Stored Procedures: In Designer, you can create a universe based on one or more existing stored procedures. How can you optimize a Universe? Ans. Query time can be shortened by optimizing a universe. There are several ways to optimize a universe. Optimizing the Array fetch parameter in the Universe parameters Allocating weight to each table Using shortcut joins Creating and using aggregate tables in database 2) Optimizing the Array fetch parameter The array fetch parameter allows you to set maximum number of rows that are permitted in a fetch procedure and determines the packet size on the network. For example, if the array fetch is set as 20 and you plan to retrieve 40 rows, then two fetches will be executed to retrieve the data. Some data sources do NOT allow to modify the fetch size, in such cases all rows will be return in single FETCH. If you want to reteive binary long-objects (BLOB) set FETCH size as 1. If you have a network that allows you to send a large array fetch, then you can set a new larger value. This value will speed up the FETCH procedure and reduce query processing time. Values can be set from 1 to 999. Allocating table weights Table weight is a measure of how many rows are there in a table. By default BO sorts the table from lighter to heavier tables and this determines the table order in the FROM clause of SQL statement. 13 | P a g e BO FAQ If you are using Oracle database, you can optimize the SQL by reversing the order that BO sorts the table. To do this we need to modify the oracle .PRM file by changing parameter REVERSE_TABLE_WEIGHT from ‘Y’ to ‘N’ (Default – Y ). By doing this BO forces to sort the tables from those with most rows to those with least rows. Path of oracle.PRM file => <INSTDIR>\dataAccess\RDBMS\connectionServer\oracle\oracle.prm Restart Designer to apply the changes to the file. In Designer we can manually change the number of rows for any table. To view, select View menu => Number of rows in tables. To modify Open a universe in designer, Right click the relevant table. Select number of rows in table from contextual menu. A dialog box appears. Select the Modify manually tables row count radio button. A text box appears. Type a number in the text box. This is the number of rows that you want to use for the table. Click ok and save the universe. Using short cut joins A short cut is an alternate path between two tables. Short cut join used to reduce number of tables that are used in a query. Using Aggregate Awareness The ability of a universe to make use of Aggregate tables to optimize SQL query is called Aggregate Awareness. These are the tables which contain pre-calculated data. You can use @Aggregare_Aware function in the select statement for an object which directs SQL query to run against Aggregate tables rather than on base tables. Using Aggregate tables speeds up the execution of query and thus improves the performance. Setting up aggregate awareness Build the Objects 1. Identify all the possible definitions (table/column combinations) of the objects. 2. Arrange the objects by level of aggregation. 3. Build the objects using the @Aggregate_Awareness function. Specify the incompatible objects ( Tools- Aggregate Navigation ) 1. Build an objects/aggregate tables matrix. 2. For the first aggregate table, decide whether each object is either: - at the same level of aggregation or higher (compatible) - at a lower level of aggregation (incompatible) 3. Check only the boxes of objects that are incompatible for that table. 4. Repeat the steps for the remaining aggregate tables. Define any necessary contexts 1. Define one context per level of aggregation. 14 | P a g e BO FAQ Test the results 1. Run several queries. 2. Compare the results. Can you please clarify the difference between compatible and incompatible objects? When we will use these two? Ans. When you are defining Aggregate tables in Universe design, you need to create hierarchies for aggregated objects, for that you need to make the relative objects incompatible (the objects which are of lower level of aggregation -- not of hierarchy). If you have Year, Quarter, Month, Day as a hierarchy, while aggregation, you need to define as follows Year - Quarter, Month, Day Compatibles Quarter - Month, Day Compatibles, Year Non-compatible Month - Day Compatible, Year, Quarter Non-compatible 3) How can you set access restrictions on a universe? Ans. Access restrictions that apply to a user group are defined in a restriction. Universe security is managed at two levels: CMS o From the Central Management Console, you can set what universes Users can access and depending on the rights defined for a user group, you can restrict viewing, editing, deleting and other actions in a universe. Universe o You can define restrictions for users allowed to use a universe. It can be Connection Query controls SQL generation option Object access Row access Alternate table access 4) How do you set Row access restriction? Ans. Tools => Manage Security => Manage Access Restrictions Click New => Click Rows tab => Click Add Click Browse button next to Table box Click table name and click ok Click Browse button next to Where clause box Give condition => OK => OK . 5) 15 | P a g e BO FAQ To view the restrictions applied to all users and groups, select Tools => Preview security restrictions, click user account name in the list => Preview. Parameters and options that appear in red are those that have been modified and apply specifically to the restriction. What are Linked universes? Ans. Linked universes share the common components such as Parameters, classes, objects or joins. When you link two universes, one universe has the role of core universe the other has a role of derived universe. When changes are made in core universe, they are automatically propagated to derived universe. Core universe is a universe to which other universes are linked. Derived universe is a universe that contains a link to a core universe. If the linked core universe is a Kernel universe, then components can be added to derived universe. If the linked core universe is a master universe, then the derived universe contains all the core universe components. Class and objects are not added to the derived universe but they can be hidden in the derived universe depending on the user needs of the target audience. 6) Advantages: Maintenance will be easy because when you modify a component in the core universe, designer will automatically reflect the changes in all the derived universes. No need to re-create common components each time you create a new universe as often used components can be kept in a core universe. 16 | P a g e BO FAQ Requirements: Core universe and derived universe use the same data account or database. Using the same connection for both universes makes managing the universes easier, but this can be changed at any time. Core and derived universes must be in same repository. Core universe was exported and re-imported at least once. Derived universe does not need to have been exported before creating a link. Exported derived universes are located in the same universe domain as the core universe You have the authorization to link the given universe. Restrictions: You can use only one level of linking. You cannot create derived universe from a universe which is itself derived. All classes and objects are unique in both the universes else conflict will occur. Only the table schema, classes and objects of the core universe are available in the derived universe. Context must be re-detected in the derived universe. The two universe structures must allow joins to be created between a table in one universe to a table in the other universe else Cartesian product will occur. List of values associated with a core universe are not saved when you export a derived universe with the core universe structure. To save LOV’s associated with core universe: Create new objects using the same definition Assign the new objects the same LOV’s as the core objects Hide these new objects. The hidden objects serve the function of holding the LOV’s so that they can be exported and imported with the derived universe. You can log into designer as a different user without quitting your work session. Tools => Login As. Give user name and password. (If there are any open universes, designer closes them automatically) Tools => Change password ( to change password). 7) What is cardinality and what happens if Cardinalities are not resolved? 17 | P a g e BO FAQ Ans. Cardinality means a relationship between two tables based on a join. Means how many rows of one table will match with rows in other tables when these tables are joined. If Cardinalities are not specified between the tables, then We get more results at report level than the actual result, like a Cartesian product. We can’t detect the Loops & Traps which are mainly detected by the CARDINALITIES option. What is Context? Ans. Context is a list of joins that defines a specific path for query and is used for solving loops and traps. Main disadvantage is that it exposes the end users to the database structure and they are forced to decide which Context to use to run their query. 8) 9) How to test the Context? Create a query which includes objects which are only in one context : BO should be able to get the correct result by determining the context. Create a query which includes objects from both the contexts: BO should generate two queries and then unions it. Create a query which includes object which are common two both the context: BO should prompt for contexts to be used. What is Alias? Ans. Alias used for solving loops and traps by using same table with different name in the query. 10) 18 | P a g e BO FAQ What is loop and how do you resolve them? Ans. Loop is a closed circular path among the joined tables. If the loop is formed between 1 fact table and 2 (or more) dimension tables, then create an Alias for existing dimension table. If the loop formed contains more than 1 fact table, then go for Context. 11) If loops are not resolved and report is run following error might come. Error: Incompatible combination of objects What is Chasm trap? Ans. It is a type of join path between three tables when there are two “many to one” joins converging on a single table, and there is no context in place that separates the converging join paths. Because of Chasm trap we get incorrect results i.e., Cartesian product will occur. 12) Resolving a Chasm trap: When there are dimension objects in one or both fact tables, use context. When there are measure objects defined for both fact tables, use the universe parameter option SQL “Multiple SQL statements for each measure”. What is Fan trap? Ans. It is a type of join path between three tables when a “one to many” join links a table which in turn kinked by another “one to many” join. Because of Fan trap we get incorrect results i.e., Cartesian product will occur. 13) Resolving a Fan trap: Create an alias for the table that is producing the multiplied aggregation. Create a join between the original table and Alias table Create the context OR When there are only measure objects defined for both the tables , use the universe parameter option SQL “Multiple SQL statements for each measure”. What are the Derived Tables and its use? Ans. It is defined by an SQL query at the universe level that can be used as a logical table in Designer. Sometimes it not possible to create dimension/measure directly in universe in that case we use derived tables. E.g. First time users, union queries etc. Derived tables have the following advantages: • Reduced amount of data returned to the document for analysis. You can include complex calculations and functions in a derived table. These operations are performed before the result set is returned to a document, which saves time and reduces the need for complex analysis of large amounts of data at the report level. 14) 15) What is the difference between Conditions and Filters? 19 | P a g e BO FAQ Ans. The major difference between query conditions and document filters is that a condition is applied to the query and limits the data retrieved from the database, whereas the filter is applied to the data in the document to hide information and display only the information that you want to appear. What is a Join? What are different types of Join? Ans. As we retrieve data from more than 1 table, we apply join between the tables. Different types of Joins are: Inner join Left outer join Right outer join Full outer join Theta join Equi join Self join 16) What are different types of Objects? Ans. Dimension object - Dimension is a main analysis object in a query which maps to one or more key columns in a database. Dimension objects can be organized hierarchically within a class to make default hierarchies for drill-down operations. For example, time can be a dimension with year-month-day hierarchy. Detail Object - Detail object provides descriptive detail data about a dimension (maps to one or more columns or functions). For example, a month name in time dimension can be a detail of month index. Measure - Object provides metrics (aggregated numbers) by which dimensions are compared. 17) What are concatenated Objects in a Universe? Ans. A concatenated object is an object you create by combining two existing objects. For example, let’s say that you wish to create an object called Full Name, which is a concatenation of the objects Last Name and First Name in the Customer class. Example: Full Name = [First Name] + [Last Name] If Month value is 1 and Year value is 2011 then MonthYear = 12011 (Both variables are number datatype) =FormatNumber([Month];”0”) + FormatNumber([Year];”0”) 18) What is Class? Ans. Class is a logical grouping of objects within a universe and can be divided hierarchically into subclasses and represents as folders on a tree hierarchy in the universe pane. 19) How do you group measure objects? Ans. Create a new variable and use If..Then..Else in the formula. Example: =If (<Usage Billing> < 5000) Then "Low" Else If (<Usage Billing> > 5000 and <Usage Billing> < 10000) Then "Medium" Else "High" 20) 20 | P a g e BO FAQ Is it possible to join more than one universe in Business Objects? If it is so how is that possible? Ans. Yes it is possible. We can link the two universes by using add link option which is available in parameters (option seen in tool bar file menu). 21) What is category? Ans. Category is logical way of structuring or organizing the content (BO document). 22) What are the different data providers can be used to create report? Ans. Universe, Personal data files such as Text files(.asc, .prn,.txt,.csv),Excel spreadsheet (.xls),Database files(.dbf), xml files(.xml), Free-hand SQL, Stored Procedures, VB, etc. 23) What is the delimiter can be used for text files? Ans. Tabulation, Space, or Character. 24) How do you combine data from different data providers? Ans. Dimension objects from one data provider are linked to dimension objects that contain the same values in a different data provider. 25) 26) What are the limitations for Combined queries? Queries must contain the same number of objects Objects must be of the same type( i.e. character, date, number) there can be upto eight queries in a combined query when using minus, the second query is subtracted from the first How can you check the integrity of universe? Ans. By making use of Check integrity button. 27) Is it possible to create reports from different universes in one document? Ans. Yes it is possible to use different universe to generate a single report....multiple data providers. OR you can link other universes to existing universe and then develop the report. 28) What are Universe parameters? Ans. Definition, Summary, Strategies, Controls, SQL, Links and Parameters . 29) Why do we need metrics and sets? Ans. Metrics are used for Analysis and Sets are used for grouping. 30) What issues you faced while creating universe? Ans. Loops, traps, connections to the data base. 31) 21 | P a g e BO FAQ What are Pre-defined conditions? How do you compare with report conditions? Ans. These are the conditions defined by Designer in the Universe. Often used Query conditions are qualify for pre-defined condition. 32) What is object and what do you mean by object qualification? Ans. Object is an instance of class and object qualification represents what kind of object it is like: Dimension or Detail or Measure. Object is a component named with business terminology and maps to data in the database or uses other objects within the same universe. 33) What is LOV? Where it is store? Ans. It displays the list of data values associated with an object. A list of value can contain data from a Database file or an External file. 34) Explain in Detail about Measure Objects? What is the use of it? How to create it? Ans. Measure Object conveys numeric information which is used to quantify a dimension object. A measure object returns numeric information. You can create a measure object by using aggregate functions such as: Sum Count Average Minimum and Maximum. 35) In universe parameter if you don’t give the option multiple contexts, what is the impact in report level? Ans. By having multiple contexts you can utilize the Multipass SQL feature. Multipass: Breaking one large SQL into multiple SQL. If you are using the star schema with two or more fact tables, and you enable this feature, BO will automatically generate two or more SQLs (i.e. one SQL for each fact table object used in the report). Then the results will be synchronized in the report. 36) What is isolated join in check integrity Ans. A join which is not associated to any one of the contexts. 37) Can I link two Universes having with different connection? Ans. Yes as long as they point to same database. 38) I have 2 universes, U1 and U2. From U1, I created one report that is R1. Now i want to give the connection R1 to U2 and at the same time delete the connection from U1 to R1? How is it possible? Ans. We can change the connection for the report R1. For webI reports in query panel on left side we have Query properties there we can change the connection of the universe to U2. Then it will map to the U2. 39) 22 | P a g e BO FAQ How to set Cascading LOV’s? Ans. We are going to create Prompt based on: Country > Resort > Service Line > Service (Hierarchy diagram shown below) 40) Go to the Edit Properties window of Resort Select Automatic refresh before use and click Edit Bring the Country object to conditions panel and build prompt: “What Country are you interested in?” – Save and Close – Apply Go to the Edit properties window of Service Line Select Automatic refresh before use and click Edit Bring the Resort object to conditions panel and build prompt: “What Resort are you interested in?” – Save and Close – Apply Go to the Edit properties window of Service Select Automatic refresh before use and click Edit Bring the Service Line object to conditions panel and build prompt: “What Service Lines are you interested in?” – Save and Close – OK In WEBI, Select Country, Service Line, Revenue in result objects and Service Line into query conditions panel and build prompt “What service lines are we tracking?” Click Run query Now you will be prompted for Service Line Hierarchy Click values and this is where the fun begins. You will be then prompted for a Resort 23 | P a g e BO FAQ What is the test methodology for testing BO Universes? Ans. Universe is tested keeping in view of the reporting requirements. A Universe should support creation of all the reports that needs be created off it plus any other additional requirements. Using check integrity option we can test the universe. Check whether any loops are there in universe. Check any chasm trap and fan trap are there in universe. Check parse of all the objects created in universe. Check the joins. Weather any condition is not properly specified. 41) What is hierarchy? Ans. Hierarchy is an ordered tree structure of relevant dimension objects. Hierarchies are used for drilling information across various levels. 42) 43) What is the difference between the default hierarchy and custom hierarchy? 24 | P a g e BO FAQ Ans. Default hierarchies are created as per the default classes and dimension structure in the Universe while Custom hierarchies are those explicitly defined by in Universe by using dimension objects. What is difference between local filter and global filter? Ans. Applying filter to a specific table (block) is called as local filter while applying filter to a report is called as global filter and it is applicable for all the blocks in a report. 44) What is Drill down, Drill up, Drill Through, and Drill across? Ans. Drill Down: When you drill down, you display the next level of detail in a hierarchy. Drill Up: When you drill up, you display the next highest level of detail in a hierarchy. Drill Across: When you drill down and up, you move through the levels of the same Hierarchy. However, if you cannot find the answer to a question by analyzing data in its current hierarchy, you can move to another hierarchy to analyze other data. Drill Through: If the lowest level of detail you need is not currently available in the report, you can drill through to the database directly from drill mode and get the data you need. You do not have to edit the query in the Query Panel. 45) What is the syntax of prompt? Ans. @Prompt('message','type',[lov],mono/multi,free/constrained/primary_key,per sistent/not_persistent, [{'default value':'default key'[,'default value':'default key',...]}) ‘message’ - Test of the prompt message enclosed in single quotes. ‘type’ - Data type returned by the function. ‘A’ for alphanumeric, ‘N’ for number & ‘D’ for date. Lov - You can specify two types of list of values. Hard coded list: {‘AUSTRALIA’,’FRANCE’,’USA’} for example. Pointer to a list of values from an existing object: ‘CLIENT\COUNTRY’. Mono - user can select only 1 value from LOV. Multi - user can select multiple values from LOV Free - user can enter a value or select from LOV Constrained - user must select a value from the LOV Primary key - Use the primary key parameter with "free" or "constrained". The user enters a value or selects from the list of values. If the primary key parameter is present, the entered or displayed value is not used to generate the query. The associated key value from the Index Awareness column is used. Persistent - when refreshing a document, the last values used in the prompt is displayed by default. 46) 25 | P a g e BO FAQ Not persistent - when refreshing a document, no last values will be displayed in prompt. 'default value':'defaultkey' - The default values parameter is used to define default values presented to the user. You can define multiple default values. The syntax for each default value is: ‘value’:’key’. The colon (:) is the separator between the value and the key. When refreshing a document these values are displayed by default but if the persistent option is set, then the last values used in the prompt are used instead of the default values. If you specify the primary key parameter, then you must provide the key value(s). What is Index Awareness in Universe? Index awareness is the ability to take advantage of the indexes on key column to retrieve the data fast. The objects that we create in the universe are based on database columns that are meaningful to an end user. When you set up index awareness in designer, you tell designer which database columns are primary and foreign keys which will increase query performance. To setup Index Awareness, open the properties of objects, open “Keys” tab. Click Insert and Add respective primary key and foreign key. 47) How to implement Index awareness? Ans. This is a feature of the universe to speed up performance of queries in several ways: It can remove joins from the SQL It can remove tables from the SQL It can search indexed, rather than non-indexed, columns 48) Here ClientName is a transformation (concatenation of FirstName and LastName) and searching a transformation is never going to be fast, as it cannot be indexed in the database. 26 | P a g e BO FAQ Now with the help of Index awareness, instead of searching a ClientName, the SQL will search the ClientID which is a indexed column. The Key values are then stored in the LOV for the object. When a user selects a value from the LOV, the SQL will switch the value to the indexed column. Of course, if the user does not select from the LOV, but types in the value instead, Index Awareness is not used. So you will need to train your users to select from the LOV. Index awareness works best when used on a transactional database, or a snowflake schema. Star schemas are usually already optimized for queries, so you may not get as much improvement with a star schema. You are a universe designer and report developer in BO, what type of information you gather from client? Ans. Universe level: What new objects to be made available in Universe What new pre-conditions to be added What User restrictions apply Report Level: Attributes required in report Report input criteria (Prompts) Report filters to be added Alerter - Any information to be highlighted on specific criteria Any calculated attributes required and exact calculation in functional terms Is User to be informed in case of duplicate records and what should be the action Report layout 49) 50) What is BIAR file? 27 | P a g e BO FAQ Ans. It stands for Business Intelligence Archive Resource which is similar to a zip file which is used to collect objects together to facilitate easier backup, restore or transporting objects from one system to another. You can create, export, import and promote a BIAR file with Life Cycle Manager (LCM). How to make Back-up of a universe? Ans. Using Business Objects Designer import the universe. Then making no changes, close the universe. This will create a fresh, unaltered copy of the universe on your local computer. Locate the universe file (*.unv) and the folder (has the same name as the universe file) in the following folder path on the computer on which you are running Designer: C:\Documents and Settings\Application Data\Business Objects\Business Objects 12.0\Universes@DevelopmentWorking Area Select both the universe file and the folder (hold CTRL and use mouse). Then right-click either the selected file and chose “WinZip -> Add to Zip File…” Note: Any compression tool will do. Enter a name that is meaningful to you; it may indicate the version of the universe, the date/time, or editor. Click “OK” and notice the new Zip file you created. This is your backup. 51) How to Restore a back-up of a universe Ans. Many logical work flows for handling universes can result in changing CUIDs and lost report bindings. Nevertheless, if properly back-up a universe can be restored to a prior state by following this work flow. Open Designer, but do not open any universe Locate the desired corresponding Universe folder and zip file. They should be located in: C:\Documents and Settings\Application Data\Business Objects\Business Objects 12.0\Universes@DevelopmentWorking Area Back-up the existing universe file and folder to a new Zip file Delete the existing universe file and folder Unzip the backed-up universe file and folder to this same location. Note: They must be in the same local folder as the universe file and folder they are replacing. Open the universe file that you just unzipped and export it to the folder in which you are working: You will receive a prompt similar to the following. Click “Yes”. 52) Prompt reads, “A newer version of this universe exists in the repository. If you continue with the export you may overwrite existing changes. Do you want to continue? 28 | P a g e BO FAQ WARNING: if you receive any messages asking you to Move, Copy, or Overwrite a universe then you may not be restoring to the exact location that the universe previously resided. Prompts asking to overwrite the universe will be received if the universe you are attempting to restore does not have the same CUID as the backup universe. In this case, double-check your directories and analyze everything in Query Builder. 1. At the end of the export close the universe and import the universe you just exported. 2. Verify that this is the correct universe. 3. You have successfully restored the universe 29 | P a g e BO FAQ Chapter 3: Web Intelligence & Desktop Intelligence What is the difference between Variable & Formula? Ans. Formulas are unnamed and will create confusion when there are many formulas in a report or document. There are three methods to create a formula. 1) Enter a formula directly into a cell Enter a formula into the Formula bar Use the formula editor Variable is a named formula and stored in a document. A complex formula can be simplified by using variables to create the formula in pieces. The major difference is the Variable Editor has a definition tab, where the name and variable type are specified. What is the difference between User objects and Formulas / Variables? Ans. Formulas and Variables are used to manipulate the data after data has been retrieved from the database while User objects operate at the database level through the SQL query. Formulas and Variables are associated with single document and are available to any user refreshing or modifying the document while User objects are associated with specific universe and are not available to other users. They exist only on your computer. (To create, Tools ==> Universe. Select the Unv under which the user object will be created for) 2) How you will do Relative Positioning of Tables, Charts, and Cells? Ans. Moving one block relative to the other block either up or down or left or right is called relative block positioning. Process is: Click on the table, chart, or cell until you see a border around the object. Right click – Align – Relative position or Right click and select “Position” 3) Then your choices are flexible: horizontal, right and left, and vertical, top and bottom. Each option allows the space to be defined in pixels (px). What is User Object? Ans. It is not available to other end users and if an end user tries to refresh or edit a query that contains another user's user object, BO removes the objects from the query and report. 4) 30 | P a g e BO FAQ What is SetPrompts Failed error message? Ans. When the Universe and reports migrated from DEV region to QA region and at the time of testing reports by running them via Infoview, we get this error message SetPromptsFailed(). If we refresh All list of values at the time of Universe migration, we can get rid of this error. 5) What is GetLov Failed – Cannot load universe? Ans. We get this error while refreshing report mostly in Infoview. If you do not have data access to universe then you will get this error. In case if you have access, open the report in DESKI. Tools menu ==> Universe, select the particular universe causing the issue and click List of values. Select the particular object or class and click Refresh. If you select the class then it will refresh each and every object of that class. 6) What is Micro cube? How it works? Ans. Micro cube works like a cache. For example if you drag objects in Result objects pane and run query, complete report data will go and store in Micro cube and then display in the report. In report if you apply filter, you will get data that satisfies your filter. The remaining data will not be deleted from the report, micro cube will store that data. Whenever you remove that filter from the report, again you will get complete data from the micro cube. 7) How do you do BO report testing in DESKI? Ans. When you open the Report in Desktop Intelligence before refreshing the report, you need to set the row limit according to your convenience in Data Manager by clicking the Options tab. You can select 10, 20 or whatever number of rows you want in your report. Now run the report, It will retrieve all the rows from database and stored it in the data cube but in Report only the number of rows selected will be displayed. It will make the report testing easy. 8) How do you do BO report testing in WEBI? Ans. When you open the Report in Web Intelligence before refreshing the report, you need to set the row limit according to your convenience in EDIT QUERY mode by clicking the Properties tab. You can test for Rows retrieved, Retrieve duplicate rows, Prompt order, etc. 9) How can you do load testing for WEBI reports? Concurrent users refreshing report at one time? Ans. Load testing can be done using Load runner tool. The results which you get are: Maximum running virtual users Hits per second Average response time for login, logout, click on particular link, etc 10) 31 | P a g e BO FAQ Errors per second Connections per second 11) How you will do report investigation? First look at the report and check for report filters Check for query filters Look at SQL How you can create Date prompt with Default today? Ans. CALENDAR_TABLE.CAL_DATE = ( CASE WHEN @Prompt(‘Enter date or Today’,'A’,,mono,free,not_persistent,{‘Today’}) =’Today’ THEN TRUNC(SYSDATE) ELSE @Prompt(‘Enter date or Today’,'A’,,mono,free,not_persistent,{‘Today’}) END) 12) For DB2 use CURRENT_DATE and for SQL Server use GetDate() How to overcome overflow of data in a report? Ans. When you have huge number of rows in report then u will get partial results in that report. for that u have to increase the (Limit Size of the Result set) check box button in Universe Parameters under Controls. The number of rows that are returned in a query are limited to the number that you specify. 13) What do you mean by Purging? Ans. Purging removes the data but keeps the structure. Before you share the report with other users we need to purge the document because other users have different security access based upon their profile. Purging also reduces the size of document and saves disk space. The purged data can be retrieved by user by using refresh. 14) How do u get requirement from the client? In what format? Ans. Design Specification (.doc)- shows the architecture of the Project. Requirement Specification (.doc) - Security Requirements, Performance Requirements, Non Functional Requirements, Functional Requirements Project Plan (.mpp) - Project Duration Report Specification Template (.xls) - Look and feel of the Reports Data Element Matrix (.xls) - Tables and Columns involved in the Project 15) How can you add multiple values in a filter? Ans. Right-click on the report, a block, or an individual element Filter > Add Filter option to provide access to the ‘Report Filter Editor,’ ‘Block Filter Editor,’ and ‘Filter’ dialog boxes 16) 32 | P a g e BO FAQ Use these dialog boxes/editors to create and/or edit your filters You can now use both AND and OR operators with these filters The selection of operands is limited here as compared to query filters. Example Matches pattern How can I see and work with all of the filters applied on a report at once? Ans. You can only do this in InfoView's 'Interactive View' mode by making use of the 'Document Structure and Filters' tab. Double-click on one of the report filter boxes in the 'Document Structure and Filters' tab, the 'Block Filter Editor' dialog box opens. 17) What character do I use for a "wildcard" and how should I use it? Ans. Wildcards are used with the "Matches Pattern" operator which has the keyword “LIKE” % is used for multiple value and _ is used for single value. 18) How can I break on multiple columns at once (e.g., Name and Penn ID together)? Ans. Create a variable that concatenates these columns, and then put break on that column. 19) How do you retrieve information from Repository? Ans. In earlier versions, this information is stored in repository database and can be obtained easily with query SELECT * FROM OBJ_M_CONNECTION 20) Using Query Builder tool (URL http://<your system name: port> /AdminTools/querybuilder/query.jsp ) SELECT * FROM CI_APPOBJECTS WHERE SI_KIND = “MetaData.DataConnection” Using DESKI and VBA to retrieve information from repository: Launch DESKI with the new report wizard and then create a simple query using just one object and click RUN button. From Tools menu, select Macro => Visual Basic Editor ( Alt F11 key). On the left side, right click on doc name and select Insert => Module. Copy and paste the code and name it. 33 | P a g e BO FAQ Insert menu => Table => Access new data in different way => Others(Visual basic for Applications) => Choose the previously created subroutine and click Run. The query result is inserted into report. We can query the System Database using an abstraction layer, made up of 3 virtual tables: CI_INFOOBJECTS (user desktop info + …) CI_SYSTEMOBJECTS (administration info) CI_APPOBJECTS (App info + universe metrics) How can I see how many rows of data were returned from my query? Ans. In InfoView Interactive View mode, you can see the number of rows returned, last execution time on the Data Summary tab. 21) How can I see the order of the report breaks or sorts, and how can I change them? Ans. The most efficient way to do this is with InfoView Interactive View mode. Right-click in a column that you think has a break. Notice that the Sort and Insert break... buttons change and look 'indented' when a column that has sorts or breaks is clicked. 22) 34 | P a g e BO FAQ Select Break from the drop-down menu that appears when you right-click. Select Properties and click on it and the Break Properties box will appear. Existing breaks are listed in order here. Up and down arrows allow you to change the order of multiple breaks. Existing Display Properties are shown and you can change them. Existing Page Layout items are shown and you can change them. You can also remove a break. In custom sort, you can add and remove temporary values in the sort as well as change the order of the sort. If the time duration given in seconds, then you can display in hh:mm:ss format in report? Ans. In WEBI 23) V_hh =If (Truncate(([Duration] / 3600) - (Truncate([Duration]/86400 ; 0) * 24) ; 0)<10) Then "0"+FormatNumber(Truncate(([Duration] / 3600) - (Truncate([Duration]/86400 ; 0) * 24) ; 0) ; "#") Else FormatNumber(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0) ; "#") V_mm = If(Truncate(([Duration]/60) -(Truncate([Duration]/86400 ; 0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;0)<10) Then "0"+FormatNumber(Truncate(([Duration]/60) - (Truncate([Duration]/86400 ; 0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;0) ;"#") Else FormatNumber(Truncate(([Duration]/60) -(Truncate([Duration]/86400 ; 0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;0) ;"#") V_ss =If(Mod([Duration];60)<10) Then "0"+FormatNumber(Mod([Duration] ;60) ;"#")ElseFormatNumber(Mod([Duration] ;60) ;"#") V_hhmmss =[v_hh]+":"+[v_mn]+":"+[v_ss] 35 | P a g e BO FAQ 24) The Left Panel offers 9 function icons at its base (as opposed to the tabs available in Webi report viewing)? Document summary- lists information such as author name, date created, and when it was last refreshed as well as prompt values used, if any exist in the report. Data Summary- lists information concerning the query that was used to retrieve the data in the document. It shows the name of the universe and the objects that make up the query definition, as well as the number of rows that were returned by the query. Chart and table types- allows you to view all the templates available to you for modifying the way the data in the document is currently presented. All the templates available for designing reports in the Java Report panel are also available to you in Interactive View mode. Using either drag and drop, or by clicking the Insert button available in the Chart and Table Types panel, you can very quickly and easily transform a table or chart in the document to another format, or insert a new block. Available objects- lists all the objects that have been used in the document's query to retrieve the data available in the document. You can use drag and drop to move objects in and out of the blocks of data, or even to create new blocks of data. You can also make your own variables. Document structure and filters-allows you to view all the elements that make up this document, such as the sections, report blocks, headers and footers, as so on. In this pane, you can click a document element and move it to another position in the document, just by moving it up or down in the pane. Also allows you to format elements. Navigation map-allows you to jump to different sections of the report by clicking on the elements in the map. User prompt input- allows you to add or modify prompts and then run the query again. Input controls- allows you to modify the reports input controls if it has any Find- allows you to find data on the report tab displayed on the right hand side of the screen. 36 | P a g e BO FAQ Can I work in multiple documents at the same time? Ans. Yes. There are two different ways that you can work with multiple open documents. Set your InfoView preferences to open documents in a new window (The default setting is all-in-the-same-window. See 'How to Set InfoView Preferences'.) Click on the plus (+) sign in the upper right to open a new window with the document if your preferences are NOT set to automatically open a document in a new window (see below for more specific instructions) 25) BOTH of these methods will require you to cope with timeout issues in InfoView/Webi. While you are actively working in one Webi document, the open InfoView window with the other report can timeout if it remains inactive too long, causing your whole session to timeout. The only remedy for this timeout issue is to Regularly go back to the original InfoView window and click around to keep it active, AND In Webi SAVE OFTEN (this is always a good idea, by the way). Is there a feature in InfoView/Webi to delete trailing blanks? No, but if you need it for formatting purposes, or to download it to Excel and you want to remove the trailing blanks, create a variable in your report using the RightTrim. 26) How can I create complex conditions (now called 'Query Filters') by nesting or indenting them together, and using AND and OR? Ans. If you slide your mouse up a little (before you release the object!), you'll see the screen change: the object above where you were turns into a blue rectangle, with a white rectangle below it , and both are indented a little, indicating the thing you are inserting and the thing above it will together be indented. 27) You can do multiple levels of indents - it just takes a little practice. 37 | P a g e BO FAQ Once you have the filters indented the way that you want them, double-click on the AND to turn it to an OR (and visa versa). What are Alerter, Breaks, Filters and Conditions? Alters are used for conditional formatting like highlighting the data . Breaks are nothing but grouping the data without any change in the format. Condition or Filters are used to get necessary data. We can apply a maximum of 10 alerters on a single dimension/column and a max of 30 alerters on a report. 28) Ans. Can I take an existing query and run it against a different universe without having to build it again from scratch? Ans. You can move queries between universes to preserve all the query structure and the reporting formatting. To do this, use the Properties tab in Edit Query mode and click the ... button next to the universe name to select from a list of all available universes. Then, you can use the Change Source window to map your query to different objects, if you choose, or remove them from the query all together. 29) Why there are html tags in my free-form text fields? Ans. When reports converted from Deski using report conversion tool, it assumes all text in text boxes should be displayed as html. 30) 38 | P a g e BO FAQ Edit the report, select the text box, and on the Properties tab – Display - Read cell content as "Text" instead of Hyperlink or HTML. I'm using the user response to a date prompt in a variable, but want to see it just as the date, without the time. How can I do this? Ans. FormatDate(ToDate(UserResponse([Query 1];"Enter Start Date:");"");"MM/dd/yyyy") 31) What kind of a date formula can you create to add a specified number of days to a date? Ans. Using relative date function Date minus 7: =RelativeDate([Account End (FC)];-7) Date plus 7: =RelativeDate([Account End (FC)];7) 32) How do I add a logo to my Web Intelligence document? Answer: Add a blank cell from the templates tab: Select this new cell and then click on the Properties tab – Appearance section – Background image. In this dialog box, select "Custom" and in the area for Image (URL), type the name of your image file: InfosolHeader.jpg. Be sure to include the file extension of the image, or it will not render. Your logo is ready now for viewing as part of your Web Intelligence report ... 33) 39 | P a g e BO FAQ To add a logo: Go to the section, at the bottom, called <!-- Settings Default Skins background per report element type --> Add a new KEY entry for the new file as per the example below. Note that the sequence numbers can be different for each type (4 and 5 in the example below). <KEY VALUE="cell_skin5,report_skin4,section_skin5,bloc_skin5"> <SKIN NAME="InfoSol Logo" TYPE="stretch"> boimg://LogoCorp.jpg </SKIN> </KEY> How do I search for an object in Web Intelligence? Ans. Click anywhere in the work area and start typing the object name. It highlights the first object beginning with those letters. Then, simply press the down arrow key to take you to the next match till you find your object. 34) When getting 'No data to fetch' message, how can you make the report to display at least one record? Ans. Add a second SQL UNION query with the same number of objects and object types in the “Result Objects” and make it always return one value. Then you may need to filter this value out of your reports by adding a simple report level filter. OR 35) 40 | P a g e BO FAQ You can have two blocks, one hidden behind the other, where one block is displayed when there is data, and the other block (with a hard-coded text message) displayed only when there is no data. Variable NumRows=NumberOfRows(DataProvider(< Order Date >)) How can you import a single-tab report into another multi-table report so the single- tab report will keep its formatting? Ans. Use a template to move the formatting, but have to use VBA or manually move the data provider as there is no feature within the product to do this. 36) What is difference between Break and Section? Ans. In Section (Master Detail) you can have two or more different crosstabs or tables Where as In break one block is break into groups and subtotal is shown In Section (Master Detail) you can have charts for each section or detail. can have chart and table combination as well. Whereas in Breaks u cannot insert a chart for each of the groups formed out of break. 37) What is meant by ForEach and ForAll function. In which case we use the option in BO? Ans. ForEach It is used to include a dimension in a context. Detail purpose. ForAll It is used to exclude a dimension from a context. Summary purpose. 38) We use ForEach for detail purpose and ForAll for summary purpose. In It is used to specify exactly which dimensions to include in a context. Input context Output context Reset context It is used to determine the input values for the formula. It is used to determine the output scope of the formula. It is used to determine when a running function starts over at zero. In Report In Block In Body sets the context at the report or “Grand Total” level. sets the context for each section. is the standard default context for each row of data. What is the difference between master-detail and Breaks? – Ans. In break common values are deleted (here in this case the table number of columns will not changed) in master-detail , we declare certain entity as a master to get the detailed information or report in this case the table format is changed. (to do this Hyperlink is used) 39) What is the source for metrics? Ans. Measure objects. 40) 41 | P a g e BO FAQ What are the general issues in migration process? Ans. Alignment, Performance. 41) What is the use of BO SDK? Ans. Bo SDK main use is to suppress “no data to fetch” using Macros. 42) Analysis in BO? Ans. Slice & Dice and Drill analysis. 43) What is meant by scorecards? Ans. Scorecard is a concept used for measuring a company's activities in terms of its vision and strategies, to give managers a comprehensive view of the performance of the business. 44) What are different types of saving options in web intelligence? Ans. We can save as EXCEL, PDF,HTML..etc. 45) What is the difference between thin client & thick client? Ans. Web based clients are called as thin clients and windows based clients are called as thick clients. 46) 47) Ans. What are Connection types available in BO? Secured Shared Personal What is Slicing and Dicing? Ans. It is used to analyze the data in different views and perspectives and we can perform operations like: Breaks, Rank, 48) How to schedule the object? Ans. By using Program object in CMC. Program object can be used to execute a batch file, a shell script, or a binary executable. It can also run Java, Java script, and VB script and can schedule the object. 49) The program requires a “Logon As” account and Program Job server configured for your environment. Process: In CMC go to Objects – New object – Program Browse the test script to run Choose the program type (Executable / Java / Script) Select the target folder and Submit What is meant by object store? Ans. It is the container of object which is created after .rpt file ran once. 50) 42 | P a g e BO FAQ 51) How to refresh the database changes Ans. Refresh the Universe then refresh the report. in the report? How to execute the macro through Infoview? Ans. Running the VB macro as full client(DESKI) report by invoking DeskI using a batch file. This batch file can then be scheduled in Infoview too. The batch file looks like this Code: "C:\ProgramFiles\BusinessObjects\BusinessObjectsEnterprise11.5\win32_x86\busobj.exe" "C:\temp\VB_BOXI.rep" check 11.5 or 12.0 This will invoke the DeskI application and run the .rep file containing the macro. And it can be scheduled as program object in CMC/Infoview. 52) 53) How to move the report from Development environment to Production Environment? Ans. Using Import Wizard Can we customize the BO Infoview? Ans. Yes we can customize BO Infoview settings from the OPTION available on the first page of it. There we have options to set default skin, language, default page...etc 54) I’m having a report having 4 columns and N number of rows. If I click on one cell, the report should go to another report page which gives the detail of the cell? Ans. This can be done using hyper linking. The cell can be defined as a hyperlink and parameters can be passed to the destination report to open. 55) Type is same, 2 tables values are same. How do you find out both values are same? In Designer, File tab-->parameter-->Strategy, we have lot options to join. Options are: Match by column names, Match by values etc.. 56) What are cascading prompts explain with steps? Ans. Series of prompts will narrow the end user selection. Select a hierarchy and apply prompts. Time hierarchy: year/quarter/month/week. take dimension objects year/quarter/week and apply a prompt on month. Follow the same steps. 57) How to hide empty tables in WEBI? Ans. We can hide a table in WebI when the table is empty. From the properties tab, deselect 'Show when empty' check box. 58) 43 | P a g e BO FAQ I have a report with n number of records. I want to take alternative rows as a red in color. How to make it? Ans. In the properties of the table in which you are displaying data look for "Alternate rows" and change the color to "Red" OR use Alerters. 59) Can we prepare report based on Excel in BO? Ans. Yes. BO separately provided the option to get the report data from universe or others(personal data option)in the business objects entered wizard. Click or Select the others option and it will let u different files or extension files. here select .xls file and follow normal report style. 60) What is the local or block filter and global filter in BO? Ans. If a filter is applied on single block then it is called local or block filter and if it is applied by clicking in a report then it is called global filter and it applies to all the blocks. 61) What is offline mode? How can you log on to BO in off line mode? Can we refresh a document while working in offline mode using a Client/Server Connection? Ans. Using BO in offline mode means that you are not connected to a repository which in turn means that, whatever your connection type, you will not be able to retrieve and send documents using BCA Client Server Connection: If you are using a BO client/server connection offline and not connected to a repository, you can still work with documents and universes stored locally on your computer and even create and refresh documents if you have a connection to the database. 62) How do you implement dense rank in BO reports? Ans: The DENSE_RANK function computes the rank of a row in an ordered group of rows. Rows with equal values for the ranking criteria receive the same rank. 63) SELECT * FROM ( SELECT deptno, ename, sal,DENSE_RANK() OVER ( PARTITION BY deptno ORDER BY sal desc ) TopN FROM emp ) WHERE TopN <= 3 ORDER BY deptno, sal DESC; / DEPTNO ENAME SAL TOPN ---------- ---------- ---------- ---------10 KING 5000 1 CLARK 2450 2 MILLER 1300 3 20 SCOTT 3000 1 <--- ! (in case of rank JONES will have 3 and dense 44 | P a g e BO FAQ rank will have 2) FORD JONES 3000 2975 1 <--- ! 2 Can you apply Rank and Sort at a time on single report? Ans. No. If one tries, it will ask you want to overwrite the previous condition. But it can be applied on another column, say I applied ranking on salary to retrieve top 10 salaries and then apply sort on employee name. It will affect only those rows which has common salary. 64) In a report i need vertical table and below that a chart. How do you make sure that data overlap does not happen? Ans. By relative positioning under Appearances 65) What is batch processing in BO? Ans. Batch processing means scheduling the reports. 66) How can you schedule the report to run only when there is data in it? Ans. You could schedule a report to run and generate output to a file. If the data is not refreshed, then the logic in the report's SQL should cause the report to fail, therefore generating no output. If the data is refreshed, then the output file is generated. Next, set up a File-based Event to watch for that file. 67) Whenever my database table gets updated with latest records, the scheduler should run and send the report to users? Ans. Each time the database table gets updated with latest data, Generate a file and place it in specific location Create a file based event and point to location of this file Each time a file gets created , this Event will detect it and will trigger the report to run And finally delete the trigger file and report ran. 68) How can you delete the above file automatically? Ans. Create a batch file with the following code, and upload it to the CMS as a program object: 69) @echo off dir %1 echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo Deleting file: %1\%2.old del %1\%2.old echo Renaming %1\%2 to %1\%2.old 45 | P a g e BO FAQ ren %1\%2 %2.old echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dir %1 Create a separate schedule for each trigger file to be deleted. Set the schedule to run when the File Event fires. Set its arguments to the file's path<space>filename (ex. "\\server\share filename.txt". What is the difference between desktop intelligence and web intelligence in detail? Ans. Scheduling can be done directly in Web-I (Xi R2), where as we need additional softwares to schedule Deski reports. You can view the Deski reports in Web-I, but not Web-I Reports in Deski. But we can schedule the Deski reports via Web-I. In Web-I we can create the reports only through Universes and DeskI we can also create from personal data files, Free-hand SQL, Stored Procedures, VB Application and XML data provider. 70) What is repository? (BOE source) Ans. All universe objects and connections are stored and secured in the central repository. 71) What is CCM? Ans. Central Configuration Manager is used to start, stop, enable and disable servers. 72) What is CMC? Ans. Central Management Console is a web-based environment used for managing: User and group creation Security authentication services Object rights Scheduling Business calendars License keys Universe and data connections 73) What are underlying processes that run on a BO XI R2 server? Ans. These are: Central Management Server File Repository Services Event Services Schedule Services Cache Services Report Services 74) What is CMS? Ans. Central Management Server performs four main tasks: Maintaining Security Managing Objects Managing Servers Managing Auditing 75) 46 | P a g e BO FAQ What is File Repository Service (FRS)? Ans. It consists of two components: Input file repository server – which manages all of the objects managed by the platform Output file repository server – which manages all of the report instances generated by scheduling services 76) What is Event Service? Ans. After a file based event is created, the event service monitors the specified directory for new files and when they appear, it notifies the CMS that the file based event has occurred and triggers the event. 77) What is Scheduled Service? Ans. Report job server processes scheduled reports and generated report instances. 78) What is Cache Service? Ans. Cache services are responsible for handling all report viewing requests. 79) What is Report service? Ans. It consists of two components: Web Intelligence Report Server – It is accessed when the CMS requests the creation or viewing of a WEBI document for further interaction Desktop Intelligence Report Server – It handles the collection of data, formatting, and layout of a DESKI document. 80) How you can add ‘ALL’ in the selection list of LOV in report? Ans. The process to include ‘All’ is Double click on the object in the universe Under Properties tab, enable Associate a list of values and click Edit Modify the query as SELECT ‘ALL’ FROM DUAL UNION SELECT DISTINCT Kind.kind FROM Kind Enable Do not generate SQL before running and click ok Create a new condition Kind Prompt Click browse (>>) button next to where clause box and develop the below expression @Select(Kind\Kind) IN @Prompt(‘Enter kind code:’,’A’,’KIND\KIND’,Multi,Free,notpersistent) OR ‘ALL’ IN @Prompt(‘Enter kind code:’,’A’,’KIND\KIND’,Multi,Free,not-persistent) And then parse it. 81) 47 | P a g e BO FAQ How can you shade alternate records in the report? Ans. First create a variable (‘Even or Odd’) which calculates the alternate row as “=Mod(LineNumber(),2)” which will return either 0 or 1 Create an alerter based on the condition of variable created ‘Even or Odd This results in every other row shaded Apply the alerter to each column 82) Why is there a tilde (~) in the name of my Web Intelligence folder in My Favorites? Is that a default folder and if so, what goes into it? Ans. If Web Intelligence is configured for 'autosave', and if you have the appropriate security rights, Web Intelligence saves your documents automatically in the My Favorites / ~Web Intelligence folder as you work. 83) What is Universe override? Ans. Universe Overrides” or “Access Restrictions” are simply object restrictions, table mapping, and row restrictions which are directly added to a universe. 84) What is Open Document? Ans. With the open document, you can embed hyperlinks in one document to another. Example: Ampersand is always required between parameters and joined by &. Document identifier properties: ="<a href="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp? 85) iDocID – It is used to specify how to access a particular document in CMS or determine how to display the document to the user. It is used in conjunction with sIDType sIDType – specifies the type of object identifier. Values: CUID / ParentID / InfoObjectID ="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?iDocID=Aa6GrrM79c RAmaOSMGoadKI&sIDType=CUID sDocName – specifies the name of the viewable document. Used in conjunction with sPath and sType sPath – specifies the name of the folder and subfolder containing the target document. Values: [folder],[subfolder] sType – specifies the file type of target document. Values: wid / rpt / car ="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?sDocName=Sales+in+2 011&sPath=[Sales+Reports]&sType=rwid 48 | P a g e BO FAQ sInstance – specifies the scheduled instance of the target document to open. Used in conjunction with sDocName or iDocID Values: User (Latest instance owned by current user) Last (Latest instance of document) Param (Latest instance of document with matching parameter values) ="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?sDocName=Sales+in+2 011&sPath=[Sales+Reports]&sType=rwid&sInstance=User sKind – Only mandatory if target is a DESKI document. Value: FullClient Input parameters: lsC - specifies a contextual prompt if there is ambiguity during SQL generation Value: context name lsM[Name] – specifies multiple values for a prompt. [Name] is the text of prompt Value: Multiple prompt values separated by comma No_value for optional prompts lsR[Name] – specifies a range of values for prompt Value: A range of values for prompt separated by double period (..) No_value for optional prompts lsS[Name] – specifies a value for single prompt Value: A single prompt value No_value for optional prompts sRefresh – indicates whether a database refresh should be forced when the target document is opened . Value: Y / N &lsMparamNumberDR=[3],[4] &lsMparamDateDR=[Date(2003,6,3)],[Date(2003,6,4)] &lsMparamDateTimeDR=[DateTime(2003,6,1,3,1,1)],[DateTime(2003,6,1,4,1,1)] &lsC=Sales &lsRTime+Period:=[2000..2004] &lsRparamDateDR=[Date(2003,6,7)..Date(2003,6,8)] &lsRparamDateTime DR=[DateTime(2003,6,1,7,1,1)..DateTime(2003,6,1,8,1,1)] &lsSparamDateTime=DateTime(2003,6,11,14,38,37) &sRefresh=Y How to get iDocID in open document? Ans. Click on Report in Infoview 86) 49 | P a g e BO FAQ Right click on Name of tab and select Properties Click on View Source Scroll down to strDocID Can I build a query based on a spreadsheet or another query? Since Webi is a server-based product, it doesn't have the ability for users to upload Excel spreadsheets and base queries off them. 87) What are @functions Ans. @Aggregate_Aware, @Prompt, @Script, @Select, @Variable, @Where 88) @Prompt: It prompts the end user to enter a specific value. Syntax: @Prompt (‘message’, [‘type’], [lov], [MONO|MULTI], [FREE|CONSTRAINED]) @Select: This function enables you to re-use the Select statement of an existing object. Syntax: @Select (Classname\Objectname) @Where: This function lets you re-use the Where clause of an existing object. Syntax: @Where (Classname\Objectname) @Variable: The @Variable is used to reference the value assigned to a name or variable. Syntax: @Variable(‘myname’) @Script: This function recovers the results of Visual Basic for Applications macro (VBA macro). Syntax: @Script (‘var_name’, ‘vartype’, ‘script_name’) When BO report is exported to excel, what issues we may come across? Ans. BO report can be exported to excel from View mode or Edit mode. Alignment issues Issues with colors (chart colors, cell colors etc). Cell wrapping issues etc 89) 90) What is the syntax for FOREACH and FORALL? Ans. 50 | P a g e BO FAQ Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year]) Max ([Sales Revenue] ForEach ([Quarter])) In ([Year]) OR Sum([Sales Revenue] In ([Year])) Sum([Sales Revenue] ForAll ([Quarter])) OR What type of errors you get in report? Ans. Formula error and information messages like #MULTIVALUE 91) #SYNTAX #ERROR #DATASYNC #CONTEXT #SECURITY #EXTERNAL What is #MULTIVALUE? Ans. #MULTIVALUE occurs when you place a formula that returns more than one value in a cell that supports one value only. Example: Multivalue in a cell 92) You have a report showing Country, Resort and Revenue and you add a cell to the report containing the formula [Revenue] ForEach ([Country]). This cell returns #MULTIVALUE because Country has many values in the report and one cell cannot display the revenues for all the countries. What is #SYNTAX? Ans. #SYNTAX occurs when a formula references an object that no longer exists in the report. Example: Referencing a non-existent object 93) You have a report that originally showed Year, Quarter and Sales revenue, with an additional column showing difference between the revenue and the average yearly 51 | P a g e BO FAQ revenue. This figure is given by the variable Difference If this variable is deleted from the report, the column containing it returns #SYNTAX. What is #ERROR? Ans. #ERROR is the default error message that covers all errors not covered by other error messages. 94) What is #DATASYNC? Ans. #DATASYNC occurs when you place a dimension from a different data provider in a block containing dimensions from another data provider, and the two data providers are not synchronized through a merged dimension. #DATASYNC appears in all Dimensions in the block and #CONTEXT in the Measures. 95) What is #SECURITY? Ans. #SECURITY occurs when you attempt to use a function for which you do not have security rights. Example: Using the DataProviderSQL() function If a user who does not have the right to view data provider SQL places the DataProviderSQL() function in a cell, the #SECURITY message appears in the cell. 96) What is #EXTERNAL? Ans. #EXTERNAL occurs when a formula references an external function that is not available to Web Intelligence. Example: Using the Multicube() in WEBI 97) How can I hide a column or row in a table? Ans. Format the column with no shading (or with white fill) so text, background and border don't appear, move it to the far right of the table, and then shrink it down to the smallest possible width (4 px). 98) How to test BO report results? Ans. To make sure BO report is correct we need to test: BO report results (totals) against data base by comparing totals against fact table records for that criteria the report is generated (Need to write query on fact table to fetch totals and compare with BO report). Run BO query against DB to check if it produces same results in DB too and to check performance variation. Check formatting in BO report - should be as per requirements doc. 99) 52 | P a g e BO FAQ BO report query should be as per requirements and NO additional joins should be involved. Pass multiple sets of values in to Prompts/parameters to check if the report is producing correct results in all scenarios. Check if row level or object level security is working properly if at all any. Check formulas and query logic is correct. How to create Hyperlink in webi report that links one tab in a report to another tab in the same report? Ans. Use sReportName=<Name of the tab> in the URL 100) How to pass multiple values to multiple prompts from one report to another report using hyperlinks? Ans. Use MparameterName in URL 101) Chapter 4: Oracle What is a Primary Key? Ans. A primary key is used to uniquely identify each row in a table. It can either be part of the actual record itself , or it can be an artificial field (one that has nothing to do with the actual record). A primary key can consist of one or more fields on a table. When multiple fields are used as a primary key, they are called a composite key. Primary keys can be specified either when the table is created (using CREATE TABLE) or by changing the existing table structure (using ALTER TABLE). 1) What is a Foreign Key? Ans. A foreign key is a field (or fields) that points to the primary key of another table. The purpose of the foreign key is to ensure referential integrity of the data. In other words, only values that are supposed to appear in the database are permitted. 2) 3) What is the difference between Primary key and Unique key? 53 | P a g e BO FAQ Ans. Both Primary key and Unique Key enforce uniqueness of the column on which they are defined. But by default primary key creates a clustered index on the column, where are unique creates a non-clustered index by default. Another major difference is that, primary key doesn’t allow NULL value, but unique key allows NULL values. What is the difference between WHERE clause and HAVING clause? Ans. The WHERE clause selects rows before grouping and cannot contain aggregate functions. The HAVING clause selects rows after grouping and can contain aggregate functions. Individual records must to be selected by a query in Where clause. It can be used without the group by clause. The Having clause cannot be used without the group by clause and is used in conjuction with GROUP BY clause. 4) What is Normalization? Ans. Normalization is the process of efficiently organizing data in a database (that suits frequent inserts and updates of records in database). There are two goals of the normalization process: eliminating redundant data (for example, storing the same data in more than one table) and ensuring data dependencies make sense (only storing related data in a table). Both of these are worthy goals as they reduce the amount of space a database consumes and ensure that data is logically stored. 5) What are the different types of Normal Forms? Ans. First Normal Form (1NF): No repeating group of data items. Each column should contain specific values. Each row is equivalent logical record· Relation should contain records of identical format. Second Normal Form (2NF): It consist Foreign Key Relation Ship. Each data items in a record are functionally dependent on the key of that record. Each record uniquely identified with the Key. No Redundant of data. It should full fill the 1NF. Third Normal Form (3NF): First full fill second normal form. Example: Fact Table. All non-key functionally depends on primary key. Boyce-Codd Normal Form (BCNF): Eliminate redundancy. It adheres both 2NF AND 3NF. Fourth Normal Form (4NF): Eliminate multi dependency. Fifth Normal Form (5NF): Eliminate cyclic dependency. Sixth Normal Form (6NF): It satisfies No Non Trivial join at all, extending relational model, temporal dimensions. Domain Key Normal Form (DKNF): No constraints other than domain constraints. 6) What is Surrogate Key? Ans. There was product called Baby Powder and after two years, organization decides to stop selling this product because of its cost and low sales and they launched a new product Talcum Powder for Men and want to give same key to the product, say 336 and organization does not want to remove all data of Baby Powder, what will you do now? 7) 54 | P a g e BO FAQ So to avoid such situation, its always better to use Surrogate Keys as Primary Key in dimension table along with Business Key. Surrogate Keys are integers that are assigned sequentially in the dimension table which can be used as PK. SK_Prouduct Product_ID Product Name Cost Acive 1 336 Baby Powder 444 N 2 345 Cream 34 Y 3 336 talkem Powder 44 Y Now with above table you can use same code for another Product, mark the product as Active and Inactive and maintain all the product in Data Warehouse Advantages of Surrogate Key: Data need that arises from the Business or operational changes and recycling. It allows the data warehouse to integrate data from all sources if they lack natural Business keys. These are very helpful for ETL transformations What is Materialized view? Ans. A materialized view is a database object that contains the results of a query. CREATE MATERIALZED VIEW MV_NAME AS SELECT stmt; 8) What is the difference between View and Materialized view? Ans. View is the virtual table which does not have any physical existence and will run the query definition each time they are accessed. Materialized view has the physical existence (disk) which contains results of query and updated periodically based upon the query definition. 9) What is Package? Ans. Package is a database object which holds other objects in it such as procedures, functions, cursors, variables, constants and exceptions. 10) What is the difference between Procedure and Function? Ans. Function returns only value back to the caller but in the case of procedure multiple values can be passed back to caller. 11) 12) What is the difference between Trigger and Procedure? 55 | P a g e BO FAQ Ans. Triggers do not accept any parameters and is executed internally by the database engine itself upon data modification to an associated table while procedures accept parameters and to execute a procedure, it has to be explicitly called by a user. What is Stored Procedure? Ans. A Stored procedure is a set of SQL statements with a name assigned to it and stores in the database in the compiled form. SP are helpful in controlling access to data, preserving data integrity and improving productivity. 13) Supported Stored Procedures in BO • Any PL/SQL procedures that return result sets through a REF Cursor. • PL/SQL stored procedures that have at least one IN/OUT REF cursor variable parameter and no OUT or IN/OUT parameter. Unsupported Stored Procedures • Any PL/SQL procedure that does not return result sets through a REF CURSOR parameter • Any PL/SQL procedures having at least one OUT parameter • Any PL/SQL function • Any PL/SQL procedure having one IN/OUT parameter of a type different than a REF CURSOR, for example, VARRAY • Any PL/SQL Table function Ensure that your stored procedures are compatible with the Business Objects products. Setting up stored procedure access To allow user access to stored procedures in BusinessObjects, implement the following steps before they create connections: 1. Create a cursor inside a package. 2. Create the stored procedures using the defined cursor. Both stages are done using Procedural Language/Standard Query Language (PL/SQL). CREATE or REPLACE PACKAGE catalog_data AS TYPE CatCurTyp IS REF CURSOR RETURN all_objects%ROWTYPE; END catalog_data; CREATE or REPLACE PROCEDURE get_ownerobjects(owner_name IN varchar2, cat_cv IN OUT catalog_data.catcurtyp) AS 56 | P a g e BO FAQ BEGIN OPEN cat_cv FOR SELECT * FROM all_objects WHERE owner=owner_name; END; 14) How will you create a report using oracle stored procedure? Ans. Select Data---New Data Provider--Stored Procedure Selector define the db connection Choose the stored procedure Specify stored procedure as the data source Define parameters What is the difference between Co-related sub query and nested sub query? Ans. Correlated subquery runs once for each row selected by the outer query. It contains a reference to a value from the row selected by the outer query. Nested subquery runs only once for the entire nesting (outer) query. It does not contain any reference to the outer query row. 15) Correlated Subquery: Select e1.empname, e1.Sal, e1.deptno From emp e1 where e1.Sal = ( Select max(Sal) From emp e2 Where e2.deptno = e1.deptno) ; Nested Subquery: Select empname, Sal, deptno From emp where (deptno, Sal) in ( Select deptno, max(Sal) From emp group by deptno) ; What is the difference between Truncate, Delete, and Drop? Ans. DELETE command is used to delete rows from a table and the operation can be rollback. TRUNCATE removes all rows from a table. The operation cannot be rolled back and no triggers will be fired. As such, TRUCATE is faster and doesn't use as much undo space as a DELETE. DROP command removes a table from the database. All the tables' rows, indexes and privileges will also be removed. No DML triggers will be fired. The operation cannot be rolled back. 16) 57 | P a g e BO FAQ What is NVL() function? Ans. It is a function which returns a non-null value, if a null value is passed to it. 17) NVL(a,b) == if 'a' is NULL then return 'b' else return 'a'. What is difference between Char and Varchar2 data types? Ans. Char is used for storing fixed length character strings and will waste lot of disk space. Varchar2 is used to store variable length character strings and string value length will be stored on the disk with the value itself. Note: Varchar should not be used as it is reserved for future usage. Use Varchar2 instead. 18) What is ROW ID? Ans. ROW ID identifies where exactly the record is stored in the table with the help of data value in index. Format: BBBBBBB.RRRR.FFFFF where B- block of database file, R – row in block and F- database file 19) What is the difference between ROWID and ROWNUM? Ans. Rowid - Address of a record in database. Rownum - Is a unique number assigned to record when retrieved by a query. 20) What is the difference between ROWINDEX() and ROWNUMBER()? Ans. Row Index -- Is the address of record in db Row Number -- Is the number assigned to the row retrieved by SQL. 21) Write a query to Display Sum of Salary for each department Ans. SELECT SUM(sal), deptno FROM emp GROUP BY deptno. 22) What is the difference between Row_Number(), Rank() and Dense_Rank()? Ans. Row_Number assign different values to each row, Rank will leave a gap in the ranking sequence when there are common values(ties) and Dense_Rank does not leave a gap in the ranking sequence. 23) SELECT names , salary ,row_number () OVER (ORDER BY salary DESC) as ROW_NUMBER ,rank () OVER (ORDER BY salary DESC) as RANK ,dense_rank () OVER (ORDER BY salary DESC) as DENSE_RANK FROM salaries 58 | P a g e BO FAQ >>Output NAMES SALARY ROW_NUMBER RANK DENSE_RANK F 10000 1 1 1 E 6000 2 2 2 A 5000 3 3 3 B 5000 4 3 3 D 4000 5 5 4 C 3000 6 6 5 Note: rank () OVER (Partition by deptno ORDER BY salary DESC NULLS LAST) as RANK (try this) Write SQL query to list top 5 employee salary? Ans. SELECT A.SAL FROM ( SELECT ROWNUM, E.* FROM EMP E ORDER BY E.SAL DESC ) A WHERE A.ROWNUM <= 5 24) 25) Ans. Even: Odd: 26) How to get/retrieve even/odd number of records? SELECT * FROM EMP WHERE ROWID IN ( SELECT DECODE(MOD(ROWNUM,2),0,ROWID) FROM EMP) SELECT * FROM EMP WHERE ROWID IN ( SELECT DECODE(MOD(ROWNUM,2),1,ROWID) FROM EMP) How to get/retrieve every Nth row from a table? Ans. SELECT * FROM ( SELECT rownum rn, empno, ename FROM emp ) temp WHERE MOD(temp.ROWNUM,4) = 0; 27) How to get/retrieve N th max salary? 59 | P a g e BO FAQ Ans. SELECT DISTINCT A.SAL FROM EMP A WHERE N = ( SELECT COUNT(DISTINCT(B.SAL)) FROM EMP B WHERE A.SAL >= B.SAL); 28) How to get/retrieve the Top 10 employees based on their salary? Ans. SELECT ename, sal FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal DESC) sal_rank FROM emp ) WHERE sal_rank <= 10; 29) How to get/retrieve the employees making the Top 10 salaries? Ans. SELECT ename, sal FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal DESC) sal_dense_rank FROM emp ) WHERE sal_dense_rank <= 10; 30) How to get/retrieve the Bottom 10 employees based on their salary? Ans. SELECT ename, sal FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal ASC) sal_rank FROM emp ) WHERE sal_rank <= 10; 31) How to get/retrieve the employees making the Bottom 10 salaries? Ans. SELECT ename, sal FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal ASC) sal_dense_rank FROM emp ) WHERE sal_dense_rank <= 10; 32) How to get/retrieve only rows x to y from a table? Ans. 60 | P a g e BO FAQ SELECT * FROM ( SELECT rownum rn, empno, ename FROM emp Where rownum < 101 ) temp WHERE rn BETWEEN 50 AND 60; How to remove the duplicate rows from table? Ans. DELETE FROM EMP WHERE rowid NOT IN (SELECT MAX(rowid) FROM EMP GROUP BY <columns>) 33) 34) How can you select a random collection of rows from a table? Ans. SELECT * FROM emp SAMPLE(10); It randomly returns 10% of the rows in the table. 35) How to add a day/hour/minute/second to a date value? Ans. select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/86400 from dual; SYSDATE SYSDATE+1/24 SYSDATE+1/1440 SYSDATE+1/86400 -------------------- -------------------- -------------------- -------------------03-Jul-2002 08:32:12 03-Jul-2002 09:32:12 03-Jul-2002 08:33:12 03-Jul-2002 08:32:13 Here are a couple of examples: Description Date Expression Now SYSDATE Tomorow/ next day SYSDATE + 1 Seven days from now SYSDATE + 7 One hour from now SYSDATE + 1/24 Three hours from now SYSDATE + 3/24 A half hour from now SYSDATE + 1/48 10 minutes from now SYSDATE + 10/1440 30 seconds from now SYSDATE + 30/86400 Tomorrow at 12 midnight TRUNC(SYSDATE + 1) Tomorrow at 8 AM TRUNC(SYSDATE + 1) + 8/24 Next Monday at 12:00 noon NEXT_DAY(TRUNC(SYSDATE), 'MONDAY') + 12/24 First day of the month at 12 TRUNC(LAST_DAY(SYSDATE ) + 1) 61 | P a g e BO FAQ midnight The next Monday, Wednesday or Friday at 9 a.m TRUNC(LEAST(NEXT_DAY(sysdate, 'MONDAY'), NEXT_DAY(sysdate, 'WEDNESDAY'), NEXT_DAY(sysdate, 'FRIDAY'))) + 9/24 62 | P a g e