Possible Bug - TI Fails to Read Dynamic Subset
Posted: Mon Oct 20, 2008 5:03 pm
Not sure if this is specific to my version or not. Would be interesting if someone could test on a later version before i submit another bug report to Cognos
TM1 9.0.3 182 U7 running on Win Server 2003 Standard
I have a TI which is based on a dynamic subset of the employees dimension. The subset is basic enough, just grabs all level 0 elements on A to Z order
The TI i am writing is designed to locate possible duplicate clock numbers. We have a fantastic system that allows leading zeros for clock numbers, sometimes users will open a CSV with Excel and it'll loose those leading zeroes. Yes, i have told them not to do that but people make mistakes and so i have a mess of an employees dimension i'd like to fix, as i have loads of duplicate clocks like "0001234" and "1234".
The TI code is below. Its a WIP so i might not being doing this the most efficient way, if anyone has any improvements feel free to suggest them!
(all in the data tab, nowt else)
My problem is that the dimension has 26,000 elements and its trying to check each one 26,000 times. I know it needs to do that to find the duplicates, but the effect of looking at 26000 x 26000 data points (676 Million!) is a very long wait. Anyway, after a few mins of running i cancelled it to check how it was progressing and doing so killed the TI. When i went back to the datasource tab, the dim subset was blank, but if you check the same subset from the subset editior its fine
Closing the TI and re-opening it doesn't work. Logging off and on also doesn't. Even creating a new TI from scratch fails to give me any data, the only solution has been to restart the service.
Can anyone else reproduce this on a later version, or know if its fixed in a later release?
TIA

TM1 9.0.3 182 U7 running on Win Server 2003 Standard
I have a TI which is based on a dynamic subset of the employees dimension. The subset is basic enough, just grabs all level 0 elements on A to Z order
Code: Select all
{TM1SORT( {TM1FILTERBYLEVEL( {TM1SUBSETALL( [Employees] )}, 0)}, ASC)}
The TI code is below. Its a WIP so i might not being doing this the most efficient way, if anyone has any improvements feel free to suggest them!
(all in the data tab, nowt else)
Code: Select all
ClockSize = LONG ( clock );
Ch1 = SUBST ( clock , 1 , 1);
Ch2 = SUBST ( clock , 2 , 1);
Ch3 = SUBST ( clock , 3 , 1);
Ch4 = SUBST ( clock , 4 , 1);
Ch5 = SUBST ( clock , 5 , 1);
Ch6 = SUBST ( clock , 6 , 1);
Ch7 = SUBST ( clock , 7 , 1);
IF ( Ch1 @<> '0' );
ItemSkip;
EndIF;
#try to locate the CSS clocks
IF ( Ch1 @= '0' & Ch2 @<> '0' & ClockSize = 7 );
MatchSize = 6;
ClockMatch = SUBST ( clock , 2 , MatchSize );
EndIF;
IF ( Ch1 @= '0' & Ch2 @= '0' & Ch3 @<> '0' & ClockSize = 7 );
MatchSize = 5;
ClockMatch = SUBST ( clock , 3 , MatchSize );
EndIF;
IF ( Ch1 @= '0' & Ch2 @= '0' & Ch3 @= '0' & Ch4 @<>'0' & ClockSize = 7 );
MatchSize = 4;
ClockMatch = SUBST ( clock , 4 , MatchSize );
EndIF;
IF ( Ch1 @= '0' & Ch2 @= '0' & Ch3 @= '0' & Ch4 @= '0' & Ch5 @<>'0' & ClockSize = 7 );
MatchSize = 3;
ClockMatch = SUBST ( clock , 5 , MatchSize );
EndIF;
IF ( Ch1 @= '0' & Ch2 @= '0' & Ch3 @= '0' & Ch4 @= '0' & Ch5 @= '0' & Ch6 @<>'0' & ClockSize = 7 );
MatchSize = 2;
ClockMatch = SUBST ( clock , 6 , MatchSize );
EndIF;
IF ( Ch1 @= '0' & Ch2 @= '0' & Ch3 @= '0' & Ch4 @= '0' & Ch5 @= '0' & Ch6 @= '0' & Ch7 @<>'0' & ClockSize = 7 );
MatchSize = 1;
ClockMatch = SUBST ( clock , 7 , MatchSize );
EndIF;
###########################################
IF ( AttrS ( 'Employees' , Clock , 'Duplicate' ) @<> '');
ItemSkip;
EndIF;
IF ( DimIX ( 'Employees' , ClockMatch ) <> 0 );
AttrPutS ( Clock , 'Employees' , Clock , 'Duplicate' );
AttrPutS ( Clock , 'Employees' , ClockMatch , 'Duplicate' );
EndIF;

Closing the TI and re-opening it doesn't work. Logging off and on also doesn't. Even creating a new TI from scratch fails to give me any data, the only solution has been to restart the service.
Can anyone else reproduce this on a later version, or know if its fixed in a later release?
TIA