Dodeca Version 7.6.0

September 20, 2018 - Build 6549

This version of the Dodeca 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 2017 (*, NetAdvantage 2011, Volume 1 (11.1.20111.2042), Aspose.Cells, Syncfusion Essential Studio, and GdPicture.NET 11.0.6.

*Upgraded from SpreadsheetGear 2012 to 2017

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 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 Setup Utility

  • Fixed Issue: On the Import a Dodeca License page, selecting a license file imports or updates the server license. This should not occur until the Import / Update Dodeca License button is pressed. #2047

  • Fixed Issue: When the configured Dodeca database is unreachable or the connection to the database is misconfigured, the following misleading error can occur: 'SOAP-ENV' is an undeclared namespace. Line 1, position 41. In this and subsequent releases, the following error message will be displayed instead. #2020


Essbase Adhoc Views

  • Enhancement: With this version, the Essbase Connection Sign On docked control displays the database description and “Note of the Day” in the tool tip. Previously, only the description was displayed for a database. #1792

Essbase Excel Views

  • Enhancement: The ability to cascade based on the results of an MDX query is now supported. #2060

  • Fixed Issue: When a cascaded Excel Essbase view template leverages the CascadeSheetConfig property and multiple cascade template sheets, if the tab of the active sheet in the template is to the right of the rightmost cascade template sheet, the following error can occur: Unable to build the view. Unable to do cascading. Illegal Sheet Index. #2046

  • The error message displayed when attempting to cascade an Excel Essbase view with no items to cascade on, “Unable to do cascading. EssbaseSpreadsheetGear.RemoveSheet failed. Cannot delete the last visible worksheet.” has been replaced with the following message “No worksheets were generated for Cascade view.” #2065

Essbase Selector Metadata Editor

  • Fixed Issue: When using Import Dimensions to add Essbase selectors, the columns in the editor are not resized to accommodate the width of the cell values. This is especially apparent when no other Essbase selectors already exist, which results in the ID column displaying only the first one or two characters of each selector ID. #2061

Essbase Server Scripts Editor

  • Fixed Issue: When displaying server scripts that did not include explicit locales, if the Essbase server’s locale was returned as a binary value, a Base64 encoded string was displayed as the locale name in the header record. #2025

  • Enhancement: When displaying server scripts that do not include explicit locales, the line number of the header record is now displayed as 0, in order to sync the line numbers displayed with the contents of the file. When displaying server scripts that do contain explicit locales, the line number of the header record is now displayed as 1. This is helpful as a quick visual indication of whether the file contains a server locale override, but it is particularly useful when displaying error messages that contain line numbers to locate syntax errors, since the line numbers indicated will now be in sync with the line numbers shown in the editor. #2025

  • Enhancement: Essbase server scripts can now be saved to a local file by pressing Ctrl+S while the editor is focused. #2025

Import View from Excel Tool

  • Fixed Issue: After importing a view from Excel, a dependent selector with a DefaultSelectionPolicy of FirstItem fails to default the selection to the first item when the user changes the "depended on" selection. #1997

PDF View

  • Fixed Issue: When displaying PDF documents stored as binary artifacts or SQL blobs, if the same document is loaded into multiple instances of the PDF View simultaneously, an error similar to the following could occur: The process cannot access the file '[path to pdf file]' because it is being used by another process. #2013

Query Editors

  • Enhancements: A Show Line Numbers toggle button has been added to all query and script editors that support line number display. This allows a user to quickly show or hide line numbers, and the last used setting is cached to default to the user’s preference for subsequent usage. Additionally, the line number font and size are kept in sync with the user-specified font settings, and a border line has been added to create visual separation between the line numbers and the value text being edited. #2003, #2025

  • Fixed Issue: When the SQL query and Essbase script/query editors are displayed, the cursor is positioned at the bottom of the query, which causes longer queries and scripts to open scrolled to the bottom. In this release, the initial cursor position is set to the top of the query. #2014

  • Fixed Issue: When using the Essbase Scripts Metadata Editor, if the Essbase script/query editor form is closed prior to the script’s test execution being completed, an unhandled exception will be raised. #2042

SQLPassthroughDataSet Editor

  • Enhancement: The SQLPassthroughDataSet editor has been enhanced to provide support for identifying the DataTableInfo Columns and PrimaryKey columns from the database and table associated with a given query, as well as generating reasonable “default” statements for SelectSQL, InsertSQL, UpdateSQL, and DeleteSQL. From the Query Editor or Column Editor, press the newly added Identify Table Columns button to be presented with a column lookup configuration dialog, which will attempt to resolve the database type, database name, and table name from the SQLConnectionID and active Query. Additionally, options to identify PrimaryKey columns and choose whether to identify all columns in the table or only the columns selected by an available SelectSQL statement are provided. #1610


SQLPassthroughDataSet Fixes

  • Fixed Issue: When retrieving a partial SQLPassthroughDataSet asynchronously, if the DataTable containing the results of the query does not contain all of the primary keys configured, an exception can be raised on a background thread, and the completion method is never called. This could occur, for example, when leveraging the IncrementalMaxRows property or the Test Data Set capabilities of the SQLPassthroughDataSet editor. When this occurs, the invoker does not receive a callback, and so, cannot determine whether the query has been processed or report the error to the user. #2021

  • Fixed Issue: A post-Insert Select statement may return numeric values formatted as scientific notation. #2069

View Selector Tree

  • Fixed Issue: When the first item in the View Hierarchy is filtered out due to an AccessFilter, the item is still displayed in the tree. When a category is the first item in the tree, although the category item is displayed, all of the children of the category are hidden as intended, and no views are exposed to users who should not have access. #2026

Workbook Script Editor Enhancements and Fixes

In the version, the Workbook Script Editor was revised in order to improve and enhance the creation and editing of workbook scripts. The 7.6.0 release includes some additional refinements, including several resulting from customer feedback.

  • Enhancement: In the Formula Editor, when case-sensitive text, such as SQL statements containing excel keywords were pasted in, the keywords would be automatically capitalized, which could cause issues under some circumstances. #1993

  • Enhancement: In the Formula Editor, when the value textbox had keyboard focus, the escape key would not close the form and discard the changes. In this version, the escape key can be used from anywhere in the form to discard the changes to the value. When the escape key is used to dismiss the Formula Editor and there are unsaved changes to the value, the user will be prompted to confirm that they wish to discard the changes. #2018

  • Enhancement: The Formula Editor function dropdown list now presents the Function Name, Use Pattern, and Description in separate columns. The columns can be resized, and the dropdown can also be resized by clicking and dragging the lower right corner. #1979

    In Filter Mode, which is enabled using the Filter Mode toggle to the left of the dropdown control, provides the ability to search the list.


    The filtered list contains any function whose name, use pattern, or description contains the entered text. The text to search can be modified with the dropped down list in view and the list automatically updates to display the matched functions.

  • Enhancement: Disabled Methods and Method Condition argument rows are visually distinguished with full row highlighting in pale red in addition to a red row selector. #2000

  • Enhancement: Added support for key-based navigation within the Procedures and Methods grid by using the following hot-keys: #2001

    • Ctrl + Up Arrow: Moves focus to the previous Method (within the same Procedure)

    • Ctrl + Down Arrow: Moves focus to the next Method (within the same Procedure)

    • Ctrl + Page Up: Moves focus to the previous Procedure

    • Ctrl + Page Down: Moves focus to the previous Procedure

  • Sizing Enhancements:

    • The default size of the method/argument name column and the argument value column is larger than in the previous version. #2005

    • The width of all dropdown lists is sized to accommodate the width of the items in the list. #2008

  • Fixed Issue – When the arguments are displayed on the side, the arguments are not included when the workbook script is exported to an Excel file. #2002

  • Fixed Issue – In the function list dropdown list, moving the scroll bar doesn’t scroll the entire list, but instead opens a popup that shows what will become active when scrolling is done. #2064

  • Find All – Modified the behavior such that the first occurrence of a match becomes the active occurrence. Previously, the last occurrence was the active occurrence. #2009

    Additional changes to the Find and Replace functionality include making the visual presentation (highlighting) of found cells/rows to be consistent with the changes and a fix to an issue encountered when performing a replace and a match is detected in a non-editable value, such as a method argument name.

  • Context Menu – Removed redundant shortcut key combinations from the captions displayed in the context menu. #2006

  • Debug Mode — Added the ability to set the Debug Mode using a dropdown positioned to the right of the script title. Previously, the Debug Mode could only be set in the Definition grid. #2010


    This allows the Debug Mode to be changed without having to open the Definition grid.


Workbook Script Functions and Methods

  • New Function – The MetadataInstanceExists function can be used to determine whether a metadata instance exists in the Dodeca repository. The function returns True or False, depending on whether an instance with the specified ID, category, and optionally, version exists in the Dodeca repository. #1996

    Function Usage:
    @MetadataInstanceExists(<MetadataInstanceID>, <MetadataCategory>, [<VersionNumber>])
  • New Function – The SheetProperty function can be used to get the value of various sheet properties.

    Function Usage:
    @SheetProp(<PropertyName>, [<SheetNameOrIndex>])

    PropertyName: The name of the property. Not case sensitive. Only enough characters to uniquely identify the property need to be specified.

    Valid property names and expected return values include the following:

    • AutoFilterMode: true or false

    • DefaultColumnWidth: the default column width

    • Index: the sheet number

    • Name: the sheet name

    • Protected: true or false

    • Visible: true or false

    • Type: worksheet, chart, otherc

    SheetNameOrIndex: The name or sheet number. Sheet number is zero-based. If a sheet is not specified, the active sheet is used. #2063

  • Fixed Issue with EssbaseRunCalc Method: The DoTokenReplacment argument must set to TRUE when using the CalcScriptID argument in order for tokens to be replaced. This behavior is a change to the previous and intended behavior, which is to automatically perform token replacement when using the CalcScriptID argument. This issue was introduced in version, June 19, 2018. #1992

  • Fixed Issue with InsertRange and DeleteRange methods: The new ShiftDirection argument options, ShiftEntireColumnExcel and ShiftEntireRowExcel, which were added in, were not working properly. #1927

  • SaveWorkbook method was modified as follows:

    • Added a Specify overload, which includes a FileType argument. Valid values include: CSV, Excel8, OpenXmlWorkbook, OpenXmlWorkbookMacroEnabled, and UnicodeText

    • Added UnicodeText as a Save As file type.

    • Added a dropdown list for the Folder argument, which includes Desktop and MyDocuments. The default folder value is MyDocuments. #1953

  • New Method Argument – The AddDataCache [EssbaseMDXScript Overload] has a new EssbaseScriptID argument. This argument was introduced in order to specify MDX Script objects stored in metadata. #1954

  • New Method Argument Value – The WriteLogMessage method has a new Encoding argument value, UTF-8 (without BOM). This encoding type was introduced in order to write log messages without emitting the UTF-8 byte order mark. #2058