This value persists, and does not change until an administrator decides to change it. There seems to be a glitch in the way obiee (11.1.1.6.0) interprets server variables when using them as default values for a dashboard prompt: only when the variable name is in uppercase and contains no underscores will it be recognised. For example, I have declared and initialised 3 server variables: All 3 contain a value after logging on, I verified this in the obiee admin tool 'manage sessions' screen. Don't forget the quotes which enclose the Variable Name. Design Pattern, Infrastructure For more information, see Oracle Fusion Middleware System Administrator's Guide for Oracle Business Intelligence Enterprise Edition. Http Color This chapter describes how to use variables in the Oracle BI repository to streamline administrative tasks and dynamically modify metadata content to adjust to a changing data environment. Determines certain elements of the look and feel of the Oracle BI Presentation Services user interface. You also set up a schedule that the Oracle BI Server will follow to execute the query and periodically refresh the value of the variable. OBIEE - Connection Pool: The picture below show a repository variable call but you can use in the same way the session variable syntax. This chapter contains the following topics: Working with Multi-Source Session Variables. Is there any way to do this? The number of associated variables can be different from the number of columns being retrieved. Operating System Status, to include it in a where clause of the content tab of a logical table source, to create a dashboard prompt to set up this session variable, and to test it on a little answer with only the year as column, click on the node : Session/Variables/Non System, and create a session variable MyYear with for instance this default initialization string for the oracle database, Set Variable : Request Variable and the value MyYear, Server Presentation Service Installed On Two Machines. Html Each instance of a session variable could be initialized to a different value. You open initialization block B, and then specify that block A will execute before block B. Table 19-2 shows the table in this example. File System Shipping For example, here are dates as set by the default values in the prompt. Any users with the same nonblank request key share the same Oracle BI Presentation Services cache entries. Unlike a repository variable, there are as many instances of a session variable as there are active sessions on the Oracle BI Server. Then, enter its associated string. But when User B logs in he sees below error , when running the same report, [nQSError: 23006] The session variable, NQ_SESSION.PRODUCT, has no value definition. Contains the global unique identifiers (GUIDs) for the application roles to which the user belongs. Each query can refresh several variables: one variable for each column in the query. In Expression Builder, click the Repository Variables folder in the left pane to display all repository variables (both static and dynamic) in the middle pane by name. Note that the NQSSetSessionValues() stored procedure is not supported for use through the Issue SQL page in Oracle BI Presentation Services Administration. New to My Oracle Support Community? If any of the row-wise initialization blocks returns null results, this is logged in the Oracle BI Server log, nqserver.log. It is recommended that you create a dedicated connection pool for initialization blocks where you select Database as the data source type. In the Administration Tool, select Manage, then select Variables. When you have create a server variable, you have to reference it. Cube The Oracle BI Server can also provide functions (such as PI) that might not be available in the data source, and the SQL statement will work with other data sources supported by the Oracle BI Server (for example, ADF, SQL Server, Oracle, and XML files). In the Select Connection Pool dialog, select the connection pool and click Select. Graph Security I need it to be the values of TestVar1 and TestVar3, that were applied in a previous prompt as request variables, multiplied, but all I get is the original values from the session variables. The Oracle BI Server substitutes the value of the repository variable for the variable itself in the metadata. To add a Default Initializer value, type the value in the Default Initializer box, or click the Expression Builder button to use Expression Builder. To create a multi-source session variable, you first create row-wise initialization blocks for each source. Data Warehouse I am seeing a strange issue when using SESSION variable in OBIEE 11g RPD for data level security. Dom This variable is typically populated from the LDAP profile of the user. This is another system variable whose presence is always assumed when the USER system session variable is used. You can also right-click an existing initialization block in the Variable Manager and choose Disable or Enable. If you do not select a connection pool before typing the initialization string, you receive a message prompting you to select the connection pool. Unlike a repository variable, there are as many instances of a session variable as there are active sessions on the Oracle BI Server. Selecting the Use caching option directs the Oracle BI Server to store the results of the query in a main memory cache. This variable has a possible value of 0 or 1. Session variables are primarily used when authenticating users against external sources such as database tables or LDAP servers. Relation (Table) How can the mass of an unstable composite particle become complex? See "Assigning a Name and Schedule to Initialization Blocks" for more information. Database: For repository and session variables. The NQ_SYSTEM initialization block name is reserved. For example, an initialization block might use the function pi(), which is specific to SQL Server. Unlike dynamic repository variables, however, the initialization of session variables is not scheduled. Nominal . If a semicolon must be included as part of a group name, precede the semicolon with a backslash character (\). Select this option to identify the variable as sensitive to security when using a row-level database security strategy, such as a Virtual Private Database (VPD). The format for the session variable names must be: where the separator must be exactly four underscore characters. I try to display the variable by define it in column formula as VALUEOF(NQ_SESSION. Find centralized, trusted content and collaborate around the technologies you use most. If the SQL statement contains an error, the database returns an error message. Color Monitoring Initialization blocks are used to initialize dynamic repository variables, system session variables, and nonsystem session variables. For Example the report looks like this Region VALUEOF (REGION) SALES North Some value from North Variable 100 Identifies the query as a SELECT_PHYSICAL query. Visit our Welcome Center, Answers/Dashboards (Presentation Services). You can set execution precedence and deferred execution with multi-source session variables, similar to regular session variables. Instead, the connection pool is blacklisted and subsequent initialization blocks for that connection pool are skipped. The value is case-insensitive. This SQL statement contains two constraints in the WHERE clause: ':USER' (note the colon and the single quotes) is the ID the user types when logging in. Statistics If you select this option, execution of the initialization block is deferred until an associated session variable is accessed for the first time during the session. This section provides information about working with repository variables, and contains the following topics: A repository variable has a single value at any point in time. The Oracle BI Server logs all SQL queries issued to retrieve repository variable information in nqquery.log when the logging level for the administrator account (set upon installation) is set to 2 or higher. Identifies the query as a SELECT_PHYSICAL query. In this case, enclose the ValueOf function (including the name of the session variable) in single quotes. See "Examples of Initialization Strings" for examples. The order of the columns in the SQL statement and the order of the variables associated with the initialization block determine which columns are assigned to each variable. Dimensional Modeling Selector If there are fewer variables than columns, extra column values are ignored. In the Application Role dialog, click Permissions. Data Quality I try to display the variable by define it in column formula as VALUEOF (NQ_SESSION."ABC") but error message "The session variable, NQ_SESSION.ABC, has no value definition." was shown. Design Pattern, Infrastructure "USER"), the syntax works. "store number" = VALUEOF(NQ_SESSION. The user can alter some elements of the user interface by picking a style when logged on to Oracle BI Presentation Services. If the administrator user (defined upon install) has a Logging level defined as 4 and the session variable LOGLEVEL defined in the repository has a value of 0 (zero), the value of 0 applies. This option enables you to change this property without opening the initialization block dialog. A proxy user is a user that has been authorized to act for another user. The multi-source session variable will fail only if all of the component initialization blocks return null values. "storenbr"), What am I missing? Server Presentation Service Installed On Two Machines. ", Example message: "The execution of init block 'A_blk' cannot be deferred as it does not have a connection pool.". Url In previous releases, the Administration Tool did not limit the values of default initializers for static repository variables. In order to create an OBIEE Analytics Agent, you have to connect to Oracle BI Analytics: Right now I have @{biServer.variables['NQ_SESSION.TestVar1'] * biServer.variables[NQ_SESSION.TestVar3']} as the default value for a variable prompt. In the Variable Manager dialog, double-click the last initialization block that you want to be initialized. For Oracle, you could write: trunc(sysdate) - to_char(sysdate,'D')+1 CurrentSunday, , trunc(sysdate) - to_char(sysdate,'D')+2 CurrentMonday, , trunc(sysdate) - to_char(sysdate, 'D')+7 CurrentSaturday, , trunc(sysdate) - to_char(sysdate,'D')+8 NextSunday, , trunc(sysdate) - to_char(sysdate,'D') PreviousSaturday, , trunc(sysdate) - to_char(sysdate,'D')+2-8 PreviousSunday, , trunc(sysdate) - to_char(sysdate,'D')+2-7 PreviousMonday, , cast(to_char(trunc(sysdate), 'YYYY') as INT) CurrentYear, , Cast(to_char(trunc(sysdate), 'YYYY')-1 as INT) PreviousYear, , add_months(trunc(last_day(sysdate)),-1) + 1 CurrentMonthFirstDay, , last_day(trunc(sysdate)) CurrentMonthLastDay, , add_months(TRUNC(last_day(sysdate)),-2) + 1 PreviousMonthFirstDay, , case when last_day(SYSDATE) = SYSDATE then TRUNC(SYSDATE) else add_months(TRUNC(last_day(sysdate)),-1) end LASTDAYCOMPLETEMONTH. (Apart from the obvious answer: it's a bug. Computer For example, the NQ_SYSTEM initialization block is used to refresh system session variables. In one of my report columns I need to get value of session variables like VALUEOF (NQ_SESSION.COLUMN1). Javascript Required for authentication. Contains the locale of the user, typically populated from the LDAP profile of the user. Holds the name of the proxy user. To enable or disable an initialization block: In the Administration Tool, select Manage, then select Variables. In the User/Application Role Permissions dialog, click the Data Filters tab. This variable has a value of Yes. You must select a connection pool before typing an initialization string. You can use the Variable Manager in the Administration Tool to define variables. You would initialize a session variable named Client, for example, that could be Testing Versioning Data Type The initialization block is a predecessor to another initialization block which does not have the Allow deferred execution option selected. You can then use that session variable as the default date value in your queries for example, Periods.Date = VALUEOF(NQ_SESSION.PREVIOUSSATURDAY). For example, if you have weeks that end on Saturday, you might want to have the date of the most recent Saturday in a session variable, called perhaps PREVIOUSSATURDAY. If you select Row-wise initialization, the Use caching option becomes available. Order What are some tools or methods I can purchase to trace a water leak? In addition to supporting regular session variables that are populated from one data source, Oracle Business Intelligence also supports session variables that can be populated from multiple data sources. Javascript Use the Initialization Block list to select an initialization block that will be used to refresh the value on a continuing basis. In the [Repository|Session] Variable Initialization Block Variable Target dialog, perform one of the following steps: Associate variables with the initialization block by doing one of the following: Click New, and in the Variable dialog, create a new variable. If Prime Time were one of those segments and corresponded to the hours between 5:00 PM and 10:00 PM, you could create a CASE statement like the following: where Hour is a logical column, perhaps mapped to a timestamp physical column using the date-and-time Hour(<>) function. For the syntax, add NQ_SESSION if the variable is a session variable and see the relevant section for the function call. Data Quality Spatial (Repository initialization blocks only) In the Schedule area, select a start date and time and the refresh interval. To create initialization blocks, perform the steps in the following sections: Assigning a Name and Schedule to Initialization Blocks, Selecting and Testing the Data Source and Connection Pool. This tells Oracle BI Presentation Services that these users have identical content filters and security in the Oracle BI Server. You can then use this variable in a filter, as shown in the following WHERE clause: The variable LIST_OF_USERS contains a list of values, that is, one or more values. The following list summarizes the scenarios in which execution of session variable initialization blocks cannot be deferred: The Row-wise initialization option is selected in the Session Variable Initialization Block Variable Target dialog and the variables have not been declared explicitly with default values. The names and values of the session variables reside in an external database that you access through a connection pool. How to get the closed form solution from DSolve[]? This can reduce session startup time. This section contains the following topics: The value of a static repository variable is initialized in the Variable dialog. Quick question, a colleague of mine was telling me that the session variable, NQ_SESSION.GROUP, only shows groups which are assigned at the presentation >> level (or passed in from LDAP or other data source) but it does not show any of the group assignments made within the RPD itself. By using OBIEE variables and a custom control table in Snowflake, we can achieve the same functionality without having to continuously make metadata updates or worry about the number of connection pools becoming a maintenance nightmare. Contains the locale of the user, typically populated from the LDAP profile of the user. If you select Database as the data source type: If you select Database as the data source type, and do not select the Use OBI EE Server option. Using the convention that weeks begin on Sunday (adjust accordingly if thats not the case for your enterprise), we can think of Current, Previous, and Next weeks. For session variable initialization blocks, you can also select LDAP Server or Custom Authenticator. Example 19-2 A SQL Statement When Site Does Not Use Delivers. The user can alter some elements of the user interface by picking a style when logged on to Oracle BI Presentation Services. And when i try a system session variable VALUEOF(NQ_SESSION. Browser If every new session needs the most current set of session variables and their corresponding values, you should clear this option. You do not need to set up the PASSWORD variable, and you can use this variable in a database connection pool to allow passthrough login using the user ID and password of the user. Holds the value the user enters. The repository variable, NQ_SESSION.MyYear, has no value definition. A proxy user is a user that has been authorized to act for another user. In the Session Variable dialog, type a variable name. Used for Oracle BI Presentation Services. Versioning If there are more variables than columns, the additional variables are not refreshed (they retain their original values, whatever they may be). Not correct. This kind of variable can be initiate with the help of SQL statement and ca ". When filtering cache table matches, the looks at the parent database object of each column or table that is referenced in the logical request projection list. As with dynamic repository variables, session variables obtain their values from initialization blocks. Used to enable or disable Oracle BI Server plan cache seeding. Data (State) If you select this option, the initialization block is disabled. You can use a variable to specify the names of catalog and schema objects. Specifies the Catalog groups (Presentation Services groups) to which the user belongs, if any. You schedule these queries to be executed by the Oracle BI Server. It contains the name that is displayed to the user in the greeting in the Oracle BI Presentation Services user interface. Users can select a language on the sign-in page for Oracle BI EE, or they can change the language setting on the Preferences tab of the My Account dialog after signing in. 2. For repository variable initialization blocks, when you open a repository in online mode, the value shown in the Default initialization string field of the Initialization Block dialog is the current value of that variable as known to the Oracle BI Server. Another suggested use for dynamic repository values is in WHERE clause filters of logical table sources, defined on the Content tab of the Logical Table Source dialog. In the Variable Manager dialog, select Action > New > Repository > Variable. OBIEE - How and where can I set a Request variable (SET VARIABLE) ? When a user belongs to multiple roles, include the role names in the same column, separated by semicolons (for example, RoleA;RoleB;RoleC). This saves the resources which would have been used to execute these unnecessary initialization blocks. Key/Value Unlike dynamic repository variables, however, the initialization of session variables is not scheduled. Table 19-2 Sample Session Variables Database Table. User A was able to login to OBIEE presentation and see assigned product ID's being filtered in the report. Data Processing You use the same procedure to define nonsystem session variables as for system session variables. Mathematics Time The tables do not have to be included in the Physical layer of the metadata. For Initialization Block, select mvcountry_sebl_init. Discrete OBIEE - How to set a server variable with the session type via a dashboard prompt (with a request variable) ? Values can still be added to the multi-source session variable from other component initialization blocks that succeed in returning values. The SQL SELECT statement in the Default initializer list can contain multiple columns. COLUMN1 is having values VARIABLE1 , VARIABLE2 etc . Sharing Oracle BI Presentation Services cache entries is a way to minimize unnecessary communication with the Oracle BI Server. You can't use SQL to set your default initializer, that's why you only see Constants as an option. To create a session variable: In the Administration Tool, select Manage, then select Variables. To remove a variable from association with this block, select the variable and click Remove. About Using Initialization Blocks with Variables, Associating Variables with Initialization Blocks, When Execution of Session Variable Initialization Blocks Cannot Be Deferred, Enabling and Disabling Initialization Blocks. This system session variable overrides a variable defined in the Users object in the Administration Tool. You initialize dynamic repository variables in the same way as static variables, but the values are refreshed by data returned from queries. Then, you explicitly define session variables for each source. When a user belongs to multiple Catalog groups, include the Catalog group names in the same column, separated by semicolons (for example, WebgroupA;WebgroupB;WebgroupC). Session variables that are not needed during the session do not have their initialization blocks executed. Infra As Code, Web Function Could anyone please advise? Each instance of a session variable could be initialized to a different value. Debugging You can also use the row-wise initialization option to initialize a variable with a list of values. Dynamic repository values can be set up to do it automatically. You can also use this variable in a SQL statement. When you check in the initialization block, the value of the dynamic variables is reset to the values shown in the Default initializer. Logical Data Modeling With the version 10.1.3.4, a warning is generated: But BI Server process it without problem. For example, to filter a column on the value of the dynamic repository variable CurrentMonth, set the filter to the variable CurrentMonth. It seems that OBIEE save the default initializer value in the same space than for a repository variable. Used for Oracle BI Presentation Services. Discrete The above query example in the initialization block uses a join query with multiple tables from different data sources (for example, SQLServer, Oracle and XML Files). Cache hits would only occur on cache entries that included and matched all security-sensitive variables. The order of the columns in the SQL statement and order of the variables associated with the initialization block determine the column value that is assigned to each variable. You could then set a security filter for all members of a group that would allow them to view only data pertinent to their region. Is there a more recent similar source? OAuth, Contact Data Structure See Creating Initialization Blocks for more information. Legacy groups are mapped to application roles automatically. Used to enable or disable Oracle BI Server subrequest cache hits and seeding. The SKIN variable points to an Oracle BI Presentation Services folder that contains the nonalterable elements, for example, figures such as GIF files. To add a Default initializer value, type the value in the Default initializer box, or click the Expression Builder button to use Expression Builder. WHERE upper(SALESREP) = upper('valueof(NQ_SESSION.USER)'). Such directories begin with sk_. Does Cosmic Background radiation transmit heat? The initialization block is used by session variables named PROXY or USER. This variable is typically populated from the LDAP profile of the user. OBIEE - How to set a server variable with the session type via a dashboard prompt (with a request variable) ? Scripting on this page enhances content navigation, but does not change the content in any way. For example, this option lets non-administrators to set this variable for sampling. This variable has a possible value of 0 or 1. Log, Measure Levels 3. An initialization block contains the SQL statement that will be executed to initialize or refresh the variables associated with that block. You should set the logging level to 2 for the administrator to provide the most useful level of information. System session variables have reserved names that cannot be used for other kinds of variables such as static or dynamic repository variables and nonsystem session variables. This variable has a possible value of 0 or 1. rev2023.3.1.43269. (HY000) SQL Issued: SELECT VALUEOF(NQ_SESSION.user) FROM "Sample . To create a new initialization block, click New. Kurt Wolff, ), #business-intelligence-suite-enterprise-edition-obiee. For example, if a folder were called sk_companyx, the SKIN variable would be set to companyx. This section contains the following initialization string examples: Example 19-1, "A SQL Statement When Site Uses Delivers", Example 19-2, "A SQL Statement When Site Does Not Use Delivers", Example 19-3, "A SQL Statement Joining Tables From Multiple Data Sources - When Using the 'OBI EE Server' Setting", Example 19-1 A SQL Statement When Site Uses Delivers. There are a plethora of ways that dates can get formatted depending on which application is being used to select the dates. It would be nice if there was a single place where you could say Id like dates to be formatted like this. But there isnt (a huge oversight, in my opinion), and if you attempt to descend into the javascript code forest to tweak things well, good luck. Because of this, do not put sensitive data like passwords in session or repository variables. If the SQL statement contains an error, the database returns an error message. When you use these variables for Oracle BI Presentation Services, preface their names with NQ_SESSION. When you select the Use OBI EE Server option for an initialization block: Execution precedence does not apply, because during user login, an initialization block with the Use OBI EE Server option selected is executed after initialization blocks with the Use OBI EE Server option not selected. Contains the global unique identifiers (GUIDs) for the application roles to which the user belongs. However, it will still work with other data sources because the SQL statement is processed by the Oracle BI Server. When you create SQL and submit it directly to the database (for example, when using database-specific SQL in initialization blocks), the SQL statement bypasses the Oracle BI Server. This automatically creates a single multi-source session variable, named: The component session variable names (____