developers
developers
Pimp my PAW
I'm in the PAW Workbench, I open a view and I click on the "Edit MDX" button. I get a packed MDX block, with no indentation whatsoever, pretty hard to read. If only there was an option to format that MDX block to something much easier to read.....
**RING** **RING** Oh, I'm sorry, I must interrupt this blogpost, someone is at the door.
Please hold on.
Commenting out portions of code in TI
You would like to comment out portions of code for legacy or future use instead of removing it. Appending # at the front of every line is ugly and messes up the indenting. Here is a quick, neat and simple fix...
############# PORTION COMMENTED OUT if(1 = 0); #code to comment out is here endif; ####################################
That's it. It can come also handy to turn off auto-generated code in the #****GENERATED STATEMENTS START****.
TM1 lint
alias.pl is a very basic lint tool whose task is to flag "dangerous" TM1 rules.
For now it is only checking for aliases in rules.
Indeed, if an alias is changed or deleted, any rule based on that alias will stop working without any warning from the system. The values will remain in place until the cube or its rules gets reloaded but you will only get a "silent" warning in the messages log after reloading the cube.
Renaming elements
Renaming elements without activating aliases? Yes we can!
The dimension editor and dimension worksheets cannot rename elements directly, so let me introduce you to SwapAliasWithPrincipalName.
In this example, we will add a padding "0" to an existing set of elements without rebuilding the dimension from scratch.
Before swap:
Padding zeroes
This a short simple syntax to easily pad zeroes to an index value:
Period = 'Period ' | NumberToStringEx(index, '00','','');
(from olap forums)
alternatively, one could also write (prior to TM1 8.2):
Period = 'Period ' | If(index > 10,'0','') | NumberToString(index);
The fallacy of blb files
TM1 system files with the blb extension, incorrectly referenced as "cube formatting" files (admin guide p.35) are actually "rule formatting" files for the "standard" rules editor (prior to 9.1).
The rules editor actually displays the contents of the .blb if there is one, otherwise it defaults to the .rux.
Unfortunately things can go wrong, and the .blb file gets desynchronised from the actual .rux or just go blank.
A closer look at subsets
if you ever loaded a .sub file (subset) in an editor this is the format you would expect:
Silent failures
TM1 processes will not complain when their input source is empty.
So although the "process successful" or "chore successful" message will popup, your cube will remain desperately empty.
In order to solve that silent bug (or rather "feature" in IBM's eyes), you will need to add specific code to your TI processes to test against empty sources.
Here follows:
.initialise counter
PROLOG TAB
SLineCount = 0; #****GENERATED STATEMENTS START****
.increment counter
DATA TAB
A closer look at dynamic slices
Dynamic slices can be quite useful when the elements you display in your reports evolve over time, they automatically update with the new elements.
The following article will try to dig into the parameters that define these slices and show some of the possibilities to interact with these. The idea was originally submitted by Philip Bichard.
The dynamic slice parameters stored in the names list of the worksheet
to display these in Excel: insert -> name -> paste -> paste list