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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2007, 19:35   #1  
FirstOnly is offline
FirstOnly
Участник
 
7 / 10 (1) +
Регистрация: 29.03.2007
Олег, воспользовался вашим кодом и наткнулся на такую проблему.
Создаю две группы пользователей. Накладываю ограничения на таблицу ProdTable по связанным таблицам. Отношу пользоватлеля к обеим группам, но в результате получаю ограничения только одного пользователя.

Первая группа пользователей:
ProdTable ограничение по полю номенклатура, и по полю статус производственного заказа.

Вторая группа пользователей:
ProdTable критерий по статусу производственного заказа.
ProdTable связываю с таблицей ProdBOM (связь 1:n). Накладываю ограничения по полю номенклатура ProdBOM.
ProdTable связываю с таблицей ProdJournalBOM (связь 1:n) критерий не задаю.

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

План исполнения:

Код:
 
SELECT A.ITEMID,A.NAME,A.PRODGROUPID,A.PRODSTATUS,A.PRODTYPE,A.QTYSCHED,A.QTYSTUP,A.DLVDATE,A.STUPDATE,A.FINISHEDDATE,A.SCHEDSTART,A.SCHEDEND,A.HEIGHT,A.WIDTH,A.DEPTH,A.DENSITY,A.QTYCALC,A.REALDATE,A.RESERVATION,A.PRODPOSTINGTYPE,A.INVENTTRANSID,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.INVENTREFTYPE,A.INVENTREFID,A.INVENTREFTRANSID,A.COLLECTREFLEVEL,A.COLLECTREFPRODID,A.BOMDATE,A.BACKORDERSTATUS,A.PRODPOOLID,A.PROFITSET,A.CALCDATE,A.REMAININVENTPHYSICAL,A.BOMID,A.DEL_CONFIGID,A.REQPLANIDSCHED,A.REQPOID,A.REFLOOKUP,A.PRODID,A.INVENTDIMID,A.PRODORIGID,A.PRODPOSITION,A.CREATEDDATE,A.CREATEDTIME,A.CREATEDBY,A.RECVERSION,A.RECID,B.INVENTDIMID,B.INVENTBATCHID,B.INVENTSERIALID,B.INVENTLOCATIONID,B.CONFIGID,B.INVENTSIZEID,B.INVENTCOLORID,B.INVENTGTDID_RU,B.EMPLRESPONSIBLEID_RU,B.RECVERSION,B.RECID
FROM PRODTABLE A,INVENTDIM B
WHERE ((A.DATAAREAID=?)
AND (((A.PRODSTATUS=?) OR ((((A.ITEMID=?) OR (A.ITEMID=?)) OR (A.ITEMID=?))
AND ((A.BACKORDERSTATUS>=?)
AND (A.BACKORDERSTATUS<=?))))
AND ((A.PRODSTATUS=?) OR ((((A.ITEMID=?) OR (A.ITEMID=?)) OR (A.ITEMID=?))
AND ((A.BACKORDERSTATUS>=?)
AND (A.BACKORDERSTATUS<=?))))))
AND ((B.DATAAREAID=?)
AND (A.INVENTDIMID=B.INVENTDIMID))
AND EXISTS (SELECT 'X'
FROM PRODJOURNALBOM C
WHERE ((C.DATAAREAID=?)
AND (A.PRODID=C.PRODID))
AND EXISTS (SELECT 'X'
FROM PRODBOM D
WHERE ((D.DATAAREAID=?)
AND ((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?))
AND (A.PRODID=D.PRODID))
AND ((((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )))
AND ((((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' ))))))
ORDER BY A.DATAAREAID DESC,A.PRODID DESC OPTION(FAST 1,LOOP JOIN)
Теги
faq, rls, законченный пример, полезное, права доступа на уровне записей (rls), связанная таблица, связанные сущности

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Gustav: Unsorted, или Записки DAX-дилетанта - II Gustav DAX Blogs 39 20.05.2009 15:34
Как проверить наличие хотя бы одной записи в подчиненной таблице. demon46 DAX: Программирование 5 07.03.2008 09:41
RLS в Axapta 3.0 Peter Savintsev DAX: Функционал 0 14.07.2003 10:55
Торможение Аксапты - правда или так и должно?. ddadream DAX: Функционал 4 06.05.2003 09:53
[AXAPTA] Пересчет себестоимости. - Неужели это и должно быть так долго?? andrue DAX: Функционал 4 14.08.2002 19:49

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

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

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