Planning Analytics

Planning Analytics

Get AI-infused integrated business planning

 View Only

Sharing your TM1 sandbox with others

By Chad Duffey posted Mon August 19, 2024 05:45 PM

  

There was a scenario where business is using sandboxes in Tm1 and building multiple scenarios with their plan, and a few users wanted a way to share their plan for a product with multiple scenarios without committing to the base forecast or exporting their report.  The Tm1 sandbox is meant to be a personal workspace that is private and is not shared with other users.  

I need to find a way to allow the business to share their sandbox with others without committing to the base.  Since the sandbox is private and not meant to be shared with others, I needed to get a little creative 

There is a work around allowing personal sandboxes to be shared with other users by using the ServerSandboxMerge command and a generic processes that create views and copies data to different dimension elements. Details about the ServerSandboxMerge command can be found here:  https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=sf-serversandboxmerge.

You can find a generic and reliable create view and copy data process on Cubewise’s bedrock code https://github.com/cubewise-code/bedrock.

I needed a solution that was fast and would not cause the cube to blow up in size.  Coping the whole product forecast version to other versions just to show alternate scenarios was not an option since tm1 memory would pass the allotted threshold allowed by the business.

This solution will be available to the users as a button and will have to have optimal performance.

To design a solution that allows the business planner to share there planning without committing to the base forecast, with optimal performance, I need to use a generic TI process that created views, and copied data to different dimension elements.  Below are the steps I have taken to solve this problem

  •  I move all of the data that is in the planning periods, and input measure intersections to a temporary version.  Note I do not move actual months or rule base calculations.
  • Use the ServerSandboxMerge to merge the user sandbox to the base version
  • Copy the product that is being planned from the forecast to a scenario in the version dimension
  • Copy the data from the temporary version to the forecast version
  • Zero out the temporary version

Below is a screenshot shows some of the code I used in implementing a solution.  The comments mention what is happening. 

TI Code

I do have a zero out process to zero out the data in the temp version and product data in the shared version.  The zero out process is easy to create.  This process creates a view and then run the ViewZeroOut command.  

Below is an example report that demonstrates sharing a sandbox of a product.  This report is designed to show data movement from the sandbox High Test Sandbox to High Version

Report Sandbox Data

The report has a Copy Sandbox button that runs a TI process named System.Copy.Sandbox.  This process executes the data movement when given a Product, User Sandbox, and Scenario

process parameters

This process copies only user input plan data from the forecast version.  The data from actual periods and calculated measures are ignored. 

Lets go over the the data movement in a demo report Base Live VS High Plan.  This report shows Base and High Test Sandbox, and shows the FCST-A, High and TempVersion.  This shows the data movement.

First the forecast data is copied to the TempVersion for all products

Copy Sandbox Step 1
The ServerSandboxMerge command is executed committing High Test Sandbox to the Base
Copy Sandbox Step 2
Data is copied from the Forecast version to the High Version
Copy Sandbox Step 3
Data from the TempVersion is copied back into the forecast version and zeroed out.  The process completes successfully. 
Copy Sandbox Step 3
PS
This shows how to build an environment that allows users to share their sandbox data.  There are many different ways to do this.  Another way to move the data is to use a flat file instead of a temporary version.  The bedrock code library has an import and export process that can move data to a flat file.  Using flat files for a temporary placeholder may have a slightly better performance.
.
0 comments
26 views

Permalink