get a list of all groups the user is a member of. On the rules and without feeding.
Posted: Wed Apr 08, 2020 8:28 pm
Hello. Faced the non-trivial task of getting a list of user groups in the cube, then use these groups for analysis in access in other cubes (maybe some access groups intersect).
In my attempts, I implemented two options, and both of them failed miserably:
First option:
I created a group and placed it the very first (well, or almost) and, using a recursive rule, I extended the accumulating rule along the flow variable from the last element to the first. Where for each element was taken its next element "|" the name of the group if the user is a member of it. so on the first element I got a list of all the groups. And this worked on a test bench unfortunately in the real model I got ~ 2000 groups and got a critical references evaluation stack error.
The second option: I created a cube of 3 dimensions clients, a sheet (dimension with numbers from 1 to N) and measures (Group number and name) and in the rules described the logic if if the previous cell (! Clients,! List -1, Name) is filled then look at the group closest to it by new lines in the rules like the last found group + 1
new line last found group + 2 and so on 2000.
This option returns a beautiful view of the groups, but it takes so long that it is not viable.
The question is, maybe someone already faced with similar tasks
accumulation of text values over large lists.
Any ideas?
p. s.
Yes, I can do this with TI processes. Yes, I can do it partly through processes, store the groups according to user attributes, or implement the whole logic of the processes. Let's just say this is the second less beautiful option.
In my attempts, I implemented two options, and both of them failed miserably:
First option:
I created a group and placed it the very first (well, or almost) and, using a recursive rule, I extended the accumulating rule along the flow variable from the last element to the first. Where for each element was taken its next element "|" the name of the group if the user is a member of it. so on the first element I got a list of all the groups. And this worked on a test bench unfortunately in the real model I got ~ 2000 groups and got a critical references evaluation stack error.
The second option: I created a cube of 3 dimensions clients, a sheet (dimension with numbers from 1 to N) and measures (Group number and name) and in the rules described the logic if if the previous cell (! Clients,! List -1, Name) is filled then look at the group closest to it by new lines in the rules like the last found group + 1
new line last found group + 2 and so on 2000.
This option returns a beautiful view of the groups, but it takes so long that it is not viable.
The question is, maybe someone already faced with similar tasks
accumulation of text values over large lists.
Any ideas?
p. s.
Yes, I can do this with TI processes. Yes, I can do it partly through processes, store the groups according to user attributes, or implement the whole logic of the processes. Let's just say this is the second less beautiful option.