Bedrock TM1 Turbo Integrator

Welcome to Bedrock TM1 Turbo Integrator. Bedrock TM1 TI is a collection of Turbo Integrator (TI) processes that are designed to make building models easier and faster than ever before. 

Each TI is a fully contained, auditable, multi-function code block with parameter switches permitting the user to perform numerous tasks. Well over 10,000 lines of code are contained within these processes meaning you don't have to write them - just use them at the right time for the right job.


Modular Turbo Integrator Coding

The Bedrock TM1 TI supports the modular coding approach to building TI processes. Common functions are encapsulated in parameterised TI processes. Any custom TI process can call particular Bedrock TM1 TI processes to perform required functions.

A common example is clearing an area of the cube before loading data from an external source. Before the data is loaded into the cube, a portion of the cube must be cleared of values. Traditionally, all code that is required to clear that portion of the cube is written in a custom TI process. By using Bedrock TM1 TI, the process Bedrock.Cube.Data.Clear (formerly ZeroOut) can be called from within any custom TI process. Using the required parameters to restrict the specific area of cube, the process will build the required view, clear the data, and when complete, continue on to the custom code. 

Changes in the requirements are easy to manage using Bedrock TM1 TI. In the above example a TM1 developer can quickly change the parameters to clear more or less data in the cube. The traditional approach would require the TM1 developer to review all the code in the custom process, add the required code and then re-test the results. By using Bedrock TM1 TI, the entire process is made simple and easy to manage.


Best Practice

All Bedrock TM1 TI processes that have been developed will execute in the most efficient manner according to TM1 Black Belt techniques such as server locking. The modular approach to coding can produce time saving results that cannot be achieved using traditional TI coding.  For example, the process Bedrock.Dim.Sub.Create will build subsets in the 'metadata' tab instead of the 'prolog' tab. The advantage being that the components of the subset are held in memory until the very end, at which point, the subset is written to disk. This is more efficient than the traditional manner (in the prolog using a 'While...End' loop) in which the subset file is saved to disk on each change, causing resource inefficiencies.

Bedrock TM1 TI may require changes in the future to reflect changes in best practice. This could be due to a new release of TM1 or an increased understanding of existing implementations. By using Bedrock TM1 TI, the impact of changes is minimal as it is easier to change a single Bedrock TM1 TI, than it is to review, change and test many instances of custom code to achieve the same outcome.


More than just code

Bedrock TM1 TI contains more than just processes to support modular coding. It includes a number of utilities that will help with performing everyday tasks.  For example, in situations which require different security for the same dimension, the process Bedrock.Dim.Clone will clone the dimension to enable changes to be made to the security definition, and the process Bedrock.Cube.Dimension.Replace will replace the dimension in the cube.


What the future holds

Bedrock TM1 TI is for anyone serious about getting the best out of TM1 in a simple and ordered environment. 

At BedrockTM1.org we are committed to ongoing development and invite everyone to use and test the TI functions. We also ask that those that benefit make suggestions and contribute to improving Bedrock TM1 TI as the entire TM1 community will benefit from our work together.


Copyright 2011, bedrocktm1.org Tested on: TM1 Versions 9.1 to 10.2.1 / Cognos Express 9.0 to 10.2