![]() |
#1 |
Axapta
|
Здравствуйте. Есть такая проблема. Если кто сможет хоть как-то помочь - скажу большое спасибо.
![]() Итак, надо из Х++ создать запись RLS (доступ на уровни записи). Основная проблема - автоматически заполнить контейнер запрос и внести эти данные в таблицу SYSRECORDLEVELSECURITY, в которой, как я понял, хранятся все данные об RLS. Вопрос: как это лучше сделать? ЗЫ Если что не так написал - поправьте. Я новичек в Аксапте. ![]()
__________________
С уважением, Олег. |
|
![]() |
#2 |
Участник
|
Chto oznochajet "luche"?
Vsje zavisit ot togo, kak vi budete vvodit dannie.. cherez `GUI` ili `static` esli static, to prosto - zapisivajem v tablicu znachenija i vsje.. esli GUI, to zachem eto nado.. esli est' uzhe Wizard... |
|
![]() |
#3 |
Axapta
|
Я не очень понимаю, как заполнять поле restriction данной таблицы. Там же вроде как храниться сам запрос. Или нет?
ЗЫ Я собираюсь написать статик джоб заполнения этой таблицы.
__________________
С уважением, Олег. |
|
![]() |
#4 |
Участник
|
A vi kod hotja bi posmotreli? Tam zhe vsje napisano, dai vse ponjatno..
Код: if (sysRecordLevelSecurity.restriction) { queryRun = new SysQueryRun(sysRecordLevelSecurity.restriction); } else { query.addDataSource(sysRecordLevelSecurity.tabId); queryRun = new sysQueryRun(query); } queryRun.saveUserSetup(false); queryRun.prompt(); sysRecordLevelSecurity.restriction = queryRun.pack(); sysRecordLevelSecurity_ds.write(); |
|
![]() |
#5 |
Axapta
|
Ой, совсем забыл зайти и поблагодарить всех откликнувшихся.
![]() Так, вот: искренне благодарю Delfins. Спасибо. На самом деле я так и делал, но у меня, почему-то, для некоторых таблиц это не работало. Т.е. я все заполнял, но когда заходил в форму с РЛС и нажимал на "ЗАПРОС", то для этих таблиц у меня никакого запроса там почему-то не было. Я долго не мог понять почему. А потом случайно заметил, что у меня по-какой-то причине нет прав на редактирование этих таблиц. ![]()
__________________
С уважением, Олег. |
|
![]() |
#6 |
Axapta
|
Чтобы не плодить новую тему, спрошу в этой.
Итак, есть некий user, который входит в 2 группы, Group1 и Group2. Далее, есть некая Table, у которой стоит SecurityKey. У Group1 этот SK выключен, у Group2 - включен. Так вот, если настроить RLS для Group1 для Table, то при просмотре user'ом Table этот RLS игнорируется, т.е. раз у Group1 нет доступа к Table, то вроде как по мнению Аксапты и на ее RLS для этой группы смотреть не надо (может это конечно и правильно, но надо как-то избежать проверку наличия SK), а раз смотреть не надо и для Group2 RLS не настроен, то и для user никакого RLS нет. Если включить SK для Group1, то все работает. Ну и вопрос такой: можно ли как-нибудь сделать так, чтобы при данных условиях на Table для user RLS работал, можно ли как-то избежать проверки наличия у группы SK?
__________________
С уважением, Олег. |
|
![]() |
#7 |
NavAx
|
А какая Axapta и какой SP?
Кстати какой смысл Использовать Group1 с отключенным доступом к Table и включенным RLS по Table? ИМХО это по меньшей мере странно, а аксапта видимо считает это не корректным. |
|
![]() |
#8 |
Axapta
|
Axapta 3.0 CIS SP3
Смысл долго объяснять и он странный (для меня), но задачу ставил не я, мне лишь надо разобраться можно ли сделать или нет.
__________________
С уважением, Олег. |
|
![]() |
#9 |
NavAx
|
RLS ИМХО не работают, если к таблице не дан доступ.
|
|
![]() |
#10 |
Axapta
|
Это я вижу. Вопрос в том, можно ли это обойти.
![]()
__________________
С уважением, Олег. |
|