Page 1 of 1

TI Process logic

Posted: Wed Dec 28, 2011 4:00 am
by Cognostm1.ibm
Hi Gurus,

I am very new to tm1.

As of now i am working on the logic for below issue:

Implement using: TI process

Logic to be implemented:

If the product dimension already has a Product code in the target tm1 cube and it also has a cost in the data source, it needs to replace the TM1 Cube with the new code from data source.
If the product dimension does not have a product code in the target cube, it needs to populate the data from the data source.
If the product dimension has a Product code in the target cube and does not exist in the data source, the process should ignore it and leave the value in the TM1 cube untouched.

Please do the needful.

Thanks,
A

{Admin Edit: Moved to the correct forum.}

Re: TI Process logic

Posted: Wed Dec 28, 2011 4:39 am
by Alan Kirk
Cognostm1.ibm wrote: As of now i am working on the logic for below issue:

Implement using: TI process

Logic to be implemented:
How far have you read through the TI guide? These issues are covered (to a greater or lesser extent) in there. The quick and dirty guide, though is this:
Cognostm1.ibm wrote:If the product dimension already has a Product code in the target tm1 cube and it also has a cost in the data source, it needs to replace the TM1 Cube with the new code from data source.
In the Metadata tab, you can use DimensionElementInsert to add any new elements to the dimension. If the element is already there (as is the case here), it will make no difference; the statement will just be ignored. You will probably also need to use DimensionElementComponentAdd to add the element to the relevant consolidation.

However if you really want to skip over the code when the element already exists, you can use a DimIx test in conjunction with an If() statement. (These are all explained in the Reference Guide or the TurboIntegrator Guide, though I've added a hyperlink to the If() statement since it can be a sod to find.)

In the Data tab, you simply use a CellPutN statement to write the value to the cube.

If you need to add the value to any existing values, you first do a CellGetN to get the existing value, add that to the value from your data source, and write the total to the cube using CellPutN. This is called aggregation.
Cognostm1.ibm wrote:If the product dimension does not have a product code in the target cube, it needs to populate the data from the data source.
The Metadata code described above will add the new element to the dimension, readying it to receive data in the Data tab.

The Data tab then writes the value as described above.
Cognostm1.ibm wrote:If the product dimension has a Product code in the target cube and does not exist in the data source, the process should ignore it and leave the value in the TM1 cube untouched.
A TI process will not affect any elements or values that you don't tell it to affect, consequently there's no need to worry about this.