Category Archives: TI Processes
Turbo Integrator creates processes that can be executed.
How do you join text files in a TI when loading into TM1? In this post we discuss a method to emulate an SQL join in a TI where a csv or text file is the source for the Turbo Integrator process.
CubeClearData clears all of the data in a cube. It is a TurboIntegrator function, valid only in TurboIntegrator processes. This function is much faster than doing an operation such as creating a view to cover the entire cube, and then doing a ViewZeroOut() to zero out the entire cube, however it does not give you the flexibility to delete the data from a view or slice of a cube. When you use … Continue Reading
I recently needed to check some data I was loading via a Turbo Integrator process in TM1 for Null values. I thought there’d be something like an IsNull (like in Excel), but found no direct TI command to check values being loaded if they are Null or not. The Solution for Null Values in a TI As you would know, TM1 only stores values as String or Numeric. If it … Continue Reading
Recently I encountered a situation where we had a SaveDataAll process running every half hour that had started impacting the system performance. The environment is largely for enterprise planning and we wanted the protection of having TM1 saved to disk regularly through the day to protect against any unforeseen outages. This was largely able to be executed in a couple of seconds and thus had no real impact. Then we added … Continue Reading
I needed to create a rollup in a data warehouse the other day from elements that are stored in TM1. This process works just as well for SQL Server, Oracle, DB2 or any other database engine. Simple Method to get data out of TM1 and into a Database Simply, the easiest way to get data out of TM1 and into a database is to publish it out of TM1 using … Continue Reading
Ever wondered how you can vary the data source for a Turbo Integrator process inside the actual process so it becomes dynamic? Well here is a method. Firstly, define a bunch of variables: sCurrentMonth = CellGetS ( ‘System Assumptions’, ‘No Year’, ‘No Month’, ‘Current Month’, ‘String’ ); sFileDir = ‘\\servername\folder\’; sFileName = sCurrentMonth | ‘ ‘ | SUBST(sCurrentYear,3,2) | ‘ Employees.csv’; sFilePath = sFileDir | sFileName; Then use DatasourceNameForServer and DatasourceNameForClient to … Continue Reading
The ELLEV function returns the numeric value of the level for an element in a dimension in TM1. Syntax The syntax is ELLEV(dimension, element); where: dimension, is the dimension you are interrogating, and element, is the element you want the level number for Use of ELLEV This function is used to determine the level of a specific element in a dimension. It is often used in conjunction with an IF statement to … Continue Reading
Often we have a situation were we want to create a dimension with the contents of a code from a source system. Sometimes, however the IDs in the source system are of a variable length and we want to present them uniformly. To overcome this, we need to pad the code at the left with a constant character to make them all the same length. the method below will pad out … Continue Reading
ITEMSKUP is a Turbo Integrator function that forces the current record being read from a data source to be skipped. Syntax of ITEMSKIP The syntax is just ITEMSKIP; – real simple eh! And there are no operators. Usage Typically ITEMSKIP will be used with an IF statement so that only data that satisfies a certain criteria will be further processed. This both speeds up the processing and also allows you to discretely … Continue Reading
I asked Mafia Man the other day how I can take a backup on the fly of everything in TM1 so that if I make changes and stuff up, I can easily restore from my backup. He gave me the following code that is to be inserted in the Prolog tab under Advanced in a Turbo Integrator process. This creates a full archive of a TM1 Model (in this case CXMD) … Continue Reading