Dodeca Version 8.3.0
June 21, 2023 - Build 1333
This version of the Dodeca uses the .NET Framework, version 4.7.2 and higher on the desktop. The components used in this version of Dodeca are SpreadsheetGear 2017 (8.7.12.102), NetAdvantage 2021, Volume 2 (21.2.46), Aspose.Cells 22.5.0, Syncfusion Essential Studio 20.3.0.49, GdPicture.NET 14.1.0.112, Microsoft WebView2 1.0.1518.46, and Xceed Zip 3.6.7363.15420.
This version of Dodeca has two server-side services that run inside a Java Application Server. The Dodeca service is supported and tested on Java 1.8. The Dodeca-Essbase service for all Essbase versions prior to, and including, Essbase 11.1.1.3 are supported and tested on Java 1.5. The Dodeca-Essbase service for all Essbase versions 11.1.1.4 and higher is supported and tested on Java 1.6. Both services are known to run on Java 1.7, 1.8, 1.9, and 1.10.
The release notes for this version contain the following sections:
Application
-
When a required startup parameter is missing, the application launch dialog is used to select a server, tenant, and application. In 8.3, if the selected application fails to start, the launch dialog is redisplayed so that the user can update their selections. #2378
-
View Selector Automatic Refresh: A new application property,
ViewSelectorRefreshPolicy
supports the ability to configure an application to automatically refresh the view selector. #2897The policy can be used as way to avoid the need to use the
SessionTimeoutPolicy
, since one of the reasons for timing out a session is to force the user to restart the application in order for the view selector to reflect any changes since the last restart. #2897-
When set to None, which is the default, no refresh occurs.
-
When set to Scheduled, the
ViewSelectorRefreshScheduledTime
setting indicates the time each day that the view selector refreshes. -
When set to ElapsedMinutes, the
ViewSelectorRefreshElapsedMinutes
setting indicates the number of minutes between view selector refreshes.
-
-
Session Cache Timeout: A new application property,
SessionCacheTimeoutPolicy
supports the ability to configure the application to automatically clear the session cache at either a specified time or after a specified elapsed time. #2735-
When set to None, which is the default, the session cache is retained for the duration of the session.
-
When set to Scheduled, the
ScheduledTime
setting indicates the time each day that the session cache is cleared. -
When set to ElapsedMinutes, the
ElapsedMinutes
setting indicates the number of minutes that elapses before the session cache is cleared.
-
Artifact Locks
-
Added support for locking artifacts in order to prevent specific metadata IDs from being updated or deleted by Dodeca developers and administrators. In 8.3, artifacts can only be locked and unlocked via Dodeca Shell, but client-side management tools for creating and removing user artifact locks will be supported in future releases. When a Dodeca developer or administrator attempts to update or delete a locked artifact, an information message will be presented to the user and the requested operation will be cancelled.
See Dodeca Shell for more information about managing artifact locks. #1609
Authentication Services
-
Fixed Issue: When using the
DodecaUserRoles
authentication service or theIntegrateDodecaUserRoles
property with another authentication service, the authenticated user is granted every Dodeca user role in theUSER_ROLE_MAPPINGS
table, rather than the roles shown in the User Manager. #3464 -
In 8.3, Dodeca no longer grants a reserved
ADMIN
role to users flagged as administrators in the User Manager. #2151 -
Added support for authenticating a Dodeca user against the current Windows domain via the
DomainAuthentication
authentication service. This new authentication service captures the roles directly from an authorized Windows user session with minimal configuration requirements. #3233 -
Added support for testing authentication services and providers via the Applications Metadata Editor. When an authentication service property is selected, the Test Authentication Service tool can be used to verify that the authentication service is configured correctly and report the authenticated roles for the credentials provided by the tester. #3219
Dodeca Shell
-
Security Fix: Java library Apache Commons Text has been upgraded to 1.10.0 to fix CVE-2022-42889. #3421
-
Fixed Issue: The
find-comments
command fails with an error message similar to the following: failed to lazily initialize a collection of role. #3382
-
Added support for locking, unlocking, and listing locked artifacts via the following commands:
lock
,unlock
, andlist-locks
. User artifact locks can be created with the optional--user USERID
parameter; system locks are created by default.To apply a system lock to a view artifact named InputByProd, the following command can be used:
dshell/SAMPLE:>lock --artifact InputByProd --category VIEW
To display the full list of artifact locks, the following command can be used:
dshell/SAMPLE:>list-locks ------------------------------------ --------- --------------- --------------------- -------------------- ------------------- ------- Lock Id Lock Type Artifact.key.id Artifact.key.category Artifact.key.version Created Date User Id ------------------------------------ --------- --------------- --------------------- -------------------- ------------------- ------- 85a489ef-a2f8-4864-9a35-6717546aa489 SYSTEM InputByProd VIEW 1 2023-06-15T20:19:23 system 1 row
See Artifact Locks for more information. #1609
-
The
user-audit
command has been added, which can be used to view, export, and analyze the list of active users on the Dodeca server. #3431 -
The
delete-comments
command supports a new option, --comment-id, which is the ID of the comment to delete. #3289 -
Dodeca Shell no longer includes JDBC drivers built in to its Java file (drivers can be added to its /drivers folder). This makes upgrading and using other drivers (such as for newer versions of Microsoft SQL Server or Oracle) easier. #3226
-
The version of the Microsoft SQL Server JDBC driver that ships with Dodeca Shell has been upgraded from 7.4 to 10.2.3. This version fixes some issues with TLS support. #3313
Dodeca Standalone
-
Dodeca Standalone has been enhanced to allow setting Apache Tomcat properties in its configuration file. For example, to set the
connectionTimeout
property, a setting in Standalone’sdodeca.properties
file can be set as follows:dodeca.standalone.tomcat.connector.connectionTimeout=60000
. Other Tomcat settings can be set in this manner as well. #3361
EPM Cloud Planning Connector
In 8.3, EPM Cloud Planning Connector provides integration between Dodeca views and a PBCS/EPM Cloud server. #3144, #3175
Refer to https://developer.appliedolap.com/dodeca/README_PBCS.html for deployment and configuration instructions.
In the Dodeca client, an EPM Cloud Planning connection is created in the Essbase Connections Editor by adding a new connection and selecting the EPMCloudPlanningConnection option from the Type dropdown list.
An EPM Cloud Planning connection is represented and generally treated as an Essbase connection by the Dodeca client. So, for instance, when selecting an Essbase connection for a view, connections that are configured for EPM Cloud Planning are listed along with connections that are configured for Essbase.
Other utilities, namely Search Metadata Properties and Metadata Dependency Explorer, treat an EPM Cloud Planning connection as an Essbase connection.
The following tools and utilities are not supported for EPM Cloud Planning connections:
-
Log Essbase Request and Response XML to the Server
-
Log Essbase Performance to Server
Essbase Connector
-
Fixed Issue: When the Essbase Connector is used in APS mode, the Essbase server’s APS logs may contain one or more errors similar to the following:
java.io.InvalidClassException: com.appliedolap.dodeca.essbase.server.connection.EssbaseMessageHandler; Essbase JAPI - unauthorized deserialization
java.lang.ClassNotFoundException: com.appliedolap.dodeca.essbase.server.connection.EssbaseMessageHandler
This issue is caused by APS not having the Essbase Connector’s
EssbaseMessageHandler
class in its classpath. In 8.3, the Essbase Connector does not write custom messages when used in APS mode. #3409, #3459
Essbase Cube Editor
-
Fixed Issue: When saving an application workbook to disk, the Essbase Cube Editor encodes the workbook files with a UTF-8 byte order mark that is not imported correctly by the Essbase web UI and results in an error similar to the following: Problem while parsing Excel file. Content is not allowed in prolog. #3442
Essbase Views
-
Fixed Issue: When utilizing
ParallelExecution
and an error occurs during a parallel operation, the view can display a cancelled status message and icon rather than the details of the error that occurred. #3450 -
In 8.3, the
ParallelExecution
andParallelExecutionLimit
properties apply to and result in concurrent builds of SQLPassthroughDataSet ranges, in addition to Essbase retrieve ranges and sheets. #3395 -
Use Blank as Missing Label: A new Essbase property option,
UseBlankAsMissingLabel
, controls whether a missing Essbase value is represented as a blank cell instead of as the value specified by theEssProperties.MissingLabel
metadata setting or as the Missing Label in the Essbase Options dialog. #3030
Export Metadata
-
Fixed Issue: The Export Metadata to Local Zip File dialog does not display the file path in the status bar when the path string is too long to fit into the width of the status bar. #3299
HFM Connector
-
Fixed Issue: When using a HFM connector for an Essbase view, the following error may occur when a selector control is opened in the client: Unable to show the selector control. Unable to get the selector list items. Unable to get member information. No cause specified. 2531
Metadata Dependency Explorer
-
Fixed Issue: Searching for metadata dependencies of an Excel template could throw an exception. #3430
Metadata Editors
-
In 8.3, the metadata editors used to define queries, scripts, and formulas have a Wrap Text tool that allows for controlling whether the text is wrapped to fit the width of the editor window. By default, text is wrapped. The tool setting value is saved and restored when the editor is reopened. The editors include the SQLPassthroughDataSet Query Editor, the Workbook Script Formula Editor, the Essbase Script Query Editor. The tool is also supported for the Essbase Server Scripts editor. #3316
-
When using contextual navigation to jump to a metadata item in an already open metadata editor, ensure that any filters hiding the newly selected item are cleared so that the item is shown. #3166
-
The Expand All and Collapse All tools have been added to the Properties dialog, which can be opened from the Application, View, and View Property Set Editors by clicking the Properties tool. #2819
The Expand All and Collapse All tools have been also been added to the various categorized properties editors that are opened from a metadata editor.
For instance, in the Selector Lists Editor, the
SelectorControlProperties
can be viewed in a separate property grid window, to which the Expand All and Collapse All tools have been added.Similarly, Expand All and Collapse All tools have been added to other editors, such as the AutoComplete Range Editor and Comment Range Editor. #2565
Metadata Property Search
-
In 8.3, up to 20 of the the most-recently used property value search strings, which are displayed in the search string dropdown list, are persisted and restored across sessions. #1603
-
In 8.3, the Metadata Property Search supports the ability to export the search results to an Excel file. #1582
The Excel file contains a Search Results sheet with a header, which indicates the date, Tenant, Search Options, Searched Categories, Search String, and Number of Matches. Auto-filtering is enabled for the results columns.
Metadata Server
-
Security Fix: The version of the
spring-beans
Java library has been upgraded to remediate CVE-2022-22965. #3418 -
Fixed Issue: The TRACE and DEBUG log entries are not created when the options are set using the Log Level tool in the client. #3057
-
Fixed Issue: When a view’s template is updated, the values for the EncodedContent, Checksum, UpdatedTime, FileModifiedDateTime and others in the
NEW_VALUE
field do not change in theMETADATA_AUDIT_LOG_ITEMS
table. #3146
Paste Special Tool Controller
-
New Tool Controller: A new ClipboardPasteSpecialToolController has been added to provide control over paste formats. The tool opens a Paste Special form, which is similar to Excel’s and allows an end-user to choose what content should be pasted into the sheet. The key of the new tool controller is ClipboardPasteSpecial.
The Paste Special form. #3040
PowerPoint View Exports
-
New View Property: An
Exports
property has been added to Excel based views that provides for the definition of one or more PowerPoint exports for the view. -
New Tool Controller: A new ExportToPowerPointPopupMenuToolController has been added to provide for adding a drop-down button to a view’s toolbar or ribbon from which the user can select one of the view’s defined exports. The key of the new tool controller is ExportToPowerPointPopupMenu.
-
New Editor: A View Exports Editor has been added to the template designer.
#3310
Render Excel View as PDF
In 8.3, a new feature supports the ability to render an Excel, SQL Excel, Essbase Excel, and Universal Excel view as a PDF within the view window. #3350
For example, this is the Income Statement in the Sample application, which is an Essbase Excel view that is configured to leverage this capability.
As shown below, a new view property, RenderAsDocumentPolicy
, which is RenderAsExcel by default, along with a new WindowsViewUIObjectTypeID
option, support this capability. When RenderAsDocumentPolicy
is set to RenderAsPDF and WindowsViewUIObjectTypeID
is set WorkbookViewAndPdfViewer, the view is automatically rendered as a PDF.
Since the PDF viewer contains a built-in toolbar, the view’s toolbar configuration can be set to View Standard when the Build button and POV selectors are required.
- IMPORTANT
-
The Microsoft Edge WebView2 Runtime must be installed on the client to use this capability.
SelectorListBox and SelectorTreeView
-
Added a context menu to the SelectorListBox and SelectorTreeView. A property, ToolDisplayPolicy, was added to SelectorLists. The options for ToolDisplayPolicy are Both, ContextMenuOnly, and ToolbarOnly. The default, in keeping with existing behavior, is ToolbarOnly. #1595
SQL Excel View
-
Cascading Enhancement: Prior to 8.3, cascading support for SQL Excel views was limited to a single cascade "template" sheet. Cascading is now supported for any number of template sheets, which are specified and configured using the
CascadeSheetConfig
setting. This is equivalent to the cascade support for Essbase Excel views.
The view-level cascade template sheet settings are still supported, and can be used when the view contains a single template sheet. #3403
-
Added support for the
ParallelExecution
andParallelExecutionLimit
properties, which apply to and result in concurrent builds of SQLPassthroughDataSet ranges. #3394
SQLPassthroughDataSets
-
Fixed Issue: The FetchSize property of a SQLPassthroughDataSet Query is not honored by the Dodeca server. This issue was introduced in 8.0.0. #3420
Toolbars Configuration Editor
-
Fixed Issue with Convert to Ribbon tool when a custom tool’s ShowInCustomizer property is set to False, the tool does not appear in the Ribbon Designer. #3462
Universal Excel View
A new view type, referred to as a Universal Excel View, is an Excel template-based view type that allows for data from various data sources to be combined in a single view. The data from a given data source is represented by a Universal Range type. Each universal range type supports the retrieval, display, behavior and operations for data from a specific type of data source, which is accessed through a connector.
In 8.3, the universal range types that are supported include the Essbase Universal Range and SQLPassthroughDataSet Universal Range. A Universal Excel view that integrates both of theses types of universal ranges is functionally equivalent to an Excel Essbase view that integrates Essbase along with relational data.
In future releases, additional universal range types will be supported that allow for integrating data from other types of data sources.
Universal Excel View Wizard
Similar to the SQL Excel View Wizard, the Universal Excel View Wizard supports the creation of the view and the configuration of the same properties as with an Excel view.
Universal Excel View Properties
The Universal Excel view supports the same properties as an Excel view with the addition of the cascade-related properties and the UniversalRanges
property, which is similar to the DataSetRanges
property of a SQL Excel view.
The UniversalRanges
property defines one or more universal ranges, each of which is of a specific universal range type, which determines the data source and connector type used to access the data. The properties are unique to the universal range type, and control the behavior and presentation of the data.
In the Universal Range Editor, a new universal range is added by specifying the Name and Range Type. All universal range types support the Name
, AutoBuildOnViewBuild
, and GridContextMenuID
properties.
SQLPassthroughDataSet Universal Range
The properties and configuration of a SQLPassthroughDataSet Universal Range are identical to a that of a Data Set Range in a SQL Excel and Essbase Excel view, with the exception of the addition of the GridContextMenuID
property.
Standard SQL Tools
The following standard SQL tools are supported for SQLPassthroughDataSet universal ranges:
-
Add (DataTable Range) Rows
-
Delete (DataTable Range) Rows
-
Insert (DataTable Range) Rows
-
Save DataSet Ranges: All of the SQLPassthroughDataSet universal ranges with data table ranges that allow writeback are saved.
SQL Workbook Script Event Links
The following event links are supported for SQLPassthroughDataSet universal ranges:
-
AfterDataSetRangeBuild
-
AfterDataSetRangeSave
-
AfterDataTableRangeAddRow
-
AfterDataTableRangeDeleteRow
-
BeforeDataSetRangeBuild
-
BeforeDataSetRangeSave
-
BeforeDataTableRangeAddRow
-
BeforeDataTableRangeDeleteRow
The following event links are NOT supported:
-
AfterDataSetRangesBuild
-
AfterDataSetRangesSave
-
BeforeDataSetRangesBuild
-
BeforeDataSetRangesSave
SQL Workbook Script Functions
The following functions are supported for SQLPassthroughDataSet universal ranges:
-
DataTableRangeColumnInfoByIndex
-
DataTableRangeColumnInfo
-
DataTableRangeHasChanges
-
DataTableRangeRowHasChanges
-
DataTableRangeRowState
-
DataTableSheetRangeName
SQL Workbook Script Methods
The following methods are supported for SQLPassthroughDataSet universal ranges:
-
AddDataTableRangeRows
: For theRangeName
overload, the SQLPassthroughDataSet universal range name is specified as the DataSetRangeName. -
BuildDataSetRange
: The SQLPassthroughDataSet universal range name is specified as the DataSetRangeName. -
DeleteDataTableRangeRows
-
SaveDataSetRange
: The SQLPassthroughDataSet universal range name is specified as the DataSetRangeName. -
SaveDataTableRangeRow
-
SetDataTableRangesModificationTracking
: Sets modification tracking for all SQLPassthroughDataSet universal ranges in the view.
Essbase Universal Range
The Essbase Universal Range is functionally equivalent to an Essbase retrieve and/or send range in an Essbase Excel view, and the properties and configuration are very similar to that of an Essbase Excel view.
A notable distinction between an Essbase universal range in a Universal Excel view versus an Essbase retrieve/send range in a Essbase Excel view is that an Essbase universal range is configured with its own Essbase connection ID, Essbase options, EssProperties
, data and member drill-through settings, context menu, etc.
In other words, the Essbase-related settings in the Essbase Excel view are applied at the view level; whereas, the same settings for an Essbase universal range are applied at the range level.
So, for instance, this eliminates the need to define Essbase connection IDs in the Excel template when multiple Essbase databases are accessed. And, may also allow for a reduction in the amount of workbook scripting required, since the ranges can be configured independent of each other in the metadata.
Sheet Range Category Properties
The properties in the Sheet Range category are used to identify where the data is represented in the workbook.
The RetrieveAndSendPolicy
property controls whether the range serves as a retrieve range, a send range, or both.
The SheetRangePolicy
indicates whether the sheet range is defined by a SpecifiedSheetRangeName as the SheetRangeName
property, or by a UsedRange with the associated sheet defined by the UsedRangeSheetName
property.
- IMPORTANT
-
The
SheetRangeName
does not have to follow the naming convention required in an Essbase Excel view, such as Ess.Retrieve.Range.1; however, in order to specify the Essbase connection ID in the template, the naming convention must be followed.
Drillthrough Sheet Properties
An Essbase universal range supports the DataCellDoubleClickPolicy
AddSheetForDrillthrough option. The drillthrough sheet properties are only displayed in the property grid with the option is set accordingly.
Standard Essbase Tools
The following standard Essbase tools, which are supported for an Essbase Excel view, are also supported for a Universal Excel view that contains Essbase universal ranges: Retrieve, Send, Keep Only, Remove Only, Zoom In, Zoom In (Next Level), Zoom In (All Levels), Zoom In (Bottom Level), Zoom Out, Pivot, Essbase Options, Linked Objects Browser
The Zoom In (to specific level) tools are shown both in the tab group and in a menu.
Essbase Workbook Script Event Links
The following Essbase event links are supported for a Universal Excel view that contains Essbase universal ranges:
-
AfterRangeReplaceTokens
-
AfterRangeRetrieve
-
AfterRangeSend
-
AfterSheetKeepOnly
-
AfterSheetPivot
-
AfterSheetRemoveOnly
-
AfterSheetRetrieveOperation
: For an Essbase universal range, includes Keep Only, Remove Only, Pivot, Zoom In, Zoom Out, and Retrieve. If multiple ranges exist on the same sheet, the event is raised after each range is retrieved. -
AfterSheetZoomIn
-
AfterSheetZoomOut
-
AfterTokenTableBuild
-
BeforeOpenViewForDataCells
-
BeforeOpenViewForMemberCells
-
BeforeRangeReplaceTokens
-
BeforeRangeRetrieve
-
BeforeRangeSend
-
BeforeSheetKeepOnly
-
BeforeSheetPivot
-
BeforeSheetRemoveOnly
-
BeforeSheetRetrieveOperation
: For an Essbase universal range, includes Keep Only, Remove Only, Pivot, Zoom In, Zoom Out, and Retrieve. If multiple ranges exist on the same sheet, the event is raised before each range is retrieved. -
BeforeSheetZoomIn
-
BeforeSheetZoomOut
-
BeforeTokenTableBuild
-
EssbaseExceptionOccurred
-
Pivoting
The following Essbase event links are NOT supported:
-
AfterInitialRetrieveFromBuild
-
AfterSheetReplaceTokens
-
AfterSheetReport
-
AfterSheetRetrieve
-
AfterSheetSend
-
AfterWorkbookRetrieve
-
AfterWorkbookSend
-
BeforeSheetReplaceTokens
-
BeforeSheetReport
-
BeforeSheetRetrieve
-
BeforeSheetSend
-
BeforeWorkbookRetrieve
-
BeforeWorkbookSend
Essbase Workbook Script Functions
The following Essbase workbook script functions are supported for an Essbase universal range:
-
IsDataCell
andIsMemberCell
-
Data Cell Functions
DataPointDimGeneration
,DataPointDimLevel
,DataPointDimOrientation
,DataPointDimValueAlias
,DataPointDimValueDisplayed
,DataPointDimValueMember
,DataPointDimValuesAliases
,DataPointDimValuesDisplayed
,DataPointDimValuesMembers
,DataPointHasCellNote
,DataPointHasLinkedObjects
,DataPointIsBlank
,DataPointIsDouble
,DataPointIsError
,DataPointIsMissing
,DataPointIsNoAccess
,DataPointIsReadOnly
,DataPointIsReadWrite
,DataPointIsZero
-
Member Cell Functions
MemberCellDimensionName
,MemberCellDimensionNumber
,MemberCellIsDimension
,MemberCellIsExplicitlyShared
,MemberCellIsImplicitlyShared
,MemberCellIsLabelOnly
,MemberCellIsNeverShare
,MemberCellIsParent
,MemberCellIsStoredData
-
Drillthrough sheets are supported for an Essbase universal range. The
IsDrillthroughSheet
function can be used to determine whether the active sheet in a Universal Excel view represents a drillthrough sheet. -
All of the non-cell functions, which are not listed here, that support an optional Essbase connection ID, are supported, but the connection ID must be specified when used in a Universal Excel view.
Essbase Workbook Script Methods
The following Essbase workbook script methods are supported for Essbase universal ranges:
-
AddDataCache
: The EssbaseConnectionID argument is required for Essbase overloads. -
AddTokensForSubstVars
: The EssbaseConnectionID argument is required. -
BuildRangeFromScript
: The EssbaseConnectionID argument is required for Essbase overloads. -
EssbaseConnect
: The EssbaseConnectionID argument is required. -
EssbaseDisconnect
: The EssbaseConnectionID argument is required. -
EssbaseKeepOnly
: The operation is performed on the Essbase universal range that contains the SelectedRange, if specified, or the active cell. -
EssbaseMdxQuery
: The StartCell argument is required, and is used to locate the target Essbase universal range on the current or specified SheetName. When the StartCell is not specified, the following error occurs: The error message is The StartCell argument must be specified. It is used to locate the target Essbase universal range. -
EssbasePivot
: The operation is performed on the Essbase universal range that contains the FromCell or ToCell, or if neither is specified, the active cell. -
EssbaseRemoveOnly
: The operation is performed on the Essbase universal range that contains the SelectedRange, if specified, or the active cell. -
EssbaseRetrieve
: The General overload retrieves Essbase universal ranges that qualify based on the RetrievePolicy method argument:-
If RetrievePolicy is not specified, only Essbase universal ranges that apply to the active sheet are retrieved.
-
If RetrievePolicy = AllSheets or RetrieveRanges, all Essbase universsal ranges are retrieved.
-
*If RetrievePolicy = ActiveSheet, only Essbase universal ranges that apply to the active sheet are retrieved.
-
-
EssbaseRunCalc
: The EssbaseConnectionID argument is required. -
EssbaseRunMaxL
: The EssbaseConnectionID argument is required. -
EssbaseRunScript
: The EssbaseConnectionID argument is required. -
EssbaseSend
-
EssbaseSetOptions
: TheEssbaseUniversalRange overload
is supported. The UniversalRangeName argument identifies the Essbase universal range to which the options are applied. -
EssbaseSetSelectorConfiguration
-
EssbaseUpdate
: The EssbaseConnectionID argument is required. -
EssbaseZoomIn
: The operation is performed on the Essbase universal range that contains the SelectedRange, if specified, or the active cell. -
EssbaseZoomOut
: The operation is performed on the Essbase universal range that contains the SelectedRange, if specified, or the active cell. -
SetEssbaseSendRangeModificationTracking
: Sets modification tracking for all Essbase Universal Ranges in the view. -
SetUDA
: The EssbaseConnectionID argument is required.
The following Essbase workbook script methods are NOT supported:
-
EssbaseCustomFunction
-
EssbaseReport
User Manager
-
In 8.3, the User Manager supports the ability to export the results to an Excel file. #3362
The Excel file contains a Users sheet with a header, which indicates the date, Tenant, Application Filter, and User Filter. Auto-filtering is enabled for the report columns.
-
In 8.3, the User Manager's licensed user counts are updated whenever a change is committed or the manager is refreshed. #2300
View Help
In 8.3, customized view help can be defined and displayed in a view. The View Help control can optionally be automatically displayed when the view is opened and/or opened by the user with the Help tool. This capability is supported for all view types. #2245
The properties used to configure help include settings that control the caption, whether the help is displayed in a docked window or modal dialog, the location of the docked window, the RTF binary artifact that contains the help content, whether the docked window or modal dialog is opened when the view opens, and whether the content is refreshed after a build.
The Help tool can be added to the view’s toolbars configuration. The steps for adding the tool to a toolbar or to a ribbon are included below.
- Note
-
When the
DisplayOnViewOpen
is True, and the user closes the docked window, the help window is not automatically displayed when another instance of the view is opened, but can be opened again by the user with the tool.
View Help Content
The view help content is a Rich Text Format (RTF) file, which can be created and edited in Microsoft Word or other rich text editor. An RTF binary artifact is used to store the file in the metadata repository.
Most of the rich text formatting is supported in the View Help control, including font sizes, colors, underlines, strike-throughs, italics, bolding, and highlights as well as bulleted and numbered lists, paragraph alignment, indentation, and images.
Unsupported functionality includes, for example, font shading, paragraph borders, and bookmarks, so linking to a specific location in the file is not supported.
Custom functionality in the View Help content includes:
-
A Worksheet Navigation Link navigates to a specified address in the workbook. The link address is
GoTo|<worksheet address>
, such as GoTo|'Product Analysis'!$C$10. -
A Tool Click Link triggers a click action for a specified tool key. The link address is
ToolClick|<tool key>
, such as ToolClick|SaveView. The tool can be visible or hidden. -
Workbook script functions can be included in the content.
-
Tokens can be included in the content.
The workbook script functions and tokens are resolved when the control is opened, and, if the RefreshOnViewBuild
view setting is True, also when the view builds.
An example of a Worksheet Navigation Link:
An example of a Tool Click Link:
As mentioned, workbook script functions can be used in the RTF file. In this example, the @Evaluate()
function is used to evaluate the Excel IF
function in order to insert conditional content based on whether data was retrieved. This also requires that the RefreshOnViewBuild
property is set to True.
How to add the Help tool to a toolbar
-
Open the Toolbars Configuration Editor.
-
Select the toolbars configuration to which you want to add the Help tool.
-
Open the Toolbars Designer.
-
Click the Import Standand Toolbars and Tools button at the lower left.
-
On the Select Toolbars tab, click the Next button.
-
On the Select Popup Menu Tools tab, click the Next button.
-
On the Select Tools tab, scroll down to find the OpenViewHelp tool item in the Key column, and click the checkbox to the left of the item.
-
Click the Finish button.
-
In the Toolbars Designer, if you want to create a Help toolbar, click the Toolbars tab. Click the New button, and set the Key and Text to Help. Click the Add button, then click the Close button.
-
Next, click the Toolbar Designer tab.
-
Click the toolbar from the Toolbar dropdown list to which you want to add the tool.
-
Drag the Help button from the list of tools on the right to the appropriate location in the list of tools on the left.
-
Click the OK button.
-
If you added a new toolbar, you will need to drag the toolbar to the appropriate location in the Toolbars Preview.
How to add the Help tool to a ribbon
When the ribbon contains a single tab or contains the standard File tab, do the following steps:
-
Open the Toolbars Configuration Editor.
-
Select the toolbars configuration that is configured as a ribbon to which you want to add the Help tool.
-
Open the Ribbon Designer.
-
Click the Import Standand Tabs, Groups, and Tools button at the lower left.
-
On the Select Ribbon Tabs tab, click the Next button.
-
On the Select Ribbon Groups tab, click the checkbox to the left of the File_Help group item. The, click the Next button.
-
On the Select Toolbars tab, click the Next button.
-
On the Select Popup Menu Tools tab, click the Next button.
-
On the Select Tools tab, you will notice that the OpenViewHelp tool item is checked.
-
Click the Finish button.
-
In the Ribbon Designer, you will notice that the Help group has been added as the last group on the single tab or on the standard File tab.
-
If you want to move the Help group, use drag and drop in the Ribbon layout on the right side.
-
Click the OK button.
View Selectors
-
Fixed Issue: When an asynchronous view contains dependent selectors and the Auto Build tool is enabled, updating the "depended upon" selector results in the view being built without the updated tokens of the dependent selectors. #3294
-
Sync with Active View and Sync View Selector Tools
For the ViewSelectorExplorerBar, ViewSelectorTree, and ViewSelectorExplorerBarTreeHybrid, the Sync with Active View tool, which is available in the context menu, finds and highlights the item in the view selector that represents the active view. The group and/or tree is expanded as necessary and the view selector window is scrolled to ensure the item is visible. #1477
Similarly, the Sync View Selector tool, which is available in the context menu of a view tab or floating window, finds and highlights the item in the view selector that represents the view.
- IMPORTANT
-
The Sync with Active View tool is not available when the active view is in a floating window. For a floating window, the Sync View Selector tool can be used.
Updating to the 8.3 version of the
DodecaTeal_OfficeColorful_Style
,DodecaTeal_OfficeWhite_Style
, orOffice 2010 Style Library (Blue)
style library is recommended regardless of which view selector is being used, but is necessary when using the ViewSelectorExplorerBar.
View Usage Logging and Viewer
-
In an Essbase View, added support for capturing the first connected Essbase user as the
Connected User
, whether or not an Essbase connection is assigned via the view’sEssbaseConnectionID
property. #2579 -
In 8.3, the View Usage Viewer supports the ability to export the results to an Excel file. #2936
The Excel file contains a View Usage sheet with a header, which indicates the date, Tenant, and the Selected Views, which is either All Views or a list of the selected views. Auto-filtering is enabled for the report columns.
Workbook Script Debugger
-
Workbook Script Debugger Enhancements: #3317
-
The main vertical splitter can be moved all the way to the left such that the content of each tab, when selected, occupies the entire width of the debugger window. The splitter position is persisted and restored when the debugger is reopened.
-
The debugger window size and the Breakpoint tab horizontal splitter positions are persisted and restored.
-
A Wrap state button has been added to the Formula Evaluator tab to allow for controlling when the the text is wrapped. The setting is persisted and restored.
-
A Toggle Hide Empty Arguments state button has been added to the Breakpoint tab. The setting is persisted and restored.
-
Workbook Script Editor
-
In 8.3, the Workbook Script Editor allows a copied Procedure to be pasted regardless of whether a row is selected in the Procedures grid. #2340
Workbook Script Tool Controller
-
Fixed Issue: When the
WorkbookScriptToolController
is associated with a tool that is owned by a ribbon group, the VisibleOnToolbarPropertyName tool argument is not applied. #3461
Workbook Scripting
-
Fixed Issue: The
ActiveSheetChanged
event fires twice when the active sheet is changed. This issue was introduced in 8.0.0. #3384 -
Fixed Issue: When using the
BuildRangeFromScript
method with theImportRange
overload in an asynchronous Essbase view, the following error occurs: SpreadsheetGear.IWorkbookSet.GetLock must be called to acquire a lock on the workbook set. #3460 -
Fixed Issue: When using the
EssbaseRunMaxL
method with anEssConnection
that connects to the server in APS mode, Essbase messages produced during the script execution are not captured. See Essbase Connector for more information. #2450 -
New Function: The
ExpandEnvironment
function replaces the name of each environment variable embedded in the specified string with the value of the variable. #3414 -
New Function: The
ExpandEnvironmentVariables
function replaces the name of each environment variable embedded in the specified string with the value of the variable. #3414- Usage
-
@EEV(<Value>)
- Parameters
-
-
Value - A string containing the names of zero or more environment variables. Each environment variable is quoted with the percent sign character (%).
-
-
New Function Parameter: The TokenValue function has a new optional argument,
DefaultValue
, which allows a default value to be returned as the token value when the token does not exist. #3323- Usage
-
@TVal(<TokenName>, [<UseTargetView>], [<DefaultValue>])
- Parameters
-
-
TokenName - The token name.
-
UseTargetView - Optional (default is false); Use true for this argument to get the token value from the target view.
-
DefaultValue - Optional; Specifies a value to return if the specified token does not exist. If DefaultValue is not specified and the specified token does not exist, an exception will occur.
-
-
New Method: The
PowerPointOperations
method supports the creation or updating of a PowerPoint file, to include images of the view. #2669- Method Arguments - NewFile Overload
-
-
Visible: Whether PowerPoint is made visible. Defaults to FALSE.
-
Filename: Specify the name of the PowerPoint file. When UseDialog is TRUE, the file name is used as the default file name presented in the file dialog. When UseDialog is FALSE, the file name is used as the exported PowerPoint file name.
-
Folder: Specify the folder to save the PowerPoint file to. When UseDialog is TRUE, the folder is used as the default folder presented in the file dialog. When UseDialog is FALSE, the folder is used as the location of the exported PowerPoint file.
-
IncrementFilename: Whether to add a subscript, such as (1), to the filename, if the specified file already exists. If IncrementFilename is blank, an existing file with the same name will be overwritten.
-
UseDialog: Whether to show the file dialog to allow the user to select the folder and filename.
-
DialogResultPropertyName: The name of the workbook script property to hold the FileDialog form result. Possible values are OK, Cancel, and Abort.
-
FullFilePathPropertyName: The name of the workbook script property to hold the full path of the saved file.
-
- Method Arguments - OpenFile Overload
-
-
Visible: Whether PowerPoint is made visible. Defaults to FALSE.
-
BinaryArtifactID: Specifies the ID of a PowerPoint (PPT) binary artifact. If a BinaryArtifactID is specified, then the file-related arguments will be ignored.
-
Filename: Specify the name of the PowerPoint file. When UseDialog is TRUE, the file name is used as the default file name presented in the file dialog. When UseDialog is FALSE, the file name is used as the exported PowerPoint file name.
-
Folder: Specify the folder to save the PowerPoint file to. When UseDialog is TRUE, the folder is used as the default folder presented in the file dialog. When UseDialog is FALSE, the folder is used as the location of the exported PowerPoint file.
-
UseDialog: Whether to show the file dialog to allow the user to select the folder and filename.
-
DialogResultPropertyName: The name of the workbook script property to hold the FileDialog form result. Possible values are OK, Cancel, and Abort.
-
FullFilePathPropertyName: The name of the workbook script property to hold the full path of the opened file.
-
- Method Arguments - CopyRange Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
Range: Specifies the range to copy. Defaults to the sheet’s used range.
-
ReplacePolicy: Whether to replace an image that has the same name. If ReplacePolicy is not specified, PerSlideName will be used.
-
None - The image will be added to the specified slide, if any; otherwise, the image will be added to a new slide.
-
OnAnySlide - Every image with the same name on any slide (if any) will be replaced. If an image with the same name does not exist, then the image will be added.
-
PerSlideName - If an image with the specified name exists on the specified slide, it will be replaced; otherwise, it will be added.
-
-
SizePolicy: The size of the new image. The default is NewImage.
-
NewImage - The size of the replacing image will be based on the size of the copied range.
-
ReplacedImage - The size of the replacing image will be based on the size of the replaced image.
-
-
ImageName: Optional. The name to given to the image.
-
SlideName: Optional. The name of the slide to copy the range to. If a slide with the given name does not exist, it will be added.
-
SlideNumber: The number of the slide.
-
Left: Optional. The horizontal position to place the image at on the slide.
-
Top: Optional. The vertical position to place the image at on the slide.
-
Height: The height of the image in pixels. If Height is specified, it overrides other arguments that impact the height of the image. The height of the image is always limited by the height of the slide.
-
Width: The width of the image in pixels. If Width is specified it overrides other arguments that impact the width of the image. The width of the image is always limited by the width of the slide.
-
ScalePercent: DScale the image with a value between 10 and 400. The default is 100.
-
Save: Whether to save the file after copying the range. The default is FALSE.
-
ImageNamePropertyName: The name of the workbook script property to hold the resolved name of the image.
-
SlideNamePropertyName: The name of the workbook script property to hold the resolved name of the slide.
-
- Method Arguments - ReplaceImage Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
ImageName: The name of the image to replace. ImageName or Left and Top should be specified to identify the image.
-
SlideName: Optional. The name of the slide that the image is on.
-
SlideNumber: Optional. The number of the slide that the image is on.
-
Left: The horizontal position of the image on the slide. ImageName or Left and Top should be specified to identify the image.
-
Top: The vertical position to place the image on the slide. ImageName or Left and Top should be specified to identify the image.
-
Height: The height of the image in pixels. If Height is specified, it overrides other arguments that impact the height of the image. The height of the image is always limited by the height of the slide.
-
Width: The width of the image in pixels. If Width is specified it overrides other arguments that impact the width of the image. The width of the image is always limited by the width of the slide.
-
ScalePercent: DScale the image with a value between 10 and 400. The default is 100.
-
SizePolicy: The size of the new image. The default is NewImage.
-
NewImage - The size of the replacing image will be based on the size of the copied range.
-
ReplacedImage - The size of the replacing image will be based on the size of the replaced image.
-
-
Save: Whether to save the file after replacing the range. The defaults is FALSE.
-
ImageNamePropertyName: The name of the workbook script property to hold the resolved name of the image.
-
SlideNamePropertyName: The name of the workbook script property to hold the resolved name of the slide.
-
- Method Arguments - RemoveImage Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
ImageName: The name of the image to remove. ImageName or Left and Top should be specified to identify the image.
-
SlideName: Optional. The name of the slide that the image is on.
-
SlideNumber: Optional. The number of the slide that the image is on.
-
Left: The horizontal position of the image on the slide. ImageName or Left and Top should be specified to identify the image.
-
Top: The vertical position to place the image on the slide. ImageName or Left and Top should be specified to identify the image.
-
Save: Whether to save the file after removing the image. The default is FALSE.
-
ImageNamePropertyName: The name of the workbook script property to hold the resolved name of the image.
-
SlideNamePropertyName: The name of the workbook script property to hold the resolved name of the slide.
-
- Method Arguments - RemoveSlide Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
ImageName: The name of the image to replace. ImageName or Left and Top should be specified to identify the image.
-
SlideName: Optional. The name of the slide that the image is on.
-
SlideNumber: Optional. The number of the slide that the image is on.
-
Save: Whether to save the file after removing the image. The default is FALSE.
-
SlideNamePropertyName: The name of the workbook script property to hold the resolved name of the slide.
-
- Method Arguments - SaveFile Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
SaveAsFilePath: Specify the name to save the PowerPoint file as. If a full path is not specified the file will be saved in the original folder.
-
IncrementFilename: Whether to add a subscript, such as (1), to the filename, if the specified file already exists. If IncrementFilename is blank, an existing file with the same name will be overwritten.
-
UseDialog: Whether to show the file dialog to allow the user to select the folder and filename.
-
DialogResultPropertyName: The name of the workbook script property to hold the FileDialog form result. Possible values are OK, Cancel, and Abort.
-
FullFilePathPropertyName: The name of the workbook script property to hold the full path of the opened file.
-
- Method Arguments - CloseFile Overload
-
-
FullFilePath: The full path to the PowerPoint file. The default is the last file PowerPointOperations interacted with.
-
Save: Whether to save the file before closing PowerPoint. The default is FALSE.
-
- Method Arguments - Close Overload
-
-
Save: Whether to save the file before closing PowerPoint. The default is FALSE.
-
-
New Method Overloads: The following overloads have been added to the
Filter
method: #2321-
AboveAverage
- Selects the items that are above the average in the specified column. -
BeginsWith
- Selects the items that begin with the specified value from the filter of the specified column. -
BelowAverage
- Selects the items that are below the average in the specified column. -
Contains
- Selects the items that contain the specified value from the filter of the specified column. -
DoesNotBeginWith
- Selects the items that do not begin with the specified value from the filter of the specified column. -
DoesNotContain
- Selects the items that do not contain the specified value from the filter of the specified column. -
DoesNotEndWith
- Select the items that do not end with the specified value from the filter of the specified column. -
DoesNotEqual
- Selects all values except for the specified value, -
EndsWith
- Selects the items that end with the specified value from the filter of the specified column. -
GreaterThanOrEqual
- Selects the items that are greater than or equal to the specified value from the filter of the specified column. -
LessThanOrEqual
- Selects the items that are less than or equal to the specified value from the filter of the specified column. -
NotInList
- Selects the values from the filter that are not in the specified list.
-
-
New Method Overload: The
CopyRange
method has a new overload,AsImage
, which copies a specified range as an image to a specified range in the workbook. #2926- Method Arguments - AsImage Overload
-
-
CopyRange: The address of the range to copy.
-
ImageName: The name assigned to the image. This can be used to identify the image after it is created.
-
OnClickProcedure: The name of the procedure to execute when the image is clicked. The worksheet must be protected and the image locked for
OnClick
to work. -
Placement: The placement behavior of the image.
FreeFloating
: Do not move with cells.Move
: Move with cells.MoveAndSize
: Move and size with cells. -
Column: The column to put the image into. 0.0 is the left edge of the first column. 0.5 is the middle of the first column, etc. If used with the
ColumnPoints
argument then the two are added together. -
EndColumn: The column the will define the width of the image. The
Width
argument can be used instead of this. -
ColumnPoints: The position of the left edge of the image in points. If used with the
Column
argument then the two are added together. -
Row: The row to put the image into. 0.0 is the top edge of the first row. 0.5 is the middle of the first row, etc. If used with the
RowPoints
argument then the two are added together. -
EndRow: The specified row the will define the height of the image. The
Height
argument can be used instead of this. -
RowPoints: The position of the top edge of the image in points. If used with the
Row
argument then the two are added together. -
Width: The width of the image in points. The
EndColumn
argument can be used instead of this. -
Height: The height of the image in points. The
EndRow
argument can be used instead of this. -
LockAspectRatio: Whether the image’s aspect ratio is locked.
-
Locked: Whether the image is locked.
-
Visible: Whether the image is visible.
-
PrintImage: Whether to print the image.
-
BorderColor: The color for the border’s forecolor.
-
BorderColorIndex: The Excel color palette index to use for the border’s forecolor. The value is zero-based from 0 to 55.
-
BorderTransparency: The transparency of the border from 0.0 to 1.0 (opaque to transparent).
-
BorderVisible: Whether the border is visible.
-
BorderWeight: The weight of the border in points.
-
-
New Method Overload: The
ForEach
method has a new overload,FileInFolder
, which will conditionally execute the specifiedProcedure
for each file in the specified folder. #1681- Method Arguments - FileInFolder Overload
-
-
Folder: The full path of the folder to iterate through.
-
SubFolders: Whether to iterate through the specified folder’s subfolders. If left blank
FALSE
will be used. -
FileMatchPattern: Wild-carded file name like *.xlsx. If left blank all files will be processed.
-
UseDialog: Whether to prompt the user to select a folder. If left blank
FALSE
will be used. -
Procedure: The name of the procedure to execute.
-
DialogResultPropertyName: If specified a script
Property
with the specified name will be created with result of the file dialog. The@PVal(<property-name>)
function can be used to get the value. -
ExitLoopCondition: Condition evaluated before each iteration of the
ForEach
loop. If the condition evaluates to True, the loop is exited. -
FileNamePropertyName: If FileNamePropertyName is specified a workbook script
Property
with the specified name will be added with the value of the current file’s name. The@PVal(<PropertyName>)
function can be used within the specified Procedure to get the current value of thisProperty
. -
FilePathPropertyName: If FilePathPropertyName is specified a workbook script
Property
with the specified name will be added with the value of the current file’s full path. The@PVal(<PropertyName>)
function can be used within the specified Procedure to get the current value of thisProperty
. -
FolderPropertyName: If FolderPropertyName is specified a workbook script
Property
with the specified name will be added with the value of the current file’s folder path. The@PVal(<PropertyName>)
function can be used within the specified Procedure to get the current value of thisProperty
.
-
-
New Method: The
PromptForFolder
prompts the user to select a folder. #2361- Method Arguments - General Overload
-
-
Caption: The caption to use for the dialog.
-
SelectedPath: The folder selected when the dialog is initially shown. If left blank the user’s desktop folder will be used.
-
ShowNewFolderButton: Whether the New Folder button is available to the user. If left blank FALSE will be used.
-
FolderPathPropertyName: The name of the script property that will receive the value of the dialog result: OK or Cancel.
-
DialogResultPropertyName: The name of the script property that will receive the selected folder path.
-
-
New Method Overload: The
RemoveToken
method has a new overload,RemoveAll
, which removes all tokens from the specified token tables. #2832- Method Arguments - RemoveAll Overload
-
-
All: If TRUE, removes all tokens from the Application, View, and TargetView. Selector tokens are not removed. TargetView tokens are removed only when the event is
OpenViewForMemberCells
orOpenViewForDataCells
. -
Application: If TRUE, removes all tokens from the Application token table.
-
View: If TRUE, removes all tokens from the View token table.
-
TargetView: If TRUE, removes all tokens from the TargetView token table. This only applies when the event is
OpenViewForMemberCells
orOpenViewForDataCells
.
-
-
Fixed issue: The
CommentOperations
method’sDeleteByCommentID
,DeleteByKeyHash
,DeleteByKeyItems
overloads don’t work if comment isn’t in context in the view. #3340 -
Fixed isue: The
DeletedCountPropertyName
property created by theCommentOperations
method’sDeleteByCommentID
,DeleteByKeyHash
,DeleteByKeyItems
overloads does not return the correct count of deleted comments. #3340