Dodeca Version 7.2.0

March 2, 2017 - Build 5810

This version of the Dodeca Framework uses the .NET Framework, version 2.0, Service Pack 1 and higher on the desktop. The components used in this version of Dodeca are SpreadsheetGear 2012 (, NetAdvantage 2011, Volume 1 (11.1.20111.2042), Aspose.Cells, Syncfusion Essential Studio 11.3035.0.30, and GdPicture.NET 11.0.6.

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.6. The Dodeca-Essbase service for all Essbase versions prior to, and including, Essbase are supported and tested on Java 1.5. The Dodeca-Essbase service for all Essbase versions and higher are supported and tested on Java 1.6. Both services are known to run on Java 1.7, although extensive testing has not been performed on that Java version.

This release was preceded by the following 7.2 pre-releases:

  •, December 1, 2016

  •, December 14, 2016

  •, February 10, 2017

The release notes represent and all the pre-releases, and contain the following sections:


  • Default Admin Toolbars: A new Workbook Script Reference Guide tool has been added to the Help menu of the Default Admin Toolbars to ensure that report developers and administrators can access the provided documentation quickly and easily. #1726 []

    See also: [#Documentation_7_2_0]

  • The default splash screen has changed.


All View Types

  • The ability to control whether only a single instance of a view can be opened by the user from the view selector is now supported. When a view’s AllowOnlySingleInstanceFromViewSelector property is True, only a single instance is allowed. When the user attempts to open another instance of the view from the view selector, the existing view' instance is activated. #1576 []

    Caveat: The AllowOnlySingleInstanceFromViewSelector property is not applicable for saved or shared views.

Authentication Services

  • Fixed Issue: When an Authentication Service is assigned to an application and IntegrateDodecaRoles is true, two UserAccessValidation requests are sent to the Dodeca metadata service. #1713 []

    Resolution: This issue has been resolved with the introduction of a NativeRolesForUserService, which returns the native roles for a user without doubling the login count.

Client Startup

  • Fixed Issue: Previously, for a ClickOnce deployment, the username was cached at startup when provided as a query string parameter. The issue occurs when the username is no longer specified as a parameter, and the cached username is used instead of the current system user, which potentially results in the application running with the wrong or invalid user. #1710 []

    See also: AllowUserArgument

Data Audit Log

  • Fixed Issue: In Dodeca, numeric member names or aliases are prefixed with a single quote when retrieved into a worksheet in order to place the data into cells as text. When the members are subsequently used to send data to Essbase and a data audit log record is created, the leading single quote may not be appropriately removed from the member. #1694 []


  • Enhancement: The Dodeca Workbook Script Reference Guide has been redesigned to enhance its usefulness and make finding the required information easier than ever for report developers and administrators. Previously, the Workbook Script Reference Guide was made available via the Dodeca Framework installation and via the Applied OLAP website, but gaining access to the documentation sometimes presented challenges for report developers. In addition to making the documentation easier to use, the Workbook Reference Guide is now deployed as part of the Dodeca server, and a link has been added to the Help menu provided by the Default Admin Toolbars. #1726 []


Essbase Adhoc Views

  • For an adhoc view with ExcelAddInMode enabled, non-numeric text, which appears to the right of a cell (or cells) that contain a numeric value, the non-numeric text is not retained when a retrieve operation is performed. For example, "abcdefg" in I3 is not retained unless a retrieve range, which includes the cell, is selected before the retrieve is performed.

    To be consistent with the Classic Essbase Add-In behavior, the non-numeric text is now retained without the need to select a retrieve range. It is treated by Essbase as an unknown member, and will be reported as an unknown member on the client when the display of unknown members is enabled. #1684 []

  • Unknown Members – For some layouts, when an unknown member is detected by Essbase, the member is flagged as unknown, but the unknown member is replaced on the sheet with a known member from an adjacent cell. #1536

To get a better understanding, let’s take a look at how the member layout determines the way unknown members are handled by Essbase. This simple layout contains a single dimension in row orientation with two unknown members.


When the data is retrieved, no values are returned for the rows containing Bad Product #1 and Bad Product #2. And, when the display of unknown members is enabled, each unknown member is presented along with address of the cell that contains the unknown member.


The layout becomes more complex when there are multiple dimensions in row orientation.

In this example, Market, Product, and Measures are in row orientation. The spreadsheet contains three unknown members for the Product dimension.


When the data is retrieved, Essbase automatically fills in the last valid member detected for the dimension, which is Colas in B3. The unknown members are reported, but without any corresponding cell location.


Essbase Selector Treeview

  • Fixed Issue in which multiple occurrences of a shared member are automatically (and inappropriately) selected in the tree. The following are a couple of examples of when this issue is encountered.

    These issues only apply to the tree when multiple selections are allowed.
    1. When using the workbook script method SetSelector to select multiple members, and the selected members include both a shared member and non-shared member, which have the same parent, two occurrences of the shared member are selected in the tree: the base member AND the shared member instance with the same parent as the non-shared member. Both occurrences of the shared member should only be selected as the default when the selector list’s SharedMembersCheckboxChecked is True. #1687 []

    2. When the selector list is configured with the DefaultSelectionPolicy as LastUsedItem, the Prefill property as True, and the SharedMembersCheckboxChecked as False, if the last used item includes a shared member, all occurrences of the shared member are selected by default. All occurrences should only be selected by default when the SharedMembersCheckboxChecked is True. #1508 []

Essbase Views

  • Fixed Issue: An error similar to the following can be encountered when attempting to perform an Essbase update/send operation when the Essbase database is case-sensitive: Unable to perform Essbase operation. Alias [default] Does Not Exist For Database [Basic] #1740 []


The Dodeca client components communicate with the Dodeca servers using xml transmitted over the http or the https protocol. To prevent the possibility for arbitrary request execution or the xml packets being intercepted and modified to gain unauthorized access to data, this functionality computes and transmits a keyed-hash message authentication code along with the request. The server, in turn, computes an authentication code based on the submission and compares it to the hash submitted with the request. If a difference is found, the request is rejected.

The new functionality is implemented as a servlet filter and is disabled by default. To enable the request validation, locate the following lines in the web.xml file and remove the comment blocks that surround them:


Note that if the dodeca-request-validator filter is used, it should be mapped after the dodeca-gzip-filter, but before any other filter.

SQL Selector Tree

  • Fixed Issue: The serialized XML that represents the selector item is displayed in the selector tool until the selector tree is opened, which forces the selector tool to refresh and display the selected item. #1707

  • Enhancement: A ToolTipItemDetailsColumns property was added to the SQLPassthroughDataSetHierarchy Selector List. This property corresponds to the "Details" ItemToolTipContentOptions of the SQLSelectorTreeView, and it allows any number of custom ToolTipItemDetailColumns to be shown via the Selector Control’s item tooltip. #1733 []

    Tootip item detail columns are mapped via the ToolTipItemDetailColumns property of the SQLPassthroughDataSetHierarchy.


    Then, the ItemToolTipContentOptions are set to include "Details" to display custom tooltip item Detail columns.


    As a result, any custom mapped columns are displayed in the Item Tips for the SQLSelectorItems in the tree.


User Manager

  • Fixed Issue: When the combination of the language and region of a client system did not represent a valid, four-letter, ISO language code, the User Manager displays the following error: "Unable to execute user query. Unable to deserialize UserQuery result. Culture name 'xx-xx' is not supported. Parameter name: name." #1712 []

View Usage Logs

  • Fixed Issue: ViewUsage records report incorrect usage log timestamps. Timestamps come from the client rather that the server. #1727

  • Fixed Issue: ViewUsage records appear to report incorrect durations when extended AfterBuild Workbook Script processing occurs. #1728

Workbook Script

  • New Methods – The DeleteBreak and InsertBreak methods remove or add printing breaks to the workbook for control over print layout and PDF production. #1724 []

  • New Method – The OpenBinaryArtifact method allows any file stored as a Binary Artifact to be opened using the default viewer installed on the client system. #1725 []

  • New Method – The ShowLoginDialog method allows a user to provide credentials which can be validated against an existing SQL connection or against any compatible web service in conjunction with the CallWebService method.

  • Added Password argument to LoadWorkbook – The argument is used when the loaded workbook is password-protected. #1737

The password is currently only supported for XLS files that are saved from Excel 2010. []
  • New Function – The Contains function returns whether a string contains a substring. If the optional IgnoreCase parameter is provided, the case of the substring will not be checked. []

    Function Usage:
    @Contains(<Substring>, <WithinString>, [<IgnoreCase>])
  • New Function – The FileExists function returns whether the specified file exists. If the optional SpecialFolder parameter is provided, the FileName argument will be appended to the resolved special folder. Valid SpecialFolder parameter values are: desktop, documents, appdata, favorites, and personal. #1680 []

    Function Usage:
    @FileExists(<FileName>, [<SpecialFolder>])
  • New Function – The IsProtectedSheet function returns whether the specified sheet is protected. If the optional SheetNameOrIndex parameter is not provided, the active sheet will be checked. #1723 []

    Function Usage:
  • BuildRangeFromScript Method, EssbaseMdx Overload – Added a Dataless argument, which controls whether the MDX query returns data values along with the members or returns members only. []

  • CallWebService Method, RESTRequest Overload – Added FollowRedirects, RequestHeaders, ResponseCodePropertyName, and ResponseHeadersPropertyName arguments. []

    FollowRedirects gives control over whether the web request should follow server-side redirects.

    RequestHeaders allows any custom headers required by a service to be set.

    ResponseCodePropertyName allows the response status code returned by the web service to be captured in a property.

    ResponseHeadersPropertyName allows the headers returned by the web service to be captured in a property.

  • SendEmail Method, SMTP Overload – Added an IsHtmlMessage argument which controls whether the message body should be displayed as HTML by recipients. []

  • Fixed Issue: BuidRangeFromScript Method, EssbaseMdx Overload] – When no rows are returned from the MDX query, a single occurrence of the CopyFromRange "row template" is inserted in the sheet. #1690

  • Fixed Issue: EssbaseReport Method – The Missing Label and No Access Label are not applied to the report results. This occurs both when specified as method arguments and when specified as view properties. #1720 []

  • Fixed Issue: Method [EssbaseMdxQuery Method, GridData Overload] – When dimension properties are included in the MDX, the left columns are not property buffered when data is returned, which results in the overwriting of row labels with data. #1533 []

    This screenshot illustrates the issue.


Resolution: When dimension members are included on the row and the column axes, then the members, dimension properties, and data are property aligned. Also added support for dimension properties on the row, column, and page axes.

Workbook Script Editor

  • For the Breakpoints tab, the expansion state of the Context, Method Arguments, and Procedure Methods sections is retained and restored within and across sessions. []