Saturday, June 18, 2016

cubeSavvy web-based Essbase grids: beta 9.5 – users can now create & share ad-hoc

version 6.0.0 BETA 9.5

Enhancements and improvements in this release and BETA 9.
  • Added ability for users to create ad-hoc grids.
    • Users no longer need to wait for an admin to create an ad-hoc grid for them. They can do so directly from the Home tab, using the 'New Adhoc grid' option.
    • Users can also edit and delete ad-hoc grids to which they have access.
  • Improvements made to Environments management when creating/editing grids.
  • Now only grids to which users have access are displayed in the Grids list on the left. As a reminder, there are three ways a user can have access to a grid:
    1. Through direct access given by an admin on the Users tab
    2. Through membership in a Shared Services group that has been assigned to a grid by an admin
    3. Through creating an ad-hoc grid themselves using the new functionality above
  • Added ability for users to share ad-hoc grids with other cubeSavvy users. I'm finally getting to some of the features I've been looking forward to creating since I started this project. Most of the features till this release have been recreating (and improving) functionality that Smart View already has. However, this ability to collaborate by sharing grids is something that you can't easily do in Excel, and hence in Smart View.

cubeSavvy will remain in beta for a little while longer to make sure that it's as stable and fast as possible. I'm tentatively targeting August for the 6.0.0 production release.

I'll be at KScope in Chicago in a couple of weeks. Please find me and say hi!

Sunday, June 5, 2016

cubeSavvy web-based Essbase grids: beta 8 – run calc scripts on ad-hoc submit data

Enhancements in this release:

Ability to run calc scripts on ad-hoc grids after Submit Data.

This functionality is the same as for MDX and Report Script grids: all the members for each dimension are passed to the report script, allowing for super-focused calculations/aggregations. Click on FAQ on the Home tab for more details, and an example.

I'll walk through a simple example.

First, select a calc script:
edit grid to select adhoc calc script

The "subs1" calc script above:
subs1 calc script attached to adhoc grid
Note the use of @IL and @L member selection commands. These take a @LIST (since there can be multiple members), which is passed in from the cubeSavvy grid on submit.

Data has been entered in an ad-hoc grid below, but has not yet been submitted (Submit Data).
entered data in grid but not submitted

After clicking Submit Data on the grid above, we can see that data has been aggregated:
calculated data after submit on adhoc grid

The Essbase log for our application (Sample_U.Basic) gives us the full details:
Sample_U.Basic log file showing our focused calc from adhoc grid

And we can get detail that the Essbase log fails to provide by looking at the "Data Updates" tab on the cubeSavvy Home page. Here we can see the full Member Intersection, along with the Old Value and New Value for each data point:
Data Submits screen showing submitted data and calc script run


Added Dataless Navigation


Improved administration of multiple Essbase environments

  • It's now much easier to add/edit/delete Essbase environments, directly from the Home page
  • The "default_configuration" below is the one set up in the installer. You can edit or delete it as you would any other environment. However, there must always be at least one environment. If you delete them all, the "default_configuration" will be added back the next time you start (start.bat/start.sh) the application.new environments management screen




I've decided to keep cubeSavvy in beta for a little while longer to make sure that it's as stable and fast as possible. Your feedback is still shaping the product. Please keep it coming! Download it here.

Sunday, May 29, 2016

cubeSavvy web-based Essbase grids: beta 7 - multiple Essbase environments

There are several small bug fixes and enhancements in this release. The major enhancement is the ability to add multiple Essbase environments for ad-hoc grids. Prior releases only allowed connecting to a single Essbase server/Provider services combination. That limitation has now been lifted.
  • Here's an excerpt from the cubeSavvy.conf file: The 'default' environment below is used to test whether a user has Essbase access to even log into cubeSavvy. The user should be provisioned in its Shared Services instance. The names are important (e.g. dev, test, main) since this will be displayed on grids. You can add as many environments as needed. At least one, however, is required as the default.
cubeSavvy.esbEnvironments {
default: prod,
dev {esbServer = "epmDev", esbProviderUrl = "http://192.168.56.101:9000/aps/JAPI"},
test {esbServer = "epmTest", esbProviderUrl = "http://192.168.56.102:9000/aps/JAPI"},
prod {esbServer = "epmProd", esbProviderUrl = "http://192.168.56.103:9000/aps/JAPI"}
}
  • By default the installer will prompt for, and fill in, the "main" environment values, like so:
cubeSavvy.esbEnvironments {
default: main,
main {esbServer = "epmMain", esbProviderUrl = "http://192.168.56.103:9000/aps/JAPI"}
}

