Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
jasonladicos
Partner - Contributor II
Partner - Contributor II

How do you reduce data for some users, but not others if you don't have user groups?

I have a scenario where I want to reduce data based on columns for a particular user, but not for anyone else. Specifically, I want to limit one user to only see data for a subset of learners. The problem that I run into is that if I add a reduction for the learner data for one user, it appears that I have to add the reduction for all users.

When I add the reduction for all users, the problem I run into is that users that should be able to see "everything" no longer see data in other tables that are sometimes related to learners and sometimes not.

Attempt one

Here is a simplified version of my load script:

// load learner data
learner_dimension:
LOAD * INLINE [
learner_key, learner_name
1, Joe
2, Sue
3, Jane
4, Clarence
];

// load learning event data
learning_event_dimension:
LOAD * INLINE [
learning_event_key, event_name
1, Lecture 1
2, Lecture 2
3, Lecture 3
];

// load data for learners in events
// note that there are no learners associated with learning_event_key 3
learner_in_event_fact:
LOAD * INLINE [
learner_key, learning_event_key
1, 1
1, 2
2, 1
2, 2
3, 1
3, 2
4, 1
];

// reduce the access for anyone with ADVISOR_REDUCTION = 1 to only see learners 1 + 2
advisor_reduction:
LOAD * INLINE [
learner_key, ADVISOR_REDUCTION
1, 1
2, 1
];

// section access - user three should only see learners 1 + 2
Section Access;
LOAD * INLINE [
ACCESS, USERID, ADVISOR_REDUCTION
USER, USER/ONE, 
USER, USER/TWO,
USER, USER/THREE, 1
];

 

What I want to happen

Users one and two see data for all learners, and see all learning events, even those not attached to a learner.

User three only sees data for learners 1 and 2. It would be nice if they could see all learning events, but it's not necessary.

What happens

Users one and two get "Access denied" when trying to open the app.

User three only sees data for learners 1 and 2, only sees learning events those two learners are attached to.

 

Attempt two

I tried again, now adding a catch all for all learners for users that should see all learners in the reduction table.

// ..data loaded as before

// reduce the access for anyone with ADVISOR_REDUCTION = 1 to only see learners 1 + 2
advisor_reduction:
LOAD * INLINE [
learner_key, ADVISOR_REDUCTION
1, 1
2, 1
1, ALL
2, ALL
3, ALL
4, ALL
];

// section access - user three should only see learners 1 + 2
Section Access;
LOAD * INLINE [
ACCESS, USERID, ADVISOR_REDUCTION
USER, USER/ONE, ALL
USER, USER/TWO, ALL
USER, USER/THREE, 1
];

 

What happens

Users one and two see data for all learners, but do NOT see learning event 3, because it is not associated with any learners.

User three only sees data for learners 1 and 2, only sees learning events those two learners are attached to.

 

Other things I've tried

I've tried using '*' characters in the Section Access, empty spaces, and I've tried the same in the advisor_reduction table, but nothing seems to get the effect I want.

I've also read through the documentation, and it looks like what I want to achieve isn't possible, unless I have user groups - is that the case? My understanding is that user groups are only used when you have a user directory connector - is that also the case?

Any help much appreciated!

Labels (3)
0 Replies