CubeSaveData TM1 Function: Syntax and Use

This is just like the SaveDataAll command, except it is cube specific, rather than saving the data for all cubes.  Thus if you have an environment where you have a bunch of cubes where data is being constantly entered (like a planning application) and you also have some analytic cubes that are refreshed from a data warehouse every day, you might like to consider saving the new data in each of the planning cubes on a frequent basis and the analytic cubes less frequently.  To do this, use CubeSaveData

As TM1 is an “in memory” application if you shut down it down without saving the data, you loose it.  To get around this there is a command you can use in a Turbo Integrator process called SaveDataAll that saves the entire environment and also SaveCubeData, which saves data from specific cubes.

Syntax and use of CubeSaveData

Simply put “CubeSaveData(‘cubename’);” (without the inverted commas) into the Epilog of a TI process.  For example, CubeSaveData(‘capex);.

Put it in a Chore

Then add the TI process to a chore and schedule it to run as frequently as you need.  This could be every few minutes to daily, depending on the criticality of the data entered through the day and the performance impact of running the chore.  Test it, consider the impact of losing data and then decide!

Alternative for Saving Data for the Whole Model

You may also be interested in SaveDataAll and the impact of TM1 locks created by SaveDataAll.

As a note of caution. Each time this function is run, a new log file is created. These log files can end up being quite numerous and very large. To clean up these log files, please see this post.