22.12.2004, 18:31 | #1 |
Гость
|
recordLevelSecurity(true)
Народ, рассудите:
Установка recordLevelSecurity(true) у табличной переменной работает якобы только в 2-х звенке (т.е. при исполнении метода класса на клиенте). А если выполнение на сервере - то запрос идет по всей таблице, независимо от настроек. Сам не проверял, возможно, все зависит от нашего SP1 и кривой установки (хотя маловероятно). Кто нибудь сталкивался с этой фичей? Как там на SP2 и SP3? AXAPTA 3.0 |
|
22.12.2004, 21:39 | #2 |
Участник
|
есть разные мнения по этому вопросу.
у некоторых так, у некоторых эдак. но аналогичные вопросы были. порыть стоит в следующем направлении - где создается "табличная переменная" и где вызывается метод recordLevelSecurity(true). Похоже, что если переменная создается на сервере И метод вызывается на сервере, то ограничения на сервере работают нормально. А вот если либо переменная, либо метод вызываются на клиенте, то до сервера ничего доходит. И похоже, это правильно. Но точного и однозначного мнения пока никто не высказал. И я, например, не знаю тщательных исследований этого вопроса. |
|
23.12.2004, 11:49 | #3 |
Гость
|
спасибо.
Методы и табл переменные я сам определял, старался чтобы все происходило исключительно на сервере. Собственно, метод и использует переменную. В нем же и секьюрити, естественно, врубается... Сейчас буду сам рыть. |
|
23.12.2004, 13:18 | #4 |
Гость
|
Все так и работает, как предсказывал Гидрометеопрогрноз
Метод выполняется на сервере, табличная переменная объявляется в нем и только им используется. При этом при исполнении метода на сервере RLS отваливается... 1.Может ли при этих условиях табличная переменная "жить на клиенте"? 2.Как "форсануть" создание табличной переменной на нужном тире? 3.Как называется класс, ответственный за RLS? (поиском нашел в баг-листе МБС класс RLSHeader, но не обнаружил его в АОТе) |
|
23.12.2004, 15:16 | #5 |
Участник
|
Насколько мне изветсно RecordLevelSecurity в Axatpa работают только как фильтр при отображении данных (например, на форме в гриде). Т.е. запрашиваются и передаются все данные в 2 и 3-tier, а потом фильтруются в зависимости от настроек RecordLevelSecurity.
|
|
23.12.2004, 15:24 | #6 |
Участник
|
Цитата:
Изначально опубликовано Zom
Насколько мне изветсно RecordLevelSecurity в Axatpa работают только как фильтр при отображении данных (например, на форме в гриде). метод recordLevelSecurity(true) как раз заставляет применять фильтр и на табличных переменных в коде. |
|
23.12.2004, 15:28 | #7 |
Moderator
|
Цитата:
Т.е. запрашиваются и передаются все данные в 2 и 3-tier, а потом фильтруются в зависимости от настроек RecordLevelSecurity.
|
|
23.12.2004, 15:40 | #8 |
Участник
|
Цитата:
Изначально опубликовано mazzy
Не совсем так. метод recordLevelSecurity(true) как раз заставляет применять фильтр и на табличных переменных в коде. Однако, если, к примеру, в таблице много полей, и пользователь видит только часть из них, все равно Axapta будет передавать полный record из базы данных, включая "невидымые" для текущего пользователя поля. |
|
23.12.2004, 15:45 | #9 |
Moderator
|
Цитата:
Однако, если, к примеру, в таблице много полей, и пользователь видит только часть из них, все равно Axapta будет передавать полный record из базы данных, включая "невидымые" для текущего пользователя поля.
|
|
23.12.2004, 15:54 | #10 |
Участник
|
Цитата:
Изначально опубликовано Zom
Однако, если, к примеру, в таблице много полей, и пользователь видит только часть из них, все равно Axapta будет передавать полный record из базы данных, включая "невидымые" для текущего пользователя поля. |
|
23.12.2004, 15:56 | #11 |
Участник
|
Цитата:
Изначально опубликовано Андре
Это как ? Я про "невидимые пользователю поля". Ограничения же накладываются на уровне строк. |
|
23.12.2004, 16:03 | #12 |
Участник
|
Цитата:
Изначально опубликовано mazzy
А это управляется свойством OnlyFetchActive на форме или Dynamic в отчете |
|
23.12.2004, 16:44 | #13 |
Участник
|
Цитата:
Изначально опубликовано Zom
Tip of the Week |
|