Dodeca Version 6.7.0

February 4, 2014 - Build 4294


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 (7.0.5.140), NetAdvantage 2011, Volume 1 (11.1.20111.2042), Aspose.Cells 7.0.3.0, and Syncfusion Essential Studio 11.3.0.30.

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 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.

The release notes for this version contain the following sections:

Authenticated Username/Password and (Essbase, SQL) Connection Integration

ClickOnce Prep Utility — Proxy Server Support

Dodeca Essbase Service — Fixed Issue

Essbase Member Select Dialog — Fixed Issues

EssbaseSQLPassthroughDataSet Selector List — Fixed Issue

EssbaseUserRolesFromGroupNames Authentication Service Enhancements

Excel View (and Essbase Excel View) Template Designer — Move/Copy Sheet

Metadata Property Search Utility Enhancements

PDF Views — Fixed Issue

Relational (SQL) Views — Add/Insert/Delete DataTableRange Rows on Filtered Range

SQLPassthroughDataSet Error Messages

View Selector Tree — Find View / Category

View Status Bar — Fixed Issues

Workbook Scripting — Event Links, Functions, Methods

When upgrading from version 6.4.3.3803 (or earlier) to version 6.5.0.3872 (or later), the first time the first user accesses an application (without first importing the metadata), the error below will occur. To correct the error, modify any metadata instance and commit the change to the database.
image

Authenticated Username/Password and (Essbase, SQL) Connection Integration

A Dodeca application can be configured with an authentication service, which is used to authenticate a user at startup by requiring valid credentials, such as an Essbase user name and password. Several authentication services are supported, and can be used to prevent access to an application, to control which view hierarchies are presented in the view selector based on a user’s roles, and to allow more extensive view sharing options.

A new setting, called UseAuthenticatedUsernameAndPassword, has been added to the SQLConnection and EssbaseConnection metadata to allow for the authenticated user to automatically be used for the connection. (#1251)

EssConnection:

When an authentication service is associated with the Dodeca application, the UseAuthenticatedUsernameAndPassword property controls whether the authenticated username and password are used as the Essbase connection username and password.

When an Essbase authentication service is used, the behavior is similar regardless of whether the UseAuthenticatedUsernameAndPassword property is True or False, because any connection to Essbase from the client will attempt to use the authenticated credentials unless a Username and Password are explicitly specified for the Essbase connection metadata instance. The difference is that when the UseAuthenticatedUsernameAndPassword is True and the connection fails, the default login services will not prompt the user for alternate credentials.

When a non-Essbase authentication service is used, it may be desirable to use the authenticated credentials for the Essbase connection. This can be achieved by setting the UseAuthenticatedUsernameAndPassword property to True. If the connection fails, the default login services will not prompt the user for alternate credentials.

SQLConnection:

When an authentication service is associated with the Dodeca application, the UseAuthenticatedUsernameAndPassword property controls whether the authenticated username and password are used as the SQL connection username and password.

ClickOnce Prep Utility — Proxy Server Support

The ClickOnce Prep Utility now supports the ability to specify a Proxy Server for the SmartClient application. (#1249)

The Proxy Options section of the ClickOnce Prep Utility includes the following settings:

  • ByPassOnLocal — When set to true, the proxy server is not used for local internet addresses, which include http://localhost, http://loopback, or http://127.0.0.1.

  • Enabled — Controls whether or not the proxy settings are applied.

  • ProxyURL — Specifies the URL for the proxy server to be used by the SmartClient.

  • UseSystemDefault — When set to true, the proxy server settings that are defined in Internet Explorer are used.

Dodeca Essbase Service

  • Fixed Issue: When the UpdateMode is set to True, the dodeca-essbase service attempts to retrieve data from a non-BSO ("Block Storage Option") cube type, which results in the error "Operation not supported for aggregate storage applications." The UpdateMode setting is used to automatically lock cells of the database upon retrieve and, as aggregate storage (ASO) databases do not have blocks, it is not possible to lock blocks in that situation. The internal dodeca-essbase service code has been updated to attempt such locking only when accessing BSO databases. (#1242)

Essbase Member Select Dialog

  • Fixed Issue: The Place Down the Sheet and the Insert List Before Active Cell Output Options checkboxes are not enabled as appropriate, thus preventing these options from being selected. (#1261)

  • Fixed Issue: The Dimension editor does not automatically complete the keyed in value to match an existing dimension, and it does not prevent the user from keying in an invalid dimension name. (#1262)

EssbaseSQLPassthroughDataSet Selector List

  • Fixed Issue: When an EssbaseSQLPassthroughDataSet Selector List is configured with a value specified for the EssbaseUserNameVariable setting, the associated query may not return any results when the database enforces case-sensitivity. (#1247)

EssbaseUserRolesFromGroupNames Authentication Service Enhancements

The EssbaseUserRolesFromGroupNames authentication service first was introduced in Build 1673 to allow for Essbase groups to be used as Dodeca roles. Several subsequent versions have included enhancements or addressed issues as recently as the last release, Version 6.6.0.4194. In Version 6.2.0.3390, the authentication service was revised in conjunction with the introduction of the view sharing capability, but users were limited to sharing a view with no one or with everyone.

In this current release, the EssbaseUserRolesFromGroupNames authentication service has been enhanced to more completely support view sharing. New properties have been added to control exactly with whom the authenticated user is allowed to share views. (#1253)

Please note that with the EssbaseUserRolesFromGroupNames authentication service, an Essbase group is treated as a Dodeca role, so the term "role" refers to an Essbase group.

  • AllowSharingViewsWithEveryone controls whether the authenticated user is allowed to share saved views with everyone. By default, the value is set to True. The property is typically set to False when the RolesToShareViewsWith and/or UsersToShareViewsWith restrict the roles and/or users with whom the user is allowed to share saved views.

  • UsersToShareViewsWith controls which users the authenticated user is allowed to share views with. The options include the following:

None - No sharing with individual users is allowed.

UsersInSameRoleAsUser - Sharing is allowed with any user who is assigned to a role (i.e. Essbase group) that the authenticated user is also assigned to. For instance, if the authenticated user is assigned to GroupA and GroupB, then sharing is allowed with the other users who are assigned to GroupA along with the other users who are assigned to GroupB.

AllUsers - Sharing is allowed with all other users.

SpecificUsers - Sharing is allowed with the users identified by the UsersToShareViewsWith_SpecificUsers property.

  • RolesToShareViewsWith controls which roles (i.e. Essbase groups) the authenticated user is allowed to share views with. When a view is shared with a role, any user who is assigned too that role is able to access the shared view. The options include the following:

None - No sharing with roles is allowed.

SameRoleAsUser - Sharing is allowed with the roles that the authenticated user is assigned to.

AllRoles - Sharing is allowed with all roles.

SpecificRoles - Sharing is allowed with the roles identified by the RolesToShareViewsWith_SpecificRoles property.

  • The AllUsersExternalOnly and AllUsersExternalProtocol settings are only used when all users are retrieved, which occurs when the RolesToShareViewsWith is set to AllUsers for the current application. All users are also retrieved in an Admin application when the UsersToShareViewsWith_SpecificUsers property is edited for the authentication service associated with an application, and when OwnerFilter_SpecificUser property is edited for a SavedListView hierarchy item in the Views Hierarchy Metadata Editor.

image

When configuring the EssbaseUserRolesFromGroupNames authentication service for an application, the RolesToShareViewsWith_SpecificRoles and UsersToShareViewsWith_SpecificUsers settings are edited using a dialog that presents the list of roles and users, respectively. The Essbase connection specified for the authentication service of the edited application is used to obtain the roles/users presented in the editor dialog.

The first time the RolesToShareViewsWith_SpecificRoles or UsersToShareViewsWith_SpecificUsers editor is accessed during a session, the retrieval of the role or user names is launched on a background thread. The administrator is informed, and has the option of keying in the role or user names or trying again later when the names are available, which may be immediately or after several seconds or sometimes minutes depending on the configuration of the authentication provider and the number of users. Once the retrieval is complete, the role or user names are added to the session cache, and subsequent attempts to edit the setting will open the editor dialog with the list of selectable names presented in a dropdown list.

In the following example, the external authentication provider configured for Essbase is Microsoft Active Directory (MSAD). For testing purposes, 10,000 MSAD users were created.

image

The UsersToShareViewsWith property is set to SpecificUsers. When the UsersToShareViewsWIth_SpecificUsers editor is opened for the first time during the session, the following message is displayed:

image

After the user names are retrieved and available, the dialog supports keying in a user name or selecting a user name from a dropdown list.

image

Sharing Views

For a user running the example application, the view sharing dialog will allow a view to be shared with everyone and/or with any of the specified users.

image

When the authenticated user is allowed to share views with all roles and/or all users, the retrieval of the role and/or user names is initiated at startup on a background thread*. Depending on the authentication provider and the number of roles and/or users, the gathering of the names may not have completed by the time the user attempts to share a view. When this occurs, the user is informed.

image

Once the retrieval is complete, the role and/or user names are saved to the session cache, so the retrieval occurs only once during a session.

* A background thread is used 1) to ensure that the amount of time required to start up the application will not be impacted by the retrieval of role and/or user names, and 2) to lessen the potential of a delay when the user attempts to share a view for the first time during a session.

Excel View (and Essbase Excel View) Template Designer — Move/Copy Sheet

  • Added Move and Copy tools to the sheet context menu to allow for these operations to be performed in the template designer. (#1258)

image

Metadata Editor Enhancements

  • The View Metadata Editor displays the count and list of selector ID’s for the SelectorConfiguration property. (#1254)

image
  • The View Metadata Editor supports the ability to navigate to the Selector List Editor for a selector list that is associated with a configured selector, right click the mouse on the *SelectorConfiguration* property label, then click the context menu item that represents the selector list of interest. Each menu item contains the selector list ID along with the ID of the associated selector. (#1254)

image

Similarly, for a SQLView and an ExcelEssbaseView, you can navigate to the SQLPassthroughDataSet Editor for any SQLPassthroughDataSet that is assigned to a SQLPassthoughDataSetRange by right clicking the *DataSetRanges* property label, then selecting the SQLPassthroughDataSet of interest from the context menu. (#1254)

image

*Helpful Hint*

The ability to navigate from the active metadata instance in one metadata editor directly to an associated metadata instance in another metadata editor was introduced in Build 1110 (July 2008.) If you are not familiar with this capability, it is worth knowing about.

So, for example, in the View Metadata Editor, if an Excel Essbase View is selected, clicking the WorkbookScriptID property label with the left mouse button (to activate the item) and then clicking the right mouse button displays a context menu. If the WorkbookScriptID is set to the ID of a workbook script, such as MyWorkbookScript, the context menu contains an "Edit MyWorkbookScript" item. Clicking the item opens the Workbook Scripts Metadata Editor (or activates the editor if already open) and the MyWorkbookScript instance is automatically selected. If the ID is not assigned a value, the context menu displays "Open Workbook Scripts", which also opens or activates the Workbook Script Metadata Editor, but without automatically selecting an instance.

  • The Selector Lists Metadata Editor provides a means for viewing the properties associated with the SelectorControlObjectTypeID and SelectorListObjectTypeID as categorized in a separate properties editor window. The Applications Metadata Editor provides the same capability for viewing the properties associated with the AuthenticationServiceObjectTypeID and the ViewSelectorObjectTypeID. Any changes to the property values in the editor window will appear in the main editor, and vice versa. (#1255)

    image

Metadata Property Search Utility

  • The Search Metadata Properties dialog now supports the ability to copy selected rows (or cells) from the search results, which allows for pasting the results into another application, such as Excel. Rows selectors have been added to provide a way to easily select entire rows, and the row numbers provide a visual reference to use when navigating the results. (#1263)

PDF Views

  • Fixed Issue: In Windows XP, a PDF generated by Dodeca, such as when opening a view as a PDF, does not render correctly in the PDF view type window in Dodeca. There can be missing characters. (#1252)

Relational (SQL) Views

  • Adding, Inserting, and Deleting rows when an auto-filtering mode is enabled and one or more filters are active

In the original implementation of the relational functionality, entire rows were added/inserted/deleted only when the data table range was configured to sort and/or group the data table range rows; otherwise; cells were added/inserted/deleted within the data table sheet range. The ability to add/insert and delete data table rows was disallowed when an auto-filter was active within the data table sheet range, since Excel does not allow cell operations to be performed on the cells within a filtered range.

This resulted in an inconsistency between the behavior in Excel and Dodeca. In Excel, cells can be added/inserted/deleted when the sheet contains an auto-filter range, but not when a filter is active. And, in Excel, entire rows can be added/inserted/deleted when a filter is active.

Resolution: The implementation was changed to perform the data table range row operations on entire rows and not the cells with the data table sheet range. (#1250)

SQLPassthroughDataSet Error Message

Since a SQLPassthroughDataSet can contain multiple queries, additional information has been added to the reported error message when an error occurs during a retrieval operation. This information includes the following: SQLPassthroughDataSetID, DataTableName, SQL Error Code, and SQL State Code. (#1244)

image

View Selector Tree — Find View / Category

The new Find feature supports the ability to search within the view selector tree for views and/or categories based on a whole or partial match of a specified string with a view or category name. A case-sensitive or insensitive search can be performed. The Find dialog is accessed either by right clicking the mouse in the view selector, then selecting the Find option from the context menu, or by using the shortcut keys Ctrl+F.

The availability of the Find feature is controlled by the ViewSelectorTree’s AllowFind property, which is set to True by default.

The Find dialog is modeless, which allows the user to interact with the application while the dialog is open. For instance, a found view can be opened without having to close the Find dialog first. (#1256)

image

IMPORTANT: When an application uses the Office2010Style_Blue style library, the background of the view selector tree is pale blue. The style library also defines the appearance of the selected node as pale blue, which prevents a node (that represents a view or category that matches the criteria) from being highlighted.

To address this issue, the style library should be updated to the version contained by the metadata starter kit installed with the Dodeca Framework. From an Admin application, open the "Import Metadata From Local Zip File" utility, and navigate to the C:\Program Files (x86)\Applied OLAP\Dodeca Framework 6.7.0.xxxx\metadata\metadata_starter_kit.zip and import the Office2010Style_Blue style library binary artifact.

image

View Status Bar

  • Fixed Issue: When progress text in the view’s status bar contains an ampersand, the character following the ampersand is displayed with an underscore, and the ampersand is not displayed. (#1259)

    Before:

    image

    After:

    image
  • Fixed Issue: When the application workspace is maximized (or when the bottom edge of the workspace is at the bottom of the screen), the error "Details…​" button in the view’s status bar sometimes requires several clicks to open the Details dialog. (#1260)

Workbook Scripting — Event Links, Functions, Methods

  • Fixed the following issues with the AddTokensForSubstVars method:

    • Issue: The method fails with the following message when the CurMonth substitution variable is defined at multiple levels (server/application/database) in Essbase:

_Item has already been added. Key in dictionary: 'CurMonth' Key being added 'CurMonth'. _

Resolution: The service now returns the value of the substitution variable that is defined at the lowest level scope. (#1246)

  • Issue: The Scope method argument was not being honored by the dodeca-essbase service, which was always returning the substitution variable value defined at the database level.

Resolution: The substitution variable value defined for the specified scope is returned. If no scope is specified, the "Any" scope is applied, which has the effect of returning the most specific (i.e. lowest level scoped) definition. (#1245)

  • Fixed Issue: The BuildRangeFromScript method causes an IndexOutOfRangeException when the string Infinity is returned by the script. (#1241)

  • Modified EssbaseSend Method — Supports an Adhoc overload, which allows a workbook script to execute an Essbase Send operation for an Adhoc Essbase View. (#1257)

  • New Function: The @DataSetRangeIndex(SQLPassthroughDataSetID) function returns the zero-based index representing the relative position of the specified SQLPassthroughDataSet within the view’s DataSetRanges collection. (#1264)