AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.07.2005, 15:42   #21  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
2 itfs :
Пардон ,Со случаем <Перейти к основной таблице> -конфуз . . Он работает , просто я начал проверять на себе , не указав в настроечной таблице ничего.
Старый 19.07.2005, 17:11   #22  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Ну да, тут вопрос только в том, в какой форме окажешься ....

С уважением, itfs.
Старый 19.07.2005, 17:34   #23  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Pustik
Побывал на вашей ссылке. Неплохо бы было сделать lookup для списка полей принадлежащих соответствующей таблице в вашей настроечной форме .
Наверное... Там много чего сделать можно...
Было сделано очень давно... развивать и модифицировать не планирую.
__________________
полезное на axForum, github, vk, coub.
Старый 22.07.2005, 10:46   #24  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
to ALL
В заключении темы хочу предоставить отчет о том, что у нас получилось. Я просто перечислю что мы смогли сделать , что нет . Для сравнения возьму проект Mazzy на его ссылке. Изначально методология у нас была идентичной, только конечно грамотность написания кода у нас на порядок ниже ). Мастер есть мастер. Но тем не менее есть и преимущества и недостатки. Может быть эта информация поможет кому – нибудь.

Преимущества :
1) В своем статическом методе настройки фильтра мы используем изменение не только Query(), но и QueryRun().Query(), что позволяет нам закрыть дырки для пользователей, используя функцию <Найти>. В проекте Mazzy пользователь все-таки может обойти даже заблокированные фильтры. Тема <работа Range на форме>.

2) В этом же методе Mazzy использует запрос вида :
while select accessRecordList
join userGroupList
where userGroupList.userId = = userID
&& ( userGroupList.groupId = = accessRecordList.groupID
|| userGroupList.userId = = accessRecordList.userID )
join TmpSysQuery
where accessRecordList refTableID == tmpSysQuery.Table_Id
{…………..уст-ка фильтра………….}
Мы все-таки посчитали, что это не совсем корректно, ведь получается, сколько раз UserId встречается в таблице userGroupList, - столько раз и установится этот фильтр.
Конечно фильтры “!A” и “!A,!A,!A,!A” ,будут возвращать один и тот же результат , но согласитесь……

У нас все гораздо проще:
while select accessRecordList
where accessRecordList.userId = = userID &&
!accessRecordList.GroupId
{…………..уст-ка фильтра………….}

3) Разделение SQL – запроса , о котором говорилось выше, на два (для пользователей и групп пользователей), позволило нам более понятно, динамично и рационально настраивать фильтры в нашей настроечной форме. А именно:

while select userGroupList where usergrouplist.userId = = UserId
{
while select forceplaceholders accessRecordList where
accessRecordList.GroupId = = userGrouplist.groupId &&
!accessRecordList.UserId
{…………..уст-ка фильтра………….}} – для групп пользователей


while select accessRecordList
where accessRecordList.userId = = userID &&
!accessRecordList.GroupId
{…………..уст-ка фильтра………….} – для пользователей

Например: пользователь Иванов относится к группе ‘Технолог‘
Задача1: группа ‘Технолог’ видит: A,B,C,D
польз. Иванов видит: только A

и наоборот
Задача2: группа ‘Технолог’ видит: A
А вот польз. Иванов видит: A,B,C,D

У нас обе Задачи легко настраиваются, а главное настройка очень понятна самому настройщику.
Пытался настроить Задачу2 в проекте Mazzy -- честно говоря, так и не удалось.

Недостатки :
1) Для того, что бы использовать изменение QueryRun().Query() , нам пришлось передавать параметр FormDataSource. Это конечно не так динамично как у Mazzy. Т.е. нам приходиться в каждой форме, где необходимо устанавливать фильтр прописывать строку(например для справочника номенклатуры) :
MY_RLS::updateQuery(InventTable_ds); в то время как у Mazzy :
AccessRecordList_maz::updateQuery(this.query());
Таким образом, наш код в ядро не пропишешь.
2) Еще один большой недостаток. Предположим на какое-то поле нужно наложить фильтр типа A,B,C,D. В нашем случае по этому полю не будет работать поиск. Т.е. если пользователь захочет отфильтровать записи по этому полю только для A, он все равно получит A,B,C,D, - но никогда пользователь не увидит Е,F.. и т.д.. У Mazzy это сделать можно, но и найти E,F для пользователя не составит большого труда. Как сделать идеально, мы так и не придумали. Но главное для нас что бы пользователь не смог видеть то , что ему не положено , а искать можно и по другим полям , или на худой конец , пользоваться услугами сортировки.

Может быть я в чем то не прав , это только моя точка зрения , правда подкрепленная тестированием.

Буду рад, если эта информация кому-нибудь поможет.
Старый 22.07.2005, 12:23   #25  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Кстати об RLS...
а никто не добавлял в список таблиц, которые он видит бругие таблицы, а не только группы Main как сделано сейчас?
Старый 22.07.2005, 13:39   #26  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Pustik
Буду рад, если эта информация кому-нибудь поможет.
Спасибо.
__________________
полезное на axForum, github, vk, coub.
Старый 23.07.2005, 07:41   #27  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
если это кого-то заинтересовало могу выслать проект- что у нас получилось,я буду очень рад если услышу ваши замечания
Старый 24.07.2005, 06:36   #28  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Давайте лучше рядом со статьей положим?
Тогда все смогут брать, а на форуме оставлять комментарии.
__________________
полезное на axForum, github, vk, coub.
Старый 25.07.2005, 08:30   #29  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
!
Вложения
Тип файла: xpo bko_rlsaxforum.xpo (107.2 Кб, 304 просмотров)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Периодически пропадает доступ к Системе у удаленных пользователей andy_555 DAX: Администрирование 4 04.03.2009 15:02
Как дать доступ к Аксапте внешним пользователям? mazzy DAX: Администрирование 43 29.08.2008 15:46
Закрыть доступ к компаниям без создания домена и группы пользователей Рустем Гизатуллин DAX: Администрирование 3 04.12.2007 09:38
Одновременный доступ к заказу 2х пользователей Pegiy DAX: Функционал 5 06.09.2004 16:03
Доступ к строкам закупки при сохранении Хилари DAX: Программирование 7 27.04.2004 13:13

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:40.