Dodeca Version 8.4.0
November 14th, 2024 - Build 270
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 2023 (9.2.44.102), NetAdvantage 2021, Volume 2 (21.2.46), Aspose.Cells 24.8.0, Aspose.Slides 24.8.0, Syncfusion Essential Studio 25.1.39, GdPicture.NET 14.1.0.121, and Xceed Zip 3.6.7363.15420.
*Upgraded from SpreadsheetGear 2017 8.7.12.102 to 2023 9.2.44.102.
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 8, 11, and 17. The Dodeca-Essbase connector (for all Essbase versions) is supported and tested on Java 8, 11, and 17.
This release notes for this version contain the following items:
Application Startup
-
Improvements have been made to the initial launch performance of Dodeca. It was discovered that the original caching mechanisms, based on the Microsoft Application Blocks codebase, did not perform efficiently in the modern version of .NET introduced in Dodeca 8.0. These caching mechanisms have been rewritten, resulting in significantly improved launch performance. #2497, #3258
-
Added support for launching the Dodeca client application via a custom app URI scheme. Any configured
UriScheme
(dodeca://
by default) can be used to launch the Dodeca client with ClickOnce format query string parameters, as follows: dodeca://launch?t=DEMOAPP&a=ADMINTo change the app scheme registered and used by the Dodeca client, update the
UriScheme
defined in the<appSettings>
block of the AppliedOLAP.Dodeca.SmartClient.exe.config. To disable custom app scheme registration, comment out or remove the same line. #3580<appSettings> <!-- Indicates the custom app URI scheme used to launch the application. --> <add key="UriScheme" value="dodeca://" /> </appSettings>
Application Tokens
-
Added support for adding (or overriding) application tokens with locally defined values at startup. These are most commonly used to add privileged or environment-specific values to the application token table without retaining them in or distributing them via metadata.
To add tokens to the application token table at startup, any number of
<token>
elements can be added to the pre-defined<tokens>
block in the AppliedOLAP.Dodeca.SmartClient.exe.config. #3768<!-- Dodeca Token Configuration If desired, the tokens block can be used to specify any number of tokens to be to the application token table at startup. These are commonly used to provide privileged or environment-specific values to the app without distributing them. --> <tokenConfiguration> <tokens> <token name="[T.ClientCertificate]" value="%USERPROFILE%\app-only.pfx" /> </tokens> </tokenConfiguration>
AuraPlayer Connector
-
Added an AuraPlayer connector, which allows for bringing data from Oracle E-Business Suite, Oracle Cloud ERP, Oracle Cloud HCM, Oracle Integration Cloud, Oracle ORDS database, and other REST-based data sources via the AuraPlayer server into a formatted view. See further documentation on the AuraPlayer connector at https://developer.appliedolap.com. #3593
Documentation
-
Removed the Workbook Script Reference Guide from the Dodeca Framework distribution. See https://developer.appliedolap.com for an up-to-date Workbook Script reference. #2695
Dodeca Shell
-
The
import-tenant
command can now honor artifact locks. The--honor-locks
flag will instruct the import process to not overwrite or update artifacts that are locked. #3456
Dodeca Standalone
-
The Tanuki Java Service Wrapper, which is used to manage the Dodeca Standalone service, was updated from version 3.2.3 to version 3.5.54. #3669
-
Fixed Issue: SQL Passthrough DataSet operations returning a large number of rows (660,000+) may throw a Java memory error (heap space) due to larger memory settings in the Standalone configuration not being honored (fix is updated wrapper). #3535
Drillbridge Connector
-
Added a Drillbridge connector, which allows for bringing data from a Drillbridge report into a formatted view. See further documentation on the Drillbridge connector at https://developer.appliedolap.com. #3747
-
Added native support to Excel Essbase views for Drillbridge drill-through. #3686
Oracle EDM Connector
-
Added an Oracle EDM connector, which allows for bringing data from EDM via the Oracle Cloud EPM REST API. See further documentation on the Drillbridge connector at https://developer.appliedolap.com. #3898
EPM Cloud Connector
-
Added support for
Update Outline XML
and updating EPM Connector cache from the Essbase Connections metadata editor. #3700
Essbase Connector
-
Fixed Issue: When a blank value is sent during a send operation, an error message stating "Cell content is not double." is displayed. #3892
-
The Dodeca Essbase Connector (WAR packaging) and Dodeca Essbase Standalone Connector have been merged into a single distribution. Instead of shipping pre-packaged .WAR files for each version of Essbase Java media, the media are provided and a packager tool has been shipped with the standalone connector that will generate a .WAR file for a given version of Essbase media. The packager tool is provided in the
/tools
folder of the connector. The simplest possible invocation is to runjava -jar dodeca-essbase-packager.jar create --version 11.1.2.4.048
which would then create a WAR file containing the Essbase Java media for version 11.1.2.4.048. #3468 -
The Tanuki Java Service Wrapper, which is used to manage the Dodeca-Essbase Standalone service, was updated from version 3.2.3 to version 3.5.54. #3863
Essbase REST Connector
In Dodeca 8.4, the new native Essbase REST Connector enables direct connectivity between Dodeca and an Essbase server using the Essbase REST API over the HTTPS protocol. This eliminates the need for the Dodeca-Essbase connector, a middle-tier component that previously had to be located in close physical proximity to the Essbase server. The native Essbase REST Connector is built on the open-source EssSharp project published by Applied OLAP (https://github.com/appliedolap/EssSharp). #3243
NOTE: Due to differences in how the Essbase REST API returns Essbase labels in the grid information compared to the Essbase Java API used in the Dodeca-Essbase Connector, you may need to adjust the value of the RepeatMemberLabels
property to obtain comparable results. To illustrate this issue, consider the following Essbase grids.
When retrieved using the Dodeca-Essbase service, the resolved grid appears as below:
When the RepeatMemberLabels property is set to False for the grid, the grid retrieved using the Dodeca Essbase REST Connector does not retain block headers on columns. Note that the Essbase member labels are missing from the range D1:D2:
Finally, when the RepeatMemberLabels property is set to True for the grid, the block header format is properly retained for columns. This is particularly important for member labels that are referenced by formulas used in the Dodeca commentary functionality. The RepeatMemberLabels property in the Dodeca Essbase REST Connector applies to both rows and columns, which differs from the Essbase Java API behavior, where it applies only to rows. The same grid retrieved using the Essbase REST API is shown below. Note that Essbase member labels are filled in the range A5:A7.
When converting existing Dodeca views from using the Dodeca-Essbase Connector to using the Dodeca Essbase REST Connector, you may need to set the RepeatMemberLabels
property to True to maintain the same functionality.
Metadata Dependencies
-
Fixed Issue: Metadata
Depends On
functionality does not detect EssbaseConnectionID for a view when they are explicitly set in a view’s selector configuration. #3720 -
The Dodeca Server now uses the Fastexcel instead of Apache POI to analyze spreadsheet template binary artifacts for dependencies. #3428
Metadata Editors
-
A new Connections editor has been introduced that will eventually replace individual connection editors such as those for SQL and Essbase connections with a single interface to edit and manage all connection types. #3244
-
Added support for SQL connection type in general Connection editor. Various connection objects such as SQL, Essbase, SMTP, and EPM Cloud are gradually being moved to a general editor instead of having separate ones. #3706
-
Modified the Essbase Connections metadata editor’s Test Connection button’s behavior. The test results information has been remomved from the connection property grid and added a test results dialog to show the test results. #3265
-
Fixed Issue: Fixed issue of case sensitivity with tokens in the SQL Editor. Eliminated token case sensitivity when using the "Show TestToken Values" checkbox and also when using the "Edit TestTokens" button. #3399
-
Added the DataTable name to the SQL editor form’s title. #3557
-
Fixed Issue: Modified the Dodeca Applications metadata editor to preserve the current view selector properties when a different ViewSelectorObjectTypeID is selected. Prior to this change properties like HierarchyID were lost whenever ViewSelectorObjectTypeID was changed. #3712
-
Fixed Issue: When viewing module files in the Modules metadata editor, temporary files are not removed from the user’s temp folder. #802
PDF View
-
Fixed Issue: PDFs loaded from SQL BLOBs may load slowly and jump to the incorrect location. #3303
PowerPoint Exports
-
Added a
ShapeType
argument to PowerPoint export functionality to allow for the copying of ranges to PowerPoint as images or tables. AShapeType
argument has also been added to thePowerPointOperations
method’sCopyRange
overload. #3555 -
Replaced PowerPoint automation with the Aspose Slides API for Dodeca’s PowerPoint export functionality. This has allowed us to make the export functionality faster and more flexible. All existing PowerPoint export functionality should be thoroughly tested. #3522
Selector Lists
-
Added support for a
DataSetSelectorList
that utilizes aDataSet
to produce generic selector list items for aSelectorComboBox
orSelectorListBox
. For an arbitrary data set, anItemValueColumn
and, optionally, anItemDisplayNameColumn
from the data set are chosen. #3753For the following data set, which represents a list of Oracle Enterprise Data Management applications, a selector list can easily be constructed.
For the
DataSetID
EDM Applications, the ID column will be chosen as theItemValueColumn
, and the Name column will be chosen as theItemDisplayNameColumn
.When added to a view, the end-user is presented with a generic selector populated by the backing data set.
Selectors
-
Autosize width functionality has been added to selectors. #2101
-
Double-clicking the splitter that separates the point of view selectors from the other windows, presumably view windows, will auto-size the width of the selector pane.
-
In the Selector Lists metadata editor, there are two new properties:
-
AutoSizeOnNodeExpansion: Whether to automatically size the width of the selector when a node is expanded. The width will only be changed if it isn’t wide enough to display all nodes. The width will never be made narrower.
-
MaxAutoWidth: The maximum width of the control when it is auto-sized. A default value of 0 is applied as no limit.
-
-
-
Fixed Issue: Multiple requests sent to server when mouse moves over a member in the treeview selector. #3748
-
Fixed Issue: Multiple SQL selectors cannot be initialized simultaneously. #3672
-
Added
Today
as an option in a selector’sDefaultSelectionPolicy
list. This option only applies to Date selectors and Generic selectors that use the SelectorComboBox SelectorControlObjectTypeID. #2053 -
Fixed Issue: In earlier 8.x releases, selector and other cached values were not retained across upgrades under some circumstances. #3249
Spellcheck
-
Spellcheck functionality has been added to Dodeca. #2258
-
New workbookscript method: Added a
SpellCheckOperations
workbook script method with aRange
overload. The overload spellchecks a specified range. If no range is specified the worksheet will be spell-checked. -
Spell-check in the comments editor: This functionality uses squiggly red underlines to indicate spelling errors in the subject and comment input boxes, and a spelling context menu to provide options to fix. Comment ranges have a new property, SpellcheckEnabled, to control whether spellcheck is enabled for each specific comment range.
-
Spell-check on worksheets: A new standard tool controller, ExcelSpellCheckToolController, with a key of ExcelSpellCheck, has been added to Dodeca. Clicking this button initiates spell checking of specific ranges (or the used range if there are no ranges specified). Ranges can be specified by setting the new SpellCheckEnabled property on the CommentRange class and/or setting the SpellCheckEnabledRange on the DataTableRange class. The range-check functionality cycles through the cells in the specified range(s) and uses a dialog to prompt the user to respond to each spelling error.
-
SpreadsheetGear
Numerous new features were introduced and numerous issues were resolved with the updated version of SpreadsheetGear included in this version of Dodeca.
-
Introduced support for fine-grained worksheet protection options, allowing for more detailed control over the protection settings within worksheets. #3332
Fine-grained protections were introduced in Excel to allow users to protect different elements of a spreadsheet. Below is the
Protect Sheet
dialog from Excel showing the functionalities which users can be given access within protected worksheets when using fine-grained protections.Fine-grained protection functionality has also been integrated into workbook scripting. See Workbook Scripting for more information.
Potential Breaking Change: Previous versions of Dodeca included code which silently unprotected the worksheet when the mouse cursor was moved off of the data cells of the grid in order to allow worksheet grouping row and column expansion and collapse to work properly on a protected worksheet. This code was removed from this version of Dodeca. In order to allow worksheet grouping to work properly on protected worksheets, you must export the workbook and apply fine-grained protections to allow the
Format columns
and `Format rows' operations on protected worksheets. -
Added support for built-in and custom document properties. #3333
The ability to set and to retrieve document properties have been integrated into workbook scripting. See Workbook Scripting for more information.
-
Fixed Issue: A warning is displayed when an unlocked cell is double-clicked or when the mouse is dragged outside the worksheet in a password-protected workbook. #2219
-
Fixed Issue: Cell comments are now preserved when exporting a Dodeca xlsx workbook to Excel. In prior versions, cell comments were not retained during the export process when the Dodeca template used the Excel xlsx file format. #2643
-
Fixed Issue: Worksheet grouping lines disappear when grouping columns and hiding the column immediately to the left of the grouping +/- sign. #3066
-
Fixed Issue: Dodeca client crashes running a view containing a cascade when the "Icon Set" conditional format is used in the template. #3556
-
Fixed Issue: Tooltip positioning issue when using split / frozen panes. #3607
SQLPassthroughDataSets
-
Removed the
IncrementalMaxRows
property from the SQLPassthroughDataSet Query, since it has not been supported by the Dodeca server since 8.2.0. #3776 -
Removed the
DatabaseCursorType
property from the SQLPassthroughDataset Query, since it has not been supported by the Dodeca server since 8.2.0. #3500 -
Added a RowSetCachingProvider option to SQLPassthroughDataset operations. The
Default
or no selection options use standard behavior for operations. TheGZipCompressed
option will compress result sets in order to reduce memory usage on the server, which may be useful for large dataset operations.
View Selection
-
A filter row has been added to the view selection form which is used to choose a view in the view hierarchy editor, the view editor (to select a drill-through view), and the toolbars configuration editor (to associate a view with the open view button). #2324
View Selectors
-
Autosize width functionality has added to view selectors. #2101
-
Double-clicking the splitter that separates the View Selector from the other windows, presumably view windows, will auto-size the width of the view selector pane.
-
In the Application metadata editor, there are two new properties under ViewSelectorProperties:
-
AutoSizeOnNodeExpansion: Whether to automatically size the width of the selector when a node is expanded. The width will only be changed if it isn’t wide enough to display all nodes. The width will never be made narrower.
-
MaxAutoWidth: The maximum width of the control when it is auto-sized. A default value of 0 is applied as no limit.
-
-
-
New ViewHierarchyItem Type: Added a MostRecentlyUsedViewListHierarchyItem. When this item is added to a view hierarchy a list of the user’s most recently used views will be included in the ViewSelector at runtime. #3698
-
Added a "Copy Name" item to the View Selector context menu to allow copying of any view or category name. In addition, the keyboard shortcut Ctrl+C is now supported to copy a view or category name when the
ViewSelectorObjectTypeID
is ViewSelectorTree or ViewSelectorExplorerBarTreeHybrid. #3573
View Wizard
-
The Dodeca view wizard dialogs have been enhanced to automatically set the
ViewID
to match theViewName
, if theViewID
is blank. #3595
Workbook Script Debugger
-
Added the WorkbookScript name to the Dodeca debugger’s title bar. This helps to reduce confusion when multiple WorkbookScripts could be in context. #3604
Workbook Script Editor
-
The WorkbookScript editor has been enhanced to automatically set the
MethodCondition
to TRUE when the method’sEnabled
property is changed from FALSE to TRUE, provided that theMethodCondition
was previously set to the literal value FALSE. #3725 -
New Feature: Instant formula resolution capability has been added to the Dodeca Formula Editor. In the formula editor any open view can be selected to instantly resolve the formula as it is being typed. #3681
Workbook Scripting
-
New Function: Added new function, Directory:
@Dir(<FileOrFolder>, <Path>, [<Recursive>], [<IncludeHeaders>], [<MaxRows>], [<SortOrder>], [<Col1>], [<Col2>], [<Col3>], … )
returns a Directory listing. #2359Parameters include:
-
FileOrFolder
, Whether to return files or folders. Specify "Fi(le)" or "Fo(lder)". -
Path
, The path to the directory to search, like "C:\Users\Myself\Desktop". -
SearchPattern
, The search string to match against the path. Can be left blank. This can include valid literal and wildcard characters, like "*.xlsx". Regular expressions are not supported. -
Recursive
, Whether to search sub-folders. The default is FALSE. -
IncludeHeaders
, Whether to include column headers. The default is FALSE. -
MaxRows
, The maximum number of rows to return. Defaults to 300. -
SortOrder
, Specify the list’s column number(s) to sort by, separated by commas, like "FolderName, Name desc". -
Col(n)
, Which columns to include, like "…, Name, Extenstion, FileSize". The default is "Name".Available columns:
-
All
Include all columns. -
Name
The name of the file or folder. -
FullName
The full path of the file or folder. -
Extension
The extension of the file (returns blank of listing folders). -
DirectoryRoot
The root of the file or folder’s path. -
FolderName
The name of the folder. If files are listed this would be the file’s folder. If folders are listed this would be the folder’s name (the same value returned for the Name column). -
FolderParent
The parent folder of the listed file or folder. -
FileSize
The size of the file in kilobytes (returns blank if listing folders). -
FileCount
The number of files in the folder. -
FolderCount
The number of sub-folders of the folder. -
ReadOnly
Whether the file is read-only (returns blank if listing folders). -
Attributes
The attributes of the file (returns blank if listing folders). -
Created
The time the file or folder was created. -
CreatedUtc
The time the file or folder was created in Coordinated Universal Time. -
Accessed
The time the file or folder was last accessed. -
AccessedUtc
The time the file or folder was last accessed in Coordinated Universal Time. -
Written
The time the file or folder was last written to. -
WrittenUtc
The time the file or folder was last written to in Coordinated Universal Time.
-
-
New Function: Added a ProcessInfo function.
@ProcessInfo(<InfoType>)
returns specified process information. #3493 InfoTypes include:-
ID
, Returns the application’s ProcessID. -
StartTime
, Returns the application’s StartTime. -
TotalMinutes
, Returns the number of minutes that the application has been running.
-
-
New Overload: Added a
DelimitedString
overload to theForEach
method. The new overload executes a procedure for each value in a delimited string. Arguments areString
,Delimiter
,Procedure
,ExitLoopCondition
, andPropertyName
. #3515 -
Added a
ReplaceTokens
argument to theSetPageSetup`
HeadersAndFooters` overload. This argument determines whether to replace tokens in all headers and footers. Token replacement is done after new header or footer values are set, if any. It isn’t necessary to specify any headers or footers to do token replacement. The default is TRUE. #3568 -
New Method: Added a
FileOperations
method with overloadsAddFile
,CopyFile
,DeleteFile
,MoveFile
,AddFolder
,CopyFolder
,DeleteFolder
, andMoveFolder
. #3569 -
New Overload: Added a
Tokens
overload to theAddDataCache
method to build a DataCache from tokens. The overload includes arguments for whether to include each of these token types: ApplicationTokens, SelectorTokens, and ViewTokens. #3587 -
New Method: Added a the
UpdateExcelPivotTable
WorkbookScript method. This method updates a pivot table in an existing Excel file. The overloads areBinaryArtifact
andFile
to allow the source Excel file to come from the file system or an application binary artifact. The data to update the pivot table with can come from a view range, a DataCache, or SQLPassthroughDataset. #3603 -
New Overload: The the
PowerPointOperations
method has a new overload,GetRangeMetrics
. This overload can be used to capture placement and size information of a specified range in WorkbookScript properties. These properties areTop
,Left
,Height
,Width
,Scale
,SlideHeight
, andSlideWidth
. Using the Dodeca@PVal()
function, these values can be used to place ranges from Dodeca views into a PowerPoint presentation relative to other objects in the presentation. Known Issue: When a table containing hidden rows is copied into a Powerpoint presentation, the hidden rows appear unhidden in the Powerpoint presentation. #3649 -
Removed the unused
EnableLogging
property from thisSendEmail
ServletSMTP
overload. #3668 -
New Method: The
ShowContextMenu
method shows the specified worksheet context menu. It defaults to the GridContextMenuID defined in the view’s UI properties. #3683 -
Fixed Issue: Error message "Operation is not valid on a locked cell" displayed when performing a Cut operation on an unlocked cell in a protected worksheet, followed by the
SetFill
method being called in theRangeChanged
event. #3606
-
Fixed issue: The WorkbookScript error dialog would not appear after clicking the Error Details button at the bottom of the view’s window. #3702
-
New Method: The
SetViewCaption
method sets the view caption text and icon at the top of a view tab. #3768 -
Modified view properties
SelectorConfiguration
andCascadeSources
to return their lists, as delimited strings, when captured using the@ViewPVal()
function, rather than simply returning the class name. The function results can be used with theAddDataCache
method to create a list of the view’s selectors or cascade sources. #3779 -
New Method Overload: The
DataSet
overload has been added to theAddDataCache
method. #3719 -
New Method Overloads: The following overloads have been added to the
SetProtection
method: #3332-
AllowFormatCells
- Whether to allow users to format cells. -
AllowFormatColumns
- Whether to allow users to format columns. -
AllowFormatRows
- Whether to allow users to format rows. -
AllowInsertColumns
- Whether to allow users to insert columns. -
AllowInsertRows
- Whether to allow users to insert rows. -
AllowInsertHyperlinks
- Whether to allow users to insert hyperlinks. -
AllowDeleteColumns
- Whether to allow users to delete columns. -
AllowDeleteRows
- Whether to allow users to delete rows. -
AllowSelectLockedCells
- Whether to allow users to select locked cells. -
AllowSelectUnlockedCells
- Whether to allow users to select unlocked cells. -
AllowSort
- Whether to allow users to sort. -
AllowUseAutoFilter
- Whether to allow users to use auto filter. -
AllowEditObjects
- Whether to allow users to change graphic objects including maps, embedded charts, shapes, and text boxes, as well as comments.
-
-
New Method: The
SetWorkbookProperty
method sets the value of one or more workbook properties. #3333- Method Arguments - General Overload
-
-
Author: Set the value of the Author workbook property.
-
Category: Set the value of the Category workbook property.
-
Comments: Set the value of the Comments workbook property.
-
ContentStatus: Set the value of the ContentStatus workbook property.
-
CreationDate: Set the value of the CreationDate workbook property.
-
DocumentVersion: Set the value of the DocumentVersion workbook property.
-
Keywords: Set the value of the Keywords workbook property.
-
Language: Set the value of the Language workbook property.
-
LastAuthor: Set the value of the LastAuthor workbook property.
-
LastPrintDate: Set the value of the LastPrintDate workbook property.
-
LastSaveTime: Set the value of the LastSaveTime workbook property.
-
RevisionNumber: Set the value of the RevisionNumber workbook property.
-
Subject: Set the value of the Subject workbook property.
-
Title: Set the value of the Title workbook property.
-
CustomPropertyName: The name of a custom property to set the value of.
-
CustomPropertyValue: The value to give to the specified custom workbook property.
-
- Method Arguments - Clear Overload
-
-
ClearBuiltInProperties: Whether to clear all built-in workbook properties.
-
ClearCustomProperties: Whether to remove all custom workbook properties.
-
-
Added ability to create SMTP connection objects and specify an SMTP connection ID in the
SendEmail
method. Centralizing SMTP connection information into objects will allow for easier maintenance and aligns this functionality with Dodeca’s connection model. #2651
Workbook Scripting Event Links
-
New Event Link: A WorkbookScriptException has been added. The new event occurs when there is a workbook script exception. #3405
The event link’s properties include:
-
WorkbookScriptID
, The ID of the WorkbookScript that raised the exception. -
EventLinkName
, The name of the EventLink that ran the Procedure that raised the exception. -
ProcedureName
, The name of the Procedure that raised the exception. -
MethodName
, The name of the Method that raised the exception. -
OverloadName
, The name of the Overload of Method that raised the exception. -
MethodNumber
, The number (within the Procedure) of the Method that raised the exception. -
Arguments
, The arguments of the Method that raised the exception. -
Exception
, The text of the exception.
-