To add additional environments, as above, you will need to manually edit the $INSTALL_DIR/cubeSavvy/conf/cubeSavvy.conf file.

This enhancement was requested by so many people, I decided to release one more beta to incorporate it.

Grid edit/setup:
environment now on grid edit tab

Prompt to log into environment when clicking on grid (only displays if you're not already logged into the particular environment):
environment login prompt

Environment indicated on ad-hoc grid:
environment indicator on grid

Sunday, May 8, 2016

cubeSavvy web-based Essbase grids: Beta 4 – more options

The following features were implemented for Beta 4:
  • Undo/Redo. In theory, the number of these operations is unlimited. In practice, browser memory is the limiting factor.
  • Display both member names and aliases on retrieves. The alias displayed is determined by the selection in the dropdown next to "Name & Alias", "Default" in this case.
member names and aliases in retrieve
  • Choose #Missing text label or numeric value. The retrieve above with #NumericZero selected:
numeric zero instead of #Missing
  • Select indentation level: subitems, totals, or none. The retrieves above have "Indent None" applied. Previously, all retrieves used "Indent Subitems" exclusively. That remains the default, just as in the classic add-in and Smart View.
Please continue to provide your feedback. It really does let me know what I should work on next. So download Beta 4 and let me know what you think.
-Harry

Saturday, April 30, 2016

cubeSavvy web-based Essbase grids: Beta 3 - double clicks

version 6.0.0 BETA 3 Highlights
  • Implemented mouse actions, such as control button+double-clicking to zoom in and control+right double-clicking to zoom out. You have to press the control button (Ctrl on Windows) while double-clicking. This is necessary because plain double-clicking on a cell opens it for editing.
  • The first iteration of member information and member selection has also been included for testing.
  • Licensing. There is now a license.sec file under the conf directory. This file must be present, and valid, for cubeSavvy to start. For the beta, it allows 30 days of use for up to 10 users.
cubeSavvy double click adhoc operationsThe member information screen is pretty similar to the ones in the classic add-in and Smart View:
member information screenThe member selection screen is still a work-in-progress, but is functional. For example, the Search field currently only finds matches for members that are already displayed. It doesn't yet go back and search the database for other potential members that also match the entered criteria. That will be included in the next beta release. You might also wonder why the Alias column is showing Russian below. That is because the alias table chosen on the grid is RussianNames - you can see it in the background:
member selection screenSince I've now implemented the licensing functionality, I've decided to open up the beta to everyone. Therefore, I've made the beta 3 version the main cubeSavvy download.

Please let me know what you think in the comments.

-Harry

Friday, April 22, 2016

cubeSavvy add-in: beta update - Submit Data implemented

I've implemented Submit Data functionality for the second beta version, to be released tomorrow.

cubeSavvy add-in Submit Data functionality implemented




























It also incorporates the feedback I've received from the current beta testers. The most common item mentioned has been to increase the number of rows in a retrieve from the current 20,000 limitation. I'm glad to announce that there is no limit now, besides the one imposed by Provider Services. And, in keeping with my focus on speed, performance is excellent, exceeding that of both Smart View and the classic add-in for large retrieves.

I've also finished perfecting the Save Changes option, to allow changes made to the grid during ad-hoc retrieval operations to be saved:





























If you'd like to test the beta, please let me know and I'll make it available to you. I'll be sending out an update to the current beta testers tomorrow.

Thursday, April 14, 2016

cubeSavvy - add-in: beta this weekend

Just a short post, since I'm currently spending all of my limited free time working on development.

I'm shooting for releasing the first beta version of the cubeSavvy web-based Essbase add-in to testers this weekend. As a reminder, this version will only have retrieval capability. Ability to save data will come in the next beta release. Speed has been the major focus, and compares favorably to Smart View, and in some cases exceeds that of the classic add-in.

Please send me an email if you'd like to help test.

In the meantime, here's another brief video demonstrating basic functionality:


Sunday, April 3, 2016

cubeSavvy - the big one

Yes, this has been the plan all along: I'm creating a web-based Essbase add-in. My first attempt was the ill-fated Google Sheets Essbase add-on. I say this not because it was somehow technically-inferior. But because IT Information Security departments across the planet had a collective heart attack at the mere thought of poking a hole in the corporate firewall for Google traffic. Even though many of them had already done the same thing for Oracle XYZ Cloud Service.

cubeSavvy avoids this problem completely, by running inside the corporate firewall. In the latest, de rigueur terminology, it is an internal/private/corporate cloud application.
cubeSavvy allows users to retrieve Essbase data from any browser, on any platform (Windows, Mac, Linux, Unix), without having to install anything on their computer. No Excel, no DLLs, XLAs, .Net. Nada. Although it doesn't require Excel, data can easily be copied and pasted to/from it.

Users can also save their retrieves and administrators can make them visible to other users. This captures the primary functionality that drew me to Google Sheets - the ability to share Essbase data pulls.

As you can see in the short video below, the basic functionality is already working. Additional functionality like member selection, member information, pivot, zooming in to various levels/generations, etc. will be added next. Afterwards, the ability to save (i.e. lock & send) data will be implemented. One of the final steps will be to support mouse functions, like double-clicking and right-clicking.
cubeSavvy Essbase add-in
This version is not yet available for download, but will be coming within the next couple of weeks. Please send me an email if you'd like to participate in the beta program.

As the Grids structure in the video above shows, cubeSavvy already has the ability to create web-based grids using MDX queries and Report scripts. These grids can then be provisioned to users either with Shared Services groups or on a by-user basis:
user grid access screen
Grids can also have Page member drop-downs to allow one grid to be used for entering data to multiple member combinations:cubeSavvy_2_2

MDX and Report grids already have the ability to submit data. All data submissions, including the old value and new value, are also logged and reportable:
data_updates


Sunday, March 13, 2016

cubeSavvy Utilities 5.0 - multiple configuration files

Following are the bug fixes and enhancements released in version 5.0:

  • Bug Fixes
    • MDX
      • Saving the results of an MDX query to a file resulting in the string “null” in empty cells. This has been corrected.
      • Some unicode characters were incorrectly represented when saving the results of an MDX query to a file.
  • Enhancements
    • UI elements on each tab are now grouped by File Inputs (which do not require an Essbase connection) and Essbase Inputs.
    • Reverted back to the platform-specific look-and-feel, because several users sent me comments that the Java one was bugly.
    • Added the ability to choose which Alias table (or “All”) should be exported in the Essbase Inputs section of the Outline XML Parser tab. Previously only the default alias table was exported.
    • Ability to specify different configuration files (by far the most-requested feature).
      • As before, the cubeSavvyUtilities.conf file must reside in the config subdirectory of the cubeSavvyUtilities installation. 
      • An alternate conf file can now be specified, which can be located anywhere. 
        • An example from the new cubeSavvyUtilities.bat in the INSTALL_DIRECTORY: java -jar cubeSavvyUtilities.jar ./config/test.conf aso
      • The INSTALL_DIRECTORY/config/cubeSavvyUtilities.conf file will be used if no other conf file is specified.


The cubeSavvyUtilities.bat referenced above also provides a reference of how to do error-checking after each call is made. The full contents are below for reference:

@echo off
REM first check if Java available on system. exit if not
call :ProgInPath java.exe
if "%PROG%" == "" (
echo Java.exe not found in PATH
exit /b 1
)
REM The 3-character codes to pass into the jar file are as follows:
REM code conf file code GUI tab
REM ---- -------------- -------
REM aso ASOExportParser ASO Export Parser
REM out OutlineParser Outline XML Parser
REM mdx MDXQuery MDX Query
REM fil FileFilter File Filter
REM xml XMLOutlineEdit Outline XML Edit
REM Using the default configuration file, INSTALL_DIRECTORY/config/cubeSavvyUtilities.conf:
java -jar cubeSavvyUtilities.jar out
call :checkErrors
REM Specifying an alternate configuration file (the file doesn't have to reside under the
REM config directory):
java -jar cubeSavvyUtilities.jar ./config/test.conf aso
call :checkErrors

:ProgInPath
set PROG=%~$PATH:1
goto :eof
:checkErrors
IF %ERRORLEVEL% NEQ 0 (
  REM do something here to address the error. uncomment out 'exit' below to stop after first error
  echo we got a problem here: %ERRORLEVEL%
  REM exit 1
)


As usual, you can download cubeSavvy Utilities here.

Sunday, March 6, 2016

cubeSavvy – multiple calc scripts & grid descriptions

A couple of enhancements have been made in the 5.2 version now available for download:
  1. Now more than one calc script can be run on save. All COLUMN, ROW, and PAGE members are passed to each calc script, allowing for super-focused calculations/aggregations.
  2. Grids can now display a Description, visible to all users. Html tags are supported, so it's possible to link to other applications, files, and folders. Or you can just provide additional information, such as status, deadlines, or instructions.
A bug was also fixed that reset the Shared Services Groups selected in the Edit Grid screen below.

What functionality would you like to see next in cubeSavvy? Send me an email or leave a comment.
edit grid - with multiple calcs and description



grid displaying description for users