TI as a batch processing language with Cognos Datamanager.
Posted: Tue Jul 21, 2009 9:34 am
We can kick off the TI processing from DM. We would not perform any cube or measures dimension action and we would use the TM1 Prolog and Epilog Scripts to do the true processing. We cannot use chores because of the need to synchronise the Datamanager creation of the input data for the cubes with the TI load of data into cubes.
The trick of doing this with DM is to install a copy of the TM1 client on the same machine as DM and also to include the TM1 path in the PATH environment variable. Otherwise it mysteriously does not work!
The processing we require cannot be accomplished by a simple load of a cube. Typically a subset of a staging cube is zero’ed out, the load takes place and then the data is moved on to further cubes. Thus effectively we have a jobstream within TM1 which needs to be controlled and if there is an error reported back.
We would need to carry out the following pseudo code in TI
Result = ExecuteProcess(‘loadStaging’)
If Result > 0 then
/* write to sql server table or error log so support know what the problem was and the user can be informed their load did not work*/
WriteErrorLog(‘Load Staging failed with return code ‘ + result + ‘ Abandoning data load ‘)
/* return back to DM */
Exit
Endif
/* next stage is now conditional on the first */
Result = ExecuteProcess(‘loadIntermediate’)
I would assume this is possible but does TI have a Try...Catch type structure that could more easily be used. Can a return code be passed back to the operating system.
Any advice on the best way to operate TM1 in batch would be much appreciated.
The trick of doing this with DM is to install a copy of the TM1 client on the same machine as DM and also to include the TM1 path in the PATH environment variable. Otherwise it mysteriously does not work!
The processing we require cannot be accomplished by a simple load of a cube. Typically a subset of a staging cube is zero’ed out, the load takes place and then the data is moved on to further cubes. Thus effectively we have a jobstream within TM1 which needs to be controlled and if there is an error reported back.
We would need to carry out the following pseudo code in TI
Result = ExecuteProcess(‘loadStaging’)
If Result > 0 then
/* write to sql server table or error log so support know what the problem was and the user can be informed their load did not work*/
WriteErrorLog(‘Load Staging failed with return code ‘ + result + ‘ Abandoning data load ‘)
/* return back to DM */
Exit
Endif
/* next stage is now conditional on the first */
Result = ExecuteProcess(‘loadIntermediate’)
I would assume this is possible but does TI have a Try...Catch type structure that could more easily be used. Can a return code be passed back to the operating system.
Any advice on the best way to operate TM1 in batch would be much appreciated.