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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.08.2005, 12:03   #1  
Valery is offline
Valery
Участник
 
381 / 10 (1) +
Регистрация: 28.02.2002
Адрес: Москва
! Фильтрация на форме "Журнал"
Объясняю пользователю: если в списке всех журналов вы хотите оставить только журналы нужного вам типа - встаньте на поле "Код журнала" и выполните фильтрацию. Вот смотрите .... так, что за ерунда .... почему-то не фильтрует .... извините, пошел разбираться....
Вызвал сложный фильтр - оказывается туда автоматически заносятся критерии фильтраци с перечислением всех кодов журналов данного типа. Удаляю все критерии фильтрации, жму ОК - тут хватается за голову администратор системы - в одном списке появились все журналы всех типов - кассовые ордера, платежи клиентам, поставщикам, общие журналы ..... в том числе персональные для групп и пользователей.
У нас 3.0 SP3. Интересно, такое поведение системы считается нормальным? А ведь это одна из наиболее часто используемых форм.
Старый 31.08.2005, 12:29   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Не пойму в чем вопрос.

Вы удалили критерии фильтрации, по-этому вам и показывается все содержимое журнала.
Старый 31.08.2005, 13:37   #3  
Valery is offline
Valery
Участник
 
381 / 10 (1) +
Регистрация: 28.02.2002
Адрес: Москва
Цитата:
Изначально опубликовано AndyD
Не пойму в чем вопрос.
Вопросов я и не задавал, кроме риторических.
Я просто, так сказать, донес до сведения общественности, что не работает простая фильтрация по полю "код журнала" и то, что в форме журналов любого типа можно получить перечень всех журналов всех типов (мне это было неочевидно).
Старый 31.08.2005, 14:29   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Без паники. (С) Путеводитель по галактике

Дело в том, что работа с журналами пришла из очень древних версий Аксапты. Тогда действительно не было возможности заблокировать критерии.

В последних версиях есть.
Если этот вопрос вас беспокоит, то:
1. Зайдите в форму LedgerjournalTable и метод датасорса LedgerjournalTable.init
2. Найдите код
PHP код:
    postedCriteria      this.query().dataSourceNo(1).addRange(fieldnum(LedgerJournalTableposted));
userCriteria        this.query().dataSourceNo(1).addRange(fieldnum(LedgerJournalTableuserBlockId));
userGroupCriteria   this.query().dataSourceNo(1).addRange(fieldnum(LedgerJournalTablegroupBlockId)); 
Добавьте
PHP код:
postedCriteria.status(RangeStatus::Hidden);
userCriteria.status(RangeStatus::Hidden);
userGroupCriteria.status(RangeStatus::Hidden); 
3. Найдите код
PHP код:
for (counter 1;counter <=numInContainercounter++)
    {
        
queryLedgerJournalName conpeek(journalNames,counter);
        
this.query().dataSourceNo(1).addRange(fieldnum(LedgerJournalTablejournalName)).value(queryLedgerJournalName);
    } 
вставьте в цикл код
PHP код:
this.query().dataSourceNo(1).findRange(fieldnum(LedgerJournalTablejournalName),counter).status(RangeStatus::Hidden); 
__________________
полезное на axForum, github, vk, coub.
Старый 31.08.2005, 17:33   #5  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А пользователь с правами администратора после таких правок все журналы (в т.ч. и чужие) просматривать сможет?
__________________
С уважением,
glibs®
Старый 31.08.2005, 20:02   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Нет. Хотите оставить лазейку, не устанавливайте hidden на userGroup например. Или не устанавливайте только для пользователей, входящих в группу администраторы (или любую другую).

Суть предложения:
1. придется править код
2. придется править код только одного объекта
3. правки несложные.
__________________
полезное на axForum, github, vk, coub.
Старый 31.08.2005, 20:17   #7  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Я лишь хотел сказать, что стандартный функционал, IMHO, не лишен логики.

Смотреть можно любые журналы, даже чужие. Модифицировать строчки можно только в тех журналах, доступ на которые настроен, и которые не являются персональными для другого пользователя или для группы, в которую пользователь не входит. Естественно, только неразнесенные журналы.

