Разделение данных для пользователей (qlikview).

Автор piton, 18 июля 2017, 11:39:44

« назад - далее »

piton

Добрый день!
Подскажите, можно ли в рамках одного отчета разграничить данные для разных пользователей.
Например есть несколько отделов в магазине и что бы заведующие из разных отделов видели данные только по своему отделу? Или нужно делать разные отчеты?

Andrey S

Если речь не идет о разграничении прав на просмотр (то есть принципиально не запрещается заведующему отдела А видеть отчет по отделу Б),

то можно использовать функцию OSUser(), которая возвращает логин учетной записи пользователя

Далее на лист с отчетом ставим триггер, организующий выборку в поле "Отдел":
iF(OSUser()='Ivanov', 'Отдел А', iF(OSUser()='Petrov', 'Отдел Б'))

Либо можно в скрипте загрузки организовать таблицу соответствия логинов и отделов и в отчете ограничивать измерение отдела значением, соответствующим логину.

piton

То есть, если меняется пользователь, то нужно переделывать отчет? А в рамках настроек? Например для каждого отдела свой лист на котором будут данные только этого отдела и доступ к этому листу дать определенным пользователям?

Andrey S

В каком смысле меняется пользователь?

Если речь идет о том, что меняется руководитель "отдела А", на место его заступает другой человек с другой учетной записью то да, придется переделать отчет. Либо поправить табличку (например xls) в которой организована привязка отделов и логинов руководителей и которая подружается чере скрипт загрузки (если идти по второму варианту из тех, что я описывал).

Если имеется ввиду, что один юзер выходит из Клика, а другой заходит , то тут проблем нет (они вообще могу работать паралелльно). Qlik опознает пользователя и поставит выборку так, что отчет будет по его отделу.

У вас же Клик-Сервер стоит?

Опять же я не вполне понял есть ли у вас принципиальная секретность в предоставлении информации.
Если есть, то придется решать вопрос не через триггеры, а  организацией секций доступа.

piton

#4
В общем решил остановится на SECTION Access. Но элементарный скрипт не работает. Захожу под любым ID и вижу все товары:


SECTION Access;

LOAD * INLINE [
    USERID, ACCESS, PRODUCTTYPE
    U1, USER, A
    U2, USER, B
    U3, USER, C
    U4, USER, D
    U5, USER, E
    U6, USER, A
    U6, USER, B
    U6, USER, C
    U6, USER, D
    ADMIN, ADMIN, *
];

SECTION Application;

Tovar:
load * inline [
Товар , PRODUCTTYPE
Полоценце , A
Полоценце , A
Салфетка , B
Салфетка , B
GT , A
Нож , C
Нож , C
Нож , C
Нож , C
Вилка , D
Вилка , D
Вилка , D
Вилка , D
Вилка , D
Кружка , A
Кружка , B
Кружка , C
Диван , B
Диван , B
];


Даже не удается поэксперементировать как это все работает.
Да, и кстати из справочника пример тоже не разграничивает данные. Может кто сталкивался? Возможно требуются дополнительные настройки?

piton

С данным вопросом разобрался. В свойствах документа, на вкладке открытие есть галочка, которая активирует ограничение согласно SECTION Access.
Есть небольшая статья по этой теме.
http://blog.atkcg.ru/section-access-razgranichenie-prav-dostupa-k-dannym/

Яндекс.Метрика