24.04.2007, 09:35 | #21 |
Мрачный тип
|
oxbacc, а где проблема-то ?
Вы же сами настроили видимость производственных заказов таким образом, что будут видеться только те, у которых в спецификации есть хоть одна строка с указанной складской аналитикой(Произв. заказы -> Спецификация производства -> Складская аналитика - именно этим и сделали, воспроизведите подобное в форме и то же самое увидите). Если Вам нужно видеть ВСЕ производственные заказы, но ограничить их спецификации по какой-то складской аналитике - настраивайте RLS для спецификаций, не трогая сами заказы. Последний раз редактировалось TasmanianDevil; 24.04.2007 в 10:19. |
|
01.08.2007, 12:01 | #22 |
Участник
|
Выложил код на аксаптапедию: предлагаю там его и вести
|
|
08.11.2009, 17:04 | #23 |
Участник
|
DAX2009. Попробовал использовать этот код для отображения айтемов принадлежащих определенным кост группам. В итоге столкнулся с проблемой при установке рилейшенов в тру -
childDS.relations(true); Суть можно увидеть на примере джобы X++: QueryBuildDataSource qbdsInvTable, qbdsBOMCostGroup; Query query = new Query(); ; qbdsInvTable = query.addDataSource(tablenum(InventTable)); qbdsBOMCostGroup = qbdsInvTable.addDataSource(tablenum(BOMCostGroup)); qbdsBOMCostGroup.relations(true); info(qbdsInvTable.toString()); SELECT * FROM InventTable JOIN * FROM BOMCostGroup WHERE InventTable.CostGroupId = BOMCostGroup.CostGroupId AND (0 = BOMCostGroup.CostGroupType OR 1 = BOMCostGroup.CostGroupType) Это баг или я чего-то не понимаю? Спасибо за помощь |
|
09.11.2009, 09:26 | #24 |
Сам.AX
|
Штука клевая, но столкнулись с проблемой.
AX 4.0 Накладываем RLS на дочернюю таблицу у пользователя имеем форму с работающим фильтром по коду номенклатуры, но не работающим по Складу. Сортировка хоть и есть в меню, но эффекта не дает. Если в предложенном коде изменить X++: for(k=1;k<=qbdsRestriction.rangeCount();k++)
{
qbrSecurity = qbdsChild.addRange(qbdsRestriction.range(k).field());
qbrSecurity.value(qbdsRestriction.range(k).value());
qbrSecurity.status(RangeStatus::Hidden);
qbrSecurity.
} X++: qbrSecurity.status(RangeStatus::Open); Может есть какое-то решение? Почему фильтр по полям верхней таблице отрабатывает на ура, а на дочерние - нет?
__________________
ѣ |
|
09.11.2009, 11:09 | #25 |
Axapta
|
Мне в личные сообщения написали некоторые вопросы по поводу приведенного в данной теме кода. Простите, в данный момент времени нет возможности разбираться. Но могу сказать, что мы у себя некоторое время назад решили от данной модификации отказаться ввиду как раз возникающих и заранее неучтенных нюансов при сколько-нибудь сложных запросах. В простейших случаях вроде бы все работает, но заранее сложно предсказать, где в следующий раз возникнет проблема. Пользователи, по мере того, как начинают знакомиться с Аксаптой, выдвигают все меньше и меньше требований, которые противоречат возможностям стандартной Аксапты. Они к ней привыкают со всеми ее плюсами и минусами. То есть, на том этапе, три года назад, данная модификация была полезна. Клиенты довольны, все работает. Но, как стало со временем понятно, это было не более чем временное решение. До тех пор, пока пользователи не повзрослели. От лукавого все такие модификации. Механизм РЛС встроен в ядро и попытка что-то с ним сделать на более высоком уровне - это в любом случае только приближение. И нет никакой гарантии, что при переходе на очередной сервиспак, например, ничего не поменяется. Впрочем, может его и можно довести до ума. Но нам показалось, что менее затратно вообще отказаться от данной модификации. Что мы и сделали.
|
|
12.03.2010, 00:48 | #26 |
----------------
|
для тех кто еще использует данный код 1 маленькое замечание.
такой RLS программно не отключается (то есть приходится делать лишние телодвижения, чтобы форма могла работать в 2х режимах с RLS и без оного) либо добавить в начало проверку if(q.recordLevelSecurity()) |
|
12.03.2010, 07:19 | #27 |
Сам.AX
|
Расширенный RLS
Мы все-таки пошли дальше: чтобы использовать RLS по полной в случаях со множеством связанных таблиц, открыли возможность накладывать RLS на представления, создали представления в AOT'е и на сервере уже подкорректировали их так, чтобы в них присутствовали все нужные поля из этих таблиц. Таким образом, RLS можно накладывать какой угодно сложности, фильтры по полям работают адекватно. Единственный минус: правка вьюх в SQL, но если брать во внимание, что в аксапте реализация представлений уж очень убогая, то это не грех.
__________________
ѣ |
|
07.11.2013, 12:29 | #28 |
Возьми свет!!!
|
Мы это совсем не так решали Макс, мы решали это добавлением еще одной таблицы и работало прекрасно.
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
Теги |
faq, rls, законченный пример, полезное, права доступа на уровне записей (rls), связанная таблица, связанные сущности |
|
|