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.