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 (8.1.58.102), NetAdvantage 2011, Volume 1 (11.1.20111.2042), Aspose.Cells 19.5.0.0*, Syncfusion Essential Studio 13.4.0.63, 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 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.
*Upgraded from Aspose.Cells 17.1.0.0 to Aspose.Cells 19.5.0.0.
The Dodeca-Essbase services built for the Provider Services 11.1.2.4.029 and 11.1.2.4.031 patchsets have been removed from the Applied OLAP website. This is due to an issue in both updates with MDX queries with Dimension Properties executed from JAPI not returning correct results. Oracle is recommending that customers on Provider Services 11.1.2.4.029 or 11.1.2.4.031 should upgrade to 11.1.2.4.032 or higher.
The release notes for this version contain the following sections:
Enhancement - Support has been added for optionally allowing the current user
to reauthenticate and continue the session after an inactivity or scheduled
timeout occurs. When the application’s AllowReauthenticateAndContinue
property
is set to True and an authentication service that requires credentials is configured,
the user will be prompted with an opportunity to reauthenticate and continue
the session. When this property is set to True, the MessageTextForClosingSession
property should be updated to inform the user that she or he must reauthenticate
to continue and that cancelling will terminate the application. #2116
Enhancement - When a required startup parameter is missing, (i.e., Tenant
or
Application
for a ClickOnce deployment), optionally show a launch dialog rather
than displaying an error. This is particularly useful when a new Dodeca user
accesses a deployment URL in an unsupported browser (or a supported browser
without a ClickOnce extension) and the startup parameters are lost.
This functionality is enabled by default. To disable this functionality, the
PromptWhenMissingParameters
key can be set to false in the
AppliedOLAP.Dodeca.SmartClient.exe.config. #2202
<appSettings> [...] <!-- Indicates whether to prompt the user when the application is missing required startup parameters. --> <add key="PromptWhenMissingParameters" value="false"/> </appSettings>
In this version, support has been added for populating Application Tokens from
a SQLPassthroughDataSet at startup. This functionality is governed by the
Application’s ApplicationTokensSQLPassthroughDataSetID
property, which
specifies the SQLPassthroughDataSet that should be executed at launch.
If specified, the ApplicationTokensSQLPassthroughDataSetID
defines the query
or queries used to obtain the application tokens for the current application,
optionally using any of the following variables to return columns containing
token names and values:
Token | Description |
---|---|
[T.Tenant] | The tenant of the current application. |
[T.Application] | The current application ID. |
[T.DeploymentURL] | The URL of the current Dodeca servlet. |
[T.UserID] | The User ID of the current user, as represented in the User Manager. |
[T.AuthenticatedUsername] | The Authenticated Username of the current user, if an authentication service is leveraged. |
The first column returned by the SQLPassthroughDataSet's SelectSQL
statement
or statements represents token names. The second column represents token values. #1585
EssbaseSimpleAuthenticationService
,
the AuthenticatedUsername is not assigned to the current user, and it does not
get written to the USERS
table. #2222LDAPReturnGroupCommonNames
property has been added. This property controls
whether to return the group common names as opposed to the relative distinguished
names that Dodeca has returned in previous releases. This is useful in general,
but it is particularly useful when switching between Essbase authentication via
Shared Services and the upstream Active Directory server directly, since the same
roles will be obtained by Dodeca from both authentication services.
Additionally, an LDAPReturnGroupFilter
property has been added to support
only returning roles under a given directory in the tree. #2207A new authentication service is provided in this version. The
SQLSimpleAuthentication
authentication service leverages newly introduced
SQLLoginDialog
to provide a simple, role-less
authentication service that prompts the user for valid SQL credentials against a
specified connection upon application startup. This functionality can be used in
conjunction with an SQLConnectionID that contains a valid credential-set for
scheduled report generation. #2237
DATA_AUDIT_LOG_DATAPOINTS
table
when enabling the view’s UseMemberNamesAndAliasesForRowDimensions
property and
both the member name and alias are included in the send range. #2144SelectorListProperties.DefaultSelectionPolicy
is LastUsedItem, the
default selection is not restored. This is an issue when the selector is
configured for single and for multiple selections. #2208Support has been added for optionally populating both Member Name
and Alias tokens for a given selector/selector list. This is governed
by the TokenForMemberNameAndAlias
boolean property, which is configured in the
Selector List. This property is False by default, due to some performance
considerations associated with getting the member info of default selections
when the view is opened.
The default selector token will be assigned on the basis of the UseAliases
setting of an Essbase view or the configuration of an Essbase selector as defined
by a view’s SelectorConfiguration
, and additional tokens will be generated for
the selected member name(s) and alias(es). The additional tokens are defined as
follows:
Selector Token | Member Name Token | Member Alias Token |
---|---|---|
[T.Product] | [T.Product.Name] | [T.Product.Alias] |
!Market! | !Market.Name! | !Market.Alias! |
Scenario | Scenario.Name | Scenario.Alias |
If the selector token ends with a non-alphanumeric character, ".Name" and ".Alias" are inserted before the final character. If the selector token ends with an alphanumeric character, ".Name" and ".Alias" are appended. This configuration option requires additional information about members to be obtained before opening and/or building a view with default selections, so caution should be used when there is the potential for a user to select a large number of items. #2075
The Dodeca version has been added to the information displayed when the dodeca-essbase servlet URL is typed into a web browser window. This can be done to verify the service is running and to view the configuration and logging configuration settings. #2213
The ability to undo and redo an Excel operation using the Ctrl+Z
and Ctrl+Y
shortcut keys has always been supported for several of the Excel operations,
such as editing, pasting values into or clearing a cell; however, many Excel
operations could not be undone, such as inserting or deleting a row. And, Undo
and Redo tools for Excel operations have not been available.
With the 7.7 release, the undo and redo functionality for Excel operations has been extended to include previously unsupported operations. The Excel operations can be undone and redone through the use of the shortcut keys as well as new toolbar buttons. #2028
The Undo/Redo toolbar and tools are available in the view template designer toolbar.
When added to a view’s toolbars configuration, the Excel undo/redo tools are available to end users.
The Undo and Redo tools are a combination of a button and a drop down, which displays the list of operations that can be undone and redone. The tool tip displays the most recent operation that will be undone or redone by clicking the button.
How to add the Undo/Redo toolbar to an existing toolbars configuration:
In the Import Tools and Toolbars Wizard, check Excel UndoRedo
.
The toolbar is displayed in the Toolbars Preview, and can be moved to another location by dragging and dropping.
Enhancement - In this release, printing from a workbook view now queues in the background and does not lock the user interface while the job is spooling. In prior releases, the user interface could become locked for a significant period of time under certain networking and driver configurations. Additionally, printing is now a cancelable background operation that can be controlled via the status bar’s Cancel button. #2165
Enhancement - Print tools are now configurable with respect to showing the
Print Settings dialog that allows the user to choose a printer and configure
the printer settings. In previous releases, the location of the tool dictated
whether a print dialog was shown. The newly added PrintBehavior
property is
optional; valid PrintBehavior
options are listed below. #2169
For both client and server-side request/response logging, the log file naming convention has been updated to include the tenant. This allows requests and responses from different tenants to be more easily differentiated. This is particularly useful when reviewing server-side logs. #1561
The updated log file format is as follows:
{Tenant}.{Method}.{Timestamp}-{Count}.{Type}.xml
A log file for a SelectorListQueryDetails
request might be as follows:
SAMPLE.SelectorListQueryDetails.1549860307379-1.request.xml
SelectorListBox
, SQLSelectorTreeView
,
EssbaseSelectorListBox
, and EssbaseSelectorTreeView
- The view’s
SelectorControlDisplayMode
property controls whether the view’s selectors are
displayed as a modal dialog, docked control, or locked docked control. When set
to "locked docked control", the user is prevented from moving the control to a
different location or floating the control. The issue that has been addressed
is that when the title bar of the dockable control pane is double-clicked, the
control pane becomes a floating control. #2203SelectorDockedControlGroupStyle
is set to
SlidingHeaders, a previously opened selector control can re-open
automatically after being closed by the user. #2293Fixed Issue - When Dodeca runs as a 64-bit process, as it does when using a .NET 4.6.2 release, an error similar to the following error could occur when attempting to send e-mail via the Send To Mail Recipient (As Excel Attachment) or Send To Mail Recipient (As PDF Attachment) tools: Unable to send mail. Arithmetic operation resulted in an overflow. #2276
See also: Workbook Scripting - SendEmail
Enhancement – Added support for prompting end-users to provide SQL credentials
when the Username
and Password
are not configured on a SQL Connection
object and a JNDI DataSource
is not defined. This capability is intended to
behave similarly to the Essbase Login dialog, which allows an end-user to
provide credentials which are cached for the duration of the session and
subsequently reused. The caption of the displayed SQL Login dialog is
controlled via the tokenizable LoginDialogCaption
property. #2124
Enhancement – Added an Insert button to support inserting a new column at the currently selected index, rather than at the end of the list. This is useful when dealing with a large number of columns. #1736
Fixed Issue - When using the SQLPassthroughDataSet Identify Table Columns
functionality against a Microsoft SQL Server database, tables with non-dbo
schemas were not returned correctly, and generated default statements did not
use the appropriate schema for the selected table. #2112
PostgreSQL
databases. PostgreSQL
can also now be specified as a SQL Connection
Database type from the SQL Connections Metadata Editor. #2236SQLStandardizationPolicy
FullStandardization
for a SQLPassthroughDataSet query, literals and identifiers containing contiguous
spaces or commas could become corrupted. In this release, the
FullStandardization policy has been updated to preserve literals and
identifiers, along with the additional enhancement below. To use the previous
implementation of FullStandardization, the SQLStandardizationPolicy
can be
switched to FullStandardizationClassic. #1760SQLStandardizationPolicy
FullStandardization
for a SQLPassthroughDataSet query, the use of line comments is now supported.
In previous versions of Dodeca, line comments needed to be removed or converted to
block comments in order for the query to execute correctly. #2022Added support for the ability to open the view associated with the template using the Open View tool. #1505
CulturePolicy
and CultureName
properties,
is now reflected in the View Template Designer. #1436ViewSelectorTree
- When there is only a single root node,
the Find dialog fails to locate a node that appears in the tree above the
currently selected node. #2291HierarchyToRoleMapping
entries, whether or not an authentication
service is utilized for the application. By simply specifying a Hierarchy ID
and leaving the Role
empty, all users of an application will see the specified
hierarchy or hierarchies. #2292Enhancement - Added support for performing a POST operation against the
configured URL
and rendering the response in a browser view. This capability
can be used to post data to any web service, but one of the primary motivations
for this enhancement is that it provides the ability to drill through to
Drillbridge reports from Workbook Script in the context of an Excel-type view. #2254
To support this functionality, two new Workbook Script functions, @UrlEncode() and @UrlDecode() have been added, along with three new Web Browser View properties:
Property | Description |
---|---|
PostData | A data string that will be posted to the specified URL before rendering the response in the browser. |
PostDataContentType | Primarily used for specifying the "Content-Type" header of the PostData. In addition to the "Content-Type" header, additional HTTP headers may be sent with the initial web request. |
PostDataEncoding | The encoding utilized when sending any PostData content. |
Enhancement - When opening the current URL of a Web Browser View with the Open in New Browser tool, ensure that the page is opened in user’s default web browser. In previous releases, the page was opened in Internet Explorer, regardless of the user’s default browser. #2256
If the prior behavior of opening the current page in Internet Explorer is desired, the Open in New Browser tool can be replaced with the newly added Open in Internet Explorer tool.
The Evaluate as Address button on the Breakpoints and Formula Evaluator tabs does not evaluate the formula when the view’s culture uses a non-comma character as the List Separator. #2286
Enhancement: The ability to navigate directly from an event link to the associated procedure is now supported by the following keyboard and mouse operations: #1141
Ctrl+G
shortcut key.Enhancement: The Workbook Script Editor now supports the ability to navigate from a method argument value that represents a metadata ID directly to the metadata instance in the appropriate Metadata Editor.
The navigation is initiated by selecting the method argument, which represents the metadata ID, and clicking the Edit <Metadata ID> button from the toolbar or the context menu. The appropriate editor is opened or activated and the metadata instance is automatically selected. #2086
Enhancement: The ability to copy and paste an entire workbook script as text is now supported. With this capability, a workbook script can be viewed as text in any text editor, edited, and then pasted back into the WBS Editor. #2093
The original Copy and Paste buttons in the Procedures toolbar have been changed to a button and drop-down menu combination tool. Clicking the button copies or pastes the selected text or element. Clicking the menu shows the Copy script, Copy verbose buttons or the Paste script , depending on the tool.
As an example, this excerpt of Workbook Script text is taken from the Dodeca Sample application’s "Dynamic Input" Workbook Script using Copy script.
Enhancement: In previous versions, clicking the Method Arguments column header automatically sorts the arguments in ascending order alphabetically. Clicking again sorts the arguments in descending order. The only way to restore the original default order is to close and reopen the editor.
In the 7.7 release, the first click sorts in ascending order, the second click sorts in descending order, an the third click restores the original order. #2252
In the 7.6.2.6670 release, the Find/Replace dialog was revamped to provide a more user-friendly and robust capability. The 7.6.3.6719 release included additional fixes and enhancements, and this release includes further improvements, including the addition of Bookmark All and Clear Bookmarks functionality. #2176, #2158
Enhancement: A new button on the Procedures toolbar and context menu has been added to provide the ability to expand or collapse all procedures and their methods. #1374
Formula Editor Enhancement - The position of the splitter between the function description pane and the formula pane is now retained when the dialog is closed and restored when the dialog is reopened. The position is persisted across sessions. #2085
New Function: The DataCacheToString
function returns a string of values from
a column in the specified DataCache. #2159
@DCString(<DataCacheName>, [ColumnIndex], [StringDelimiter], [StringDelimiterEscapeChar],[ValueDelimiter])
New Function: The DefinedNames
function returns a delimited list of defined names
based on a specified scope. #2274
@DefinedNames(<MatchPattern>, [<Scope>], [<ReturnFormat>])
ReturnFormat - (Optional) The default is "Simple". The argument is case-insensitive.
"D[etailed]" - Returns a row-and-column delimited list of:
New Function: The IsMember
function returns whether the specified member
exists. #2271
@IsMember(<MemberName>, [<ConnectionID>], [AliasTable])
New Function: The MemberAttributeValue
function returns value of the specified
member attribute. #1663
@MbrAttrVal(<MemberName>, <Attribute>, [<AliasTable>], [<ConnectionID>], [<DefaultValue="">])
New Function: The MemberFormula
function returns the formula of the specified
Essbase member. #2107
@MbrFormula(<MemberName>, [<AliasTable>], [<ConnectionID>], [<DefaultValue="">])
New Function: The Path
function returns results of Path related operations.
#2262
@Path(<Operation>, [<Argument1>], [<Argument2>])
Operation - The path operation. The argument value is case-insensitive.
Replace characters that are not valid in file names with the specified character:
@Path(CleanFileName, <file-name>, <replace-with-character>)
Replace characters that are not valid in file paths with the specified character:
@Path(CleanPath, <path>, <replace-with-character>)
Combines two strings into a path:
@Path(Combine, <path1>, <path2>)
Combines two strings into a path:
@Path(Combine, <path1>, <path2>)
Changes the extension of the specified path:
@Path(ChangeExtension, <path>, <extension>)
Returns the directory name from the specified path:
@Path(GetDirectoryName, <path>)
Returns the extension of the specified path:
@Path(GetExtension, <path>)
Returns the filename with the extension of the specified path:
@Path(GetFileName, <path>)
Returns the absolute path of the specified path:
@Path(GetFullPath, <path>)
Returns the root directory information of the specified path:
@Path(GetPathRoot, <path>)
Returns a random folder or filename:
@Path(GetRandomFileName)
Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file:
@Path(GetTempFileName)
Returns the path of the temporary folder of the current user:
@Path(GetTempPath)
Determines whether a path includes a file name extension:
@Path(HasExtension, <path>)
Gets a value indicating whether the specified path string contains a root:
@Path(IsPathRooted, <path>)
Returns the filename without the extension of the specified path:
@Path(RemoveExtension, <path>)
New Function: The ServerTime
function returns the current date/time from
the Dodeca server as an Excel date/time value. #2157
@ServerTime([<TimeZone>])
New Function: The SheetExists
function returns TRUE if the specified worksheet
exists. #2216
@SheetExists(<SheetName>)
New Function: The ToolValue
function returns the value of a toolbar tool. #1390
@ToolValue(<ToolKey>, [<DefaultValue>])
New Function: The UniqueValues
function returns a delimited list of the unique
values found in a given list. #1572
@UniqueValues(<List>, [<ListDelimiter>], [<ResultDelimiter>])
To get the unique values within a range, a formula similar to the following can be used:
@UniqueValues(@StringFromRange(<range>))
New Function: The UrlDecode
function returns a decoded representation of a
given URL-encoded string. #2255
@UrlDecode(<EncodedString>)
New Function: The UrlEncode
function returns a URL-encoded representation of
a given string; typically used for the CallWebService
method or Web Browser
view’s PostData property. #2255
@UrlEncode(<String>)
See also: WebBrowser Views
New Function Argument: An optional parameter, Transpose, has been added to the
DelimitedStringFromRangeValues
function to allow the row and column positions
to be swapped. #2238
@StringFromRange(Range, [ColumnDelimiter], [RowDelimiter], [Transpose])
DelimitedStringFromRangeValues
and
StringFromRange
functions when used in conjunction with the
PromptForInput
method’s DropDown
overload. When the function is used as
the DropDownList argument value to represent the display/data value pairs
presented by the dropdown list, which requires \n
as the row delimiter,
the dropdown list only displays a single value. #2215The handling of the MethodCondition and CellCondition method arguments has been revised. If the argument value is the literal "false", or a case-insensitive equivalent, the method is skipped and no other arguments are evaluated.
This avoids the potential of the method failing when the MethodCondition or CellCondition is explicitly set to "false", and the intention is for the method to not execute, but other argument values are invalid. #2092
New Method Argument: A SortOrder argument has been added to the following methods and
functions to provide the ability to specify one or more columns by which to sort
a data cache: BuildRangeFromScript.DataCache
and ForEach.DataCache
method overloads,
and the DataCacheContents
and DataCacheToString
functions. #1672
Example: Col1 Example: Col1, Col3 Example: Col2 DESC, Col1 ASC
ExportToExcel
, SaveWorkbook
, SaveWorkbookAsCsv
, SaveWorkbookAsPdf
,
UpdateBinaryArtifact
. #2251CopyRange
and
CopyWorksheet
methods. The overload supports copying a specified range from an
Excel file into the view. For the CopyRange
method, the overload also supports
copying from a delimited file (.csv) into the view. 2250SetTextAlignment
method’s
HorizontalAlignment argument documentation incorrectly included RightIndent
and LeftIndent as options, which are not supported. #2248New Method: The BinaryArtifactOperations
method supports the following overloads:
ImportRange
– Copy a specified range from a BinaryArtifact into the current view.ImportSheet
– Import a specified worksheet from a BinaryArtifact into the current view.ImportWorkbook
– Import all sheets from a specified BinaryArtifact into the current view.CreateFromFile
– Create a BinaryArtifact from a specified file.CreateFromSheet
– Create a BinaryArtifact from a specified worksheet of the current view.CreateFromWorkbook
– Create a BinaryArtifact from the workbook of the current view.Delete
– Delete a specified BinaryArtifact. #1738New Method: The EssbaseRunMaxL
method runs a MaxL script on the Essbase server.
#1659
New Method Overloads: The ShowMessageBox
method has two new overloads, which
are YesNo
and YesNoCancel
. These overloads allow for a workbook script to show
an enhanced message box, which is also used throughout the client. For example,
the Yes/No/Cancel message box is displayed when the user has modified an editable
SQL View and attempts to close the view without saving the changes:
As an example, the following workbook script could be used to display a message box with the same captions and messages.
An ampersand (&
) can be specified to the left of the character in a caption
that represents the mnemonic character. The mnemonic character is displayed with
an underscore when the user presses the Alt key and indicates which key to press
in conjunction with the Alt key to simulate clicking the button.
Including the button options for the General overload, the responses that return TRUE include Ignore, None, OK, Retry, and Yes. All other responses return FALSE.
When the PropertyDataType is string, the possible values returned as the PropertyName include None, OK, Cancel, Abort, Retry, Ignore, Yes, and No. For an integer, the values include None: 0, OK: 1, Cancel: 2, Abort: 3, Retry: 4, Ignore: 5, Yes: 6, and No: 7.
New Method Argument: The EssbaseRunCalc
method now supports a RuntimeSubVars
argument, which allows the method to be used to run calculations that use the
runtime variables functionality introduced in Essbase 11.1.2.3. The argument
value should be specified as a delimited string of dimension and member pairs,
as in the following example. #1683
Market="Florida";Scenario="Actual";
New Method Argument: An InsertPolicy argument has been added to methods that copy a range. Prior to this release, these methods only performed an overlay of the CopyToRange. #2268
The following methods/overloads are affected:
Method | Overload |
---|---|
BinaryArtifactOperations | ImportRange |
BuildRangeFromScript | ImportRange |
CopyFromBinaryArtifact | Range |
CopyRange | FromFile (New Overload) |
The InsertPolicy includes the following: Rows, Columns, RowsAndColumns, ShiftCellsRight, ShiftCellsDown
SetTool
method now supports the following arguments:
Caption, ToolTipText, ToolTipTitle, and DisplayStyle, which controls
whether or not the caption is displayed. #1890Fixed Issue with BuildRangeFromScript
Method: When the Insert argument is
TRUE, the BuildRowsOrColumns argument is set to Columns, and the StartCell
argument references a non-blank column, the first column of the insert range is
overwritten, which also leaves a blank column to the right of the insert range.
Similarly, when the BuildRowsOrColumns argument is set to Rows, and the StartCell argument references a non-blank row, the first row of the insert range is not pushed down and the values in the overlapping cells of the first row of the insert range are overwritten.
To illustrate the issue, using this as the view’s template:
The workbook script creates a data cache containing 5 rows, and then calls
BuildRangeFromScript
to insert rows starting at C1.
With the Insert argument set to TRUE, the first template row is not pushed down, and the values in C1:F1 are overwritten.
To correct the behavior, the new DoInsert argument is set to TRUE instead of the Insert argument.
When the BuildRowsOrColumns is set to Columns and the Insert argument set to TRUE, the first column in the insert range, which contains the "BLUE" values, is overwritten and there is a blank column to the right of the insert range.
Again, the behavior is corrected by setting the new DoInsert argument to TRUE instead of the Insert argument.
This was probably an issue with the original implementation, which workbook script developers have likely accommodated, so to address the issue without disrupting existing workbook scripts, a new method argument, DoInsert, has been introduced. #1691
It is highly recommended that workbook script developers consider changing (and retesting) existing workbook scripts to use the DoInsert argument instead of the Insert argument where the issue described above is a potential as well as in any new workbook scripts.
OpenView
Method: In the 7.6.3.6719 release,
an issue was addressed with the opened view’s AfterBuild workbook script procedure
not executing when the Close argument is set to True. Another related issue
has been addressed, which can be encountered when calling OpenView
in a report
generator workbook script. When the workbook script opens an Essbase view after
opening a SQL view, the procedure that called the ForEach
method does not resume.
#2188RenameWorksheet
Method: For an Essbase Excel view, which
has the DataCellDoubleClickPolicy set to AddSheetForDrillthrough, and also
has a workbook script, which calls RenameWorksheet
to rename a drill-through
sheet, the user is then unable to perform Essbase operations on the
drill-through sheet. No error is displayed when an operation is attempted, it
simply does not perform the operation. #2204Fixed Issue with SendEmail
Method’s General
Overload: When Dodeca runs as
a 64-bit process, which it does when using a .NET 4.6.2 release, an error
similar to the following error could occur: Unable to send mail. Arithmetic
operation resulted in an overflow. #2276
See also: Send To Mail Recipient Tools
SendEmail
Method’s ServletSMTP
Overload: When using the
FromDisplayName argument, an e-mail is delivered, but the FromDisplayName is
not honored and the sender is displayed as the From address. #2257Color Index Method Arguments: In Excel, a valid color index is 1 to 56. In a workbook script, a valid color index is 0 to 55; however, in previous releases, the dropdown list of valid values for a method argument, which represents a color index, included values 1 to 56, but setting the value 56 resulted in the following error: Color index must be between 0 and 55. And, there was no way to specify the first Excel color index.
To address the issue without breaking existing workbook scripts, the dropdown list of valid color index values now includes 0 to 55, and the specified argument value represents the intended Excel color index minus 1.
The following methods support color index method arguments: SetBorders
, SetChart
,
SetColor
, SetConditionalFormat
, SetFill
, SetFont
, SetImage
, SetShape
,
SetTextBox
, and SetWorksheetOptions
. #1769
SetTool
workbook script method. In previous Dodeca versions, using the
Toolbars Designer or SetTool
method to configure unmapped tool properties
resulted in the settings being reverted to the default value (True) whenever
the tool refreshed. #2111