Table of Contents:
This document describes the new features in Oracle Essbase Release 11.1.2. For detailed information on these features, see the Oracle Essbase Database Administrator's Guide, Oracle Essbase Technical Reference, and Oracle Essbase API Reference.
For information about the new features in Oracle Essbase Administration Services, see Essbase Administration Services New Features.
When running Essbase in Oracle Hyperion Enterprise Performance Management System security mode, Essbase obtains user and group details (including user and group information and provisioning to Essbase applications) from Oracle's Hyperion® Shared Services. Essbase does not store all users and groups in the Essbase security file (essbase.sec); therefore, an Essbase Administrator does not need to explicitly synchronize security between Essbase and Shared Services.
When a user logs on to Essbase, Essbase queries Shared Services for that user’s information. The privileges with which a user starts a session are preserved throughout the session, regardless of whether the user’s privileges are changed in Shared Services during the session.
The Essbase Administrator can optionally delete a user or group from the Essbase security file. Any calculation or filter assignments are removed; however, the user still exists in Shared Services and is not deprovisioned.
Externally authenticated Essbase groups can be created. The specified group must exist in Shared Services.
Additionally, Essbase accepts the provider name along with the user or group name for user and group management and authentication. For example, users can be created and can log in with the format userName@providerName. This enables the coexistence of multiple Essbase users and groups with the same name, who are hosted on different provider domains. See User and Group Identities.
Allocations are used in the budgeting process to distribute revenues or costs.
The allocations feature allows you to allocate a given source amount to a target range of cells in an aggregate storage database. The source amount can be allocated to the target proportionately, based on a given basis, or the source amount can be spread evenly to the target.
You can perform aggregate storage allocations using the MaxL statement execute allocation. Using the Essbase API, use the EssPerformAllocationAso function and provide the information about the allocation in the ESS_PERF_ALLOC_T API structure.
Custom calculations extend the analytical capabilities of Essbase by enabling the execution of recurring calculations on aggregate storage databases.
You can write custom calculations for aggregate storage databases that update target level-0 cells. Custom calculation scripts are expressed in MDX.
Custom calculations on aggregate storage databases can be useful when the database is used for general ledger reporting, where double-entry accounting is in effect. Debit items, such as assets and expenses, must balance with credit items, such as equity and revenue.
You can perform custom calculations on an aggregate storage database using the MaxL statement execute calculation (aggregate storage version). Using the Essbase API, use EssPerformCustomCalcASO to perform or verify a custom calculation. Provide the information for the custom calculation in the ESS_PERF_CUSTCALC_T structure.
Using the @XWRITE calculation function, Essbase can write to blocks other than the ones being calculated. The write can occur in the same database or on a remote database. @XWRITE, like @XREF, uses a location alias.
Applications developed to work with Essbase send numerous requests to Essbase upon startup or as a response to a user action. To improve response times when users query for member information, you can have the application send multiple similar queries as one, using these new API functions:
EssOtlGetMemberInfoArray (an array version of GetMemberInfo)
EssOtlQueryMembersExArray (an array version of QueryMembersEx)
Essbase supports 32 alias tables for block storage and aggregate storage databases.
Using the Essbase API, you can specify multiple language codes for an alias table. When you create an alias table, a language code is not specified. You can get the set of language codes and clear the language codes associated with an alias table.
When clearing aliases from an alias table, language codes are removed from the alias table.
When copying an alias table, language codes are removed from the copied alias table.
When renaming an alias table, language codes are preserved in the renamed alias table.
Essbase supports these limits for user, group, and filter names:
Non-Unicode application limit: 256 bytes
Unicode-mode application limit: 256 characters
In addition to supporting the conversion of non-Unicode block storage outlines to non-Unicode aggregate storage outlines, Essbase supports these conversion scenarios:
Non-Unicode block storage outline to Unicode aggregate storage outline
Unicode block storage outline to Unicode aggregate storage outline
Essbase supports the IPv6 internet protocol on Microsoft Windows 2008 and all UNIX platforms.
Essbase supports connecting to Oracle databases using the Oracle Call Interface (OCI). You can load data from Oracle databases using Data Prep Editor in Administration Services Console by specifying an OCI connect identifier. Additionally, you can specify an OCI connect identifier when deploying a cube using the MaxL deploy statement. For information on Oracle Essbase Studio support for OCI, see Oracle Essbase Studio New Features.
Previously, data loads and dimension builds were always synchronized processes, meaning that Essbase has to wait for them to finish before making modifications.
If you use asynchronous data loads and dimension builds, during the process you can query for this information:
State of dimension build/data load process: whether it is in progress, in the final stages, or completed
Stage of the dimension build/data load process: whether opening the data source, reading the outline, building dimensions, verifying an outline, or writing an outline
Number of data records processed and rejected so far
The name and location of the error file
Data records processed and rejected so far
These C Main API functions are added to handle asynchronous data loads and dimension builds:
EssAsyncBuildDim issues an asynchronous dimension build request
EssAsyncImport and EssAsyncImportASO issue asynchronous data load requests
EssGetAsyncProcLog gets the error log for the asynchronous process
EssGetAsyncProcState queries the state of the asynchronous process
EssCancelAsyncProc cancels the asynchronous process
EssCloseAsyncProc closes the connection for a finished or canceled asynchronous dimension build or data load
Essbase offers improved dataload error messages for debugging purposes, and records causing errors are included in the log files.
These C Main API functions are added to improve debugging of dataload failures:
EssUpdateEx—Sends an update specification to the active database as a single string.
EssUpdateUtf8Ex—Sends an update specification to the active database as a single UTF-8-encoded string.
EssUpdateFileEx—Sends an update specification to the active database from a file.
EssUpdateFileUtf8Ex—Sends an update specification to the active database from a UTF-8-encoded file.
EssUpdateFileASOEx—Sends an update specification to the active aggregate storage database from a file.
EssUpdateFileASOUtf8Ex—Sends an update specification to the active aggregate storage database from a UTF-8-encoded file.
Essbase supports MDX queries that exceed the 232 query limit. Essbase sends 64-bit values representing cell offsets to the client. The Java MDX API now handles 64-bit offsets.
User names can contain any characters defined within the code page referenced by the ESSLANG variable.
The MaxL Shell IfError command can detect syntactical errors, nested script errors, and lack-of-permission errors. The MaxL Shell Exit command can accept a non-zero argument to return an exit status to the parent shell.
Essbase can exit calculations immediately under specified logical conditions. You can use the IF... ELSEIF calculation command block to specify the logical error conditions, and use the new @RETURN function to exit the calculation with customized error messages and levels.
You can extract metadata, either from the active database outline or an input outline file, to an XML file. Comparing versions of XML files enables you to view and track changes made to the outline over time.
The MaxL statement export outline is added to support exporting the metadata.
Essbase supports clustering of Essbase servers to provide active-passive failover with write-back capability. Active-passive Essbase failover clusters use the service failover functionality of the Oracle Process Manager and Notification (OPMN) Server. Essbase agent and server processes use leases to ensure that at any given point-in-time there is one and only one owner for a given shared resource. These processes acquire a lease against a particular shared resource upon startup, continue to renew the lease during their lifetime, and surrender the lease upon termination.
These configuration settings supply tuning parameters that support Essbase failover clustering:
AGENTLEASEEXPIRATIONTIME—Sets the maximum amount of time an agent can own a lease before the lease expires.
AGENTLEASEMAXTRETRYCOUNT—Specifies the number of times the agent attempts to acquire or renew a lease. If these attempts are unsuccessful, the agent terminates itself.
AGENTLEASERENEWALTIME—Specifies the time interval in seconds after which the agent attempts to renew lease. This should always be less than AGENTLEASEEXPIRYTIME.
FAILOVERMODE—Determines whether Essbase is deployed as a failover cluster.
SERVERLEASEEXPIRATIONTIME—Sets the maximum amount of time Essbase Server can own a lease before the lease expires.
SERVERLEASEMAXRETRYCOUNT—Specifies the number of times Essbase Server attempts to acquire or renew a lease. If these attempts are unsuccessful, Essbase Server terminates itself.
SERVERLEASERENEWALTIME—Specifies the time interval in seconds after which Essbase Server attempts to renew lease. This should always be less than SERVERLEASEEXPIRYTIME.
Essbase, when in EPM System security mode, now enables user and group names to be non unique, if you specify the user or group's provider directory or unique identity attribute.
In MaxL, user and group names can be specified as name@provider or as a unique identity attribute.
The provider is the name of a user directory, such as LDAP or Active Directory, where the external user or group is hosted. The unique identity attribute, or "identity," is a unique string assigned to every user and group. The identity enables Essbase to distinguish between users and groups with the same name across providers.
If you migrate Essbase Server and any existing users and groups to Oracle Hyperion Enterprise Performance Management System security mode, you can change the name of the global application and application project in Oracle's Hyperion® Shared Services by using the alter system MaxL statement with the rename global registration name grammar.
Essbase clients developed in Java can execute MaxL statements to facilitate Oracle Essbase administrative tasks.
These calculation functions and command are added to improve calculation of databases that use varying attributes:
@WITHATTR is enhanced to allow varying attributes to be specified in the function argument.
@WITHATTR is enhanced to allow varying attributes to be specified in the function argument.
New statement export outline
New statement execute calculation (aggregate storage version)
New statement execute allocation (aggregate storage only)
Changes to deploy statement: the odbc_dsn keyword enables custom ODBC DSN names, and enables you to specify a Oracle Call Interface (OCI) connect identifier
Changes to create group statement to enable creating external groups.
Changes to alter user and alter group statements to enable revoking filters.
Changes to drop user and drop group statements to enable deletion from essbase.sec only.
Changes to USER-NAME and GROUP-NAME terminals. All user and group names can be of the form name, name@provider, or with identity STRING.