Если нужно резать доступ на просмотр строк журналов (или заголовков), то нужно использовать RLS (если в рамках стандартного функционала, без программирования).
__________________
С уважением,
glibs®
Старый 31.08.2005, 20:41   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано glibs
Я лишь хотел сказать, что стандартный функционал, IMHO, не лишен логики.
Здесь немного не о том.
Ты зайди в журнал, нажми на воронку, посмотри на ranges.
Увидишь, что в стандартном функционале все range можно редактировать
Например, все ranges сделать пустыми...
__________________
полезное на axForum, github, vk, coub.
Старый 31.08.2005, 20:48   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
2 mazzy

Или использовать SecurityKey


2 glibs

Это все замечательно, но есть одна засада. Убрав рэнжи из запроса пользователь может снять чужие блокировки.
Старый 31.08.2005, 21:19   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано AndyD
Или использовать SecurityKey
класс! или так.
__________________
полезное на axForum, github, vk, coub.
Старый 01.09.2005, 11:49   #11  
slava09 is offline
slava09
Участник
Аватар для slava09
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Регистрация: 06.03.2003
Адрес: Украина, Киев
Цитата:
Изначально опубликовано mazzy

нажми на воронку
У нас пользователи ее рюмкой называют

Да, знаю - я грязный оффтопщик
Старый 01.09.2005, 17:23   #12  
Valery is offline
Valery
Участник
 
381 / 10 (1) +
Регистрация: 28.02.2002
Адрес: Москва
Цитата:
Изначально опубликовано mazzy
PHP код:
this.query().dataSourceNo(1).findRange(fieldnum(LedgerJournalTablejournalName),counter).status(RangeStatus::Hidden); 
Как бы ещё дать возможность пользователю фильтровать по коду журнала?
Старый 01.09.2005, 17:30   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Не закрывайте коды, т.е. не вставляйте эту строку
Старый 01.09.2005, 17:32   #14  
Valery is offline
Valery
Участник
 
381 / 10 (1) +
Регистрация: 28.02.2002
Адрес: Москва
Кажись сам понял. Надо range по journalName вообще не накладывать, а вместо этого наложить скрытый range по journalType
Старый 01.09.2005, 18:08   #15  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Изначально опубликовано AndyD
...
Убрав рэнжи из запроса пользователь может снять чужие блокировки.
...
М-м-м... э-э-э... согласен.

Как вариант группу можно кому-то закрыть. Тогда получится, что кто-то создает персональный журнал для другого, например.

Но даже если снять блокировку, то в чужом журнале максимум что можно сделать нехорошего, это удалить строку. Однако я надеюсь, что в компаниях, которые внедряют у себя Аксапту, пользователи не занимаются тем, что удаляют друг другу строки. Ну в западных — так точно. Готов в данном отношении признать несовершенство системы.

Я с такой бедой обычно борюсь с помощью RLS. У каждого свой журнал.
__________________
С уважением,
glibs®
Старый 02.09.2005, 08:15   #16  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Изначально опубликовано glibs

Я с такой бедой обычно борюсь с помощью RLS. У каждого свой журнал.
Поделитесь опытом, а как Вы настраивали RLS на строки журналов? С RLS на сами журналы все понятно, и вроде бы решает часть проблемы. То есть, не видишь журнал - не зайдешь в его строки... Но есть, например, такая форма, как "Перенесенные оплаты", где все строки свалены в кучу. И тут возникает вопрос, как задать критерий в RLS на строках журналов, который содержал бы Ranges как по таблице строк, так и по таблице журналов? То есть, скажем, закрыть доступ к строкам журналов за такой-то период, созданных в журналах такого-то типа.
__________________
Старый 02.09.2005, 10:39   #17  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Посмотрите здесь http://www.axforum.info/forums/showt...0572#post30572
Теги
rls, журнал, права доступа, фильтр, права доступа на уровне записей (rls), record level security

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрация в форме "В наличии" по агрегатному полю "Физ. наличие" miaa DAX: Программирование 13 29.08.2006 23:45
поле "Документы к обновлению" в форме "Обработка закупки" sev DAX: Функционал 3 08.12.2005 17:21
Журнал переноса->Строки->Поле "Количество" . Нужен "0" по умолчанию вместо ATimTim DAX: Функционал 5 26.06.2004 12:17
Как сбросить флаг "Используется" в форме "Складской журнал" ATimTim DAX: Функционал 1 24.06.2004 19:19
Воспрос о форме "Журнал разноски" в ТРЕТЬЕЙ версии Аксапты. VES DAX: Функционал 0 24.07.2003 19:01

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

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

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