02.12.2005, 11:58 | #1 |
Axapta
|
Здравствуйте. Есть такая проблема. Если кто сможет хоть как-то помочь - скажу большое спасибо.
Итак, надо из Х++ создать запись RLS (доступ на уровни записи). Основная проблема - автоматически заполнить контейнер запрос и внести эти данные в таблицу SYSRECORDLEVELSECURITY, в которой, как я понял, хранятся все данные об RLS. Вопрос: как это лучше сделать? ЗЫ Если что не так написал - поправьте. Я новичек в Аксапте. |
|
02.12.2005, 12:48 | #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... |
|
02.12.2005, 13:02 | #3 |
Axapta
|
Я не очень понимаю, как заполнять поле restriction данной таблицы. Там же вроде как храниться сам запрос. Или нет?
ЗЫ Я собираюсь написать статик джоб заполнения этой таблицы. |
|
02.12.2005, 14:02 | #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(); |
|
08.12.2005, 09:16 | #5 |
Axapta
|
Ой, совсем забыл зайти и поблагодарить всех откликнувшихся.
Так, вот: искренне благодарю Delfins. Спасибо. На самом деле я так и делал, но у меня, почему-то, для некоторых таблиц это не работало. Т.е. я все заполнял, но когда заходил в форму с РЛС и нажимал на "ЗАПРОС", то для этих таблиц у меня никакого запроса там почему-то не было. Я долго не мог понять почему. А потом случайно заметил, что у меня по-какой-то причине нет прав на редактирование этих таблиц. |
|
22.12.2005, 13:38 | #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? |
|
22.12.2005, 14:40 | #7 |
NavAx
|
А какая Axapta и какой SP?
Кстати какой смысл Использовать Group1 с отключенным доступом к Table и включенным RLS по Table? ИМХО это по меньшей мере странно, а аксапта видимо считает это не корректным. |
|
22.12.2005, 14:51 | #8 |
Axapta
|
Axapta 3.0 CIS SP3
Смысл долго объяснять и он странный (для меня), но задачу ставил не я, мне лишь надо разобраться можно ли сделать или нет. |
|
22.12.2005, 17:22 | #9 |
NavAx
|
RLS ИМХО не работают, если к таблице не дан доступ.
|
|
22.12.2005, 17:25 | #10 |
Axapta
|
Это я вижу. Вопрос в том, можно ли это обойти.
|
|