|
发表于 2014-6-1 00:57:05
|
显示全部楼层
Hi,
There was some similar topic . I think it is not going to help you in your case, but I think it is worth to be aware of what was said there.
But I hope this will help you
What I do in drill through processes (where the drill result is a view):
- I use a static subset, because in such a case you can SubsetDeleteAllElements and fill them again with needed values (and no problem with deleting subset that is used by a view).
- To prepare such a static subset I first create a dynamic subset with different name via SubsetDestroy, SubsetCreateByMDX (this is not attached to a view, so no problem here).
- I could use dynamic subset to iterate through its elements and add them one by one to my static subset, but this makes process last significantly long, because after adding every new element to static subset my dynamic subset is "rebuild" by TM1 engine (although result does not change, but TM1 does not know it won't).
- So I first create a sList variable that stores all elements from dynamic subset (you can figure out a separator for yourself or just resign from separator if your elements are of same, fixed length) and then I build static subset basing on this sList variable - in this case TM1 doesn't refresh MDX every time new element to static subset is added.
I always try to include "Dummy" element both to dynamic and static subsets.
* Dynamic, because this way I am sure my subset will never be empty (otherwise my SubsetCreateByMDX function would end with error).
* Static, because otherwise my drill process will not want to open a view, when there are no elements in "Row" dimension.
My "Dummy" element should have no values in the cube, from which I get the drill result and my view has "SupressZeroesOnRows" turned on, so even if there are no values to display, view will appear with no rows presented.
Hope this is not too confusing (all above works on my 9.5.1 HF 17).
Good luck. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|