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.
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****.
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 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.
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);
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.
if you ever loaded a .sub file (subset) in an editor this is the format you would expect:
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.
SLineCount = 0; #****GENERATED STATEMENTS START****
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