Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Братцы, как знаете не хуже меня, есть такое v('ITEM_NAME') внутри вызываемого на странице PL/SQL, благодаря чему всегда понятно, на какой странице и в каком приложении работает конкретный код или каково значение Item на странице. А вот есть ли у вас мысли, как организовать подобное понимание конкретно в Condition? Ведь у каждого item имеется уникальный код... Можно ли его получить в Condition? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2017, 20:02 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтер, Приведи пример. Я лично не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2017, 20:27 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерБратцы, как знаете не хуже меня, есть такое v('ITEM_NAME') внутри вызываемого на странице PL/SQL, благодаря чему всегда понятно, на какой странице и в каком приложении работает конкретный код или каково значение Item на странице. А вот есть ли у вас мысли, как организовать подобное понимание конкретно в Condition? Ведь у каждого item имеется уникальный код... Можно ли его получить в Condition? Памятка задающим вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 08:12 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Друзья, все ваши упрёки справедливы. Но должен заметить, что форумов, где нет возможности откорректировать своё собственное сообщение после постинга на форуме в Сети ещё поискать... Однако sql.ru мы любим не за это. Итак, уточняю свой вопрос. Любой элемент в APEX имеет настройку Condition, суть которой в том, рендерить или нет данный элемент. В том случае, если тип этого Condition представляет из себя PL/SQL, возникает желание внутри этого кода установить "координаты" вызова данного кода, а именно, приложение, страницу и некий идентификатор, или имя хотя бы элемента, откуда код вызван при рендеренге. Что касается номера приложения и страницы, тут всё просто v('APP_ID') и v('APP_PAGE_ID'), а вот с элементом что-то никак... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:43 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерСети ещё поискать.. это так) Саша СплинтерВ том случае, если тип этого Condition представляет из себя PL/SQL, возникает желание внутри этого кода установить "координаты" вызова данного кода, а именно, приложение, страницу и некий идентификатор, или имя хотя бы элемента, откуда код вызван при рендеренге. зачем? В общем случае не надо делать привязку! Сильные связи считаются Г...кодом. Слабые связи считаются OK кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 20:35 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Ну что же, представим себе интерфейс, пользователи которого разбиты по ролям. Каждой роли должны быть недоступны некоторые группы элементов (кнопки, поля редактирования, закладки и так далее) общего интерфейса. Возникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER. Что можно сказать о группе элемента? Ничего, если PL/SQL не знает, как его идентифицировать. Не знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 21:18 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтер, Функция не документирована, но можете попробовать: APEX_APPLICATION.GET_COMPONENT Я в некоторых ситуациях использую её. Внутри items не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 21:29 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерВозникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER. ещё подробнее и ПРИВЕДИТЕ ПРИМЕР странички. Т.к. я против без достаточных оснований мешать видимость (Condition) и безопасность (SECURITY). Первая это БЛ - бизнес логика. Вторая это безопасность. Оракл их разнёс по разным полям. Кроме того Саша СплинтерВозникает желание объединить с одной стороны элементы интерфейса в группы это вообще третий случай, т.к. чисто визуально есть средство - регион. Он прекрасно работает и объединяет. ... Итого может вы ошиблись? От неопытности? Не делали систем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:42 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтер, Когда программист слишком многое придумывает, возможно он не сформулировал USE CASE? По ГОСТ'у? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:43 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтерс другой пользователей в группы пользователей в группы я объединяю на основе наследования ролей оракла. Т.е. роль в оракле админ автоматом наследует роли всех дочек. Очень простая и лаконичная схема авторизации от Оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:46 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове слабая связь, это когда в пакеты оракла не передавать ничего с двумя точками. Никаких айтемсов и переменных апекса. Но я понимаю, что это идеал и идеала в жизни не бывает)). Сам нарушал)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:56 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Petro123Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове слабая связь, это когда в пакеты оракла не передавать ничего с двумя точками. Никаких айтемсов и переменных апекса. Но я понимаю, что это идеал и идеала в жизни не бывает)). Сам нарушал)). упс. Поправлюсь. В коде пакета не должно быть переменных с двоеточиями (контекста). А во входных параметрах в обычных типах IN Parameters передавай что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:58 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерНу что же, представим себе интерфейс, пользователи которого разбиты по ролям. Каждой роли должны быть недоступны некоторые группы элементов (кнопки, поля редактирования, закладки и так далее) общего интерфейса. Возникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER. Что можно сказать о группе элемента? Ничего, если PL/SQL не знает, как его идентифицировать. Не знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень. Для условия видимости или не видимости используем привилегии. Привилегии назначены ролям. При логоне все привилегии записываются в Кэш таблицу. Одна привилегия - Один/Много элементов. При рендеринге страницы, система проверяет наличие данной привилегии в кеш таблицы для данного пользователя. Использование кеш таблицы обусловлено иерархической структурой ролей, и линейный запрос из кеш таблицы, в разы быстрее иерархического запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 09:13 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень. А вообще пораскинув, я нашел вам решение :) #CURRENT_ITEM_NAME# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 09:42 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
blkangelСаша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень. А вообще пораскинув, я нашел вам решение :) #CURRENT_ITEM_NAME# Но с другой стороны, я не вижу ничего плохо, в передачи названия элемента, все равно же условие писать. Вот если бы решили не использовать механизм condition, тогда другой разговор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 09:44 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Друзья, очень благодарен вам за ваши размышления! sql.ru это просто сборище маньяков-профи! Даже и не думайте взломать мой смартфон при помощи вашего SQL! #CURRENT_ITEM_NAME# это вообще откровение какое-то! Жаль, что не работает ((( APEX_APPLICATION.GET_COMPONENT только для APEX 4. Спешу сообщить, что конечно речь идёт об ограничении функциональности и разграничениях компетенций. Хотя поди различи, что тут авторизация, а что просто ограничение функциональности, когда кнопку спрятали, а за кнопкой - запуск ракеты. Есть мнение, что никакой разницы на уровне интерфейса нет и обсуждение подобных вопросов - сплошная казуистика. Предложение работать с регионами вызывает уважение. Однако группы элементов представляют из себя подчас поля, кнопки и закладки, так что регионы - лишь красивая утопия. Поскольку речь идёт об аутентификации внутри веб-приложения, до оракла здесь как-то дотягиваться желания особого не возникает. Це ж апекс, зачем тут Оракл? APEX_PUBLIC_USER и все дела ))) Поясните, может я не понял мысль? Вы используете аутентификацию пользователей оракл для целей работы с апекс-приложением? То есть на сто клиентов набегает тысяча пользователей и всех вы их в Оракле заводите? Кэш таблица имеется в виду опция CACHE для CREATE TABLE? Круто! >>Когда программист слишком многое придумывает, возможно он не >>сформулировал USE CASE? По ГОСТ'у? В вашей терминологии я вряд ли являюсь программистом. Так, самоучка со стажем, вряд ли более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 19:47 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерОднако группы элементов представляют из себя подчас поля, кнопки и закладки, так что регионы - лишь красивая утопия. переведи. Т.е. вы сами не использовали регионы, а делали без них? Закладка это вкладка? Приводите скрины, ведь мы о ГУИ и визале говорим. А не о характерах и писателях. ... Саша СплинтерПоясните, может я не понял мысль? Вы используете аутентификацию пользователей оракл для целей работы с апекс-приложением? То есть на сто клиентов набегает тысяча пользователей и всех вы их в Оракле заводите? я использую оба варианта. И вариант никак не зависит от 1000юзверей. Ораклу пофигу и 10000. Спросите у ораклоидов. В первом варианте у меня оракл и его дерево. Во втором варианте своё дерево пользователей в табличках. В чём проблема? Главное принцип - наследования ролей)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:23 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтеррегионы - лишь красивая утопия регионы в апекс это стратегия Оракле). Которую вы игнорируете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:25 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
>>Вот если бы решили не использовать механизм condition, тогда другой разговор. Кроме authorization и condition других штатных способах прятать элементы не слыхал. Причём по ходу тут семантика сплошная, а суть одна. Просто в authorization не передать ничего вовсе, а в condition что-то можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:26 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерЕсть мнение, что никакой разницы на уровне интерфейса нет и обсуждение подобных вопросов - сплошная казуистика. есть такая путаница смешения понятий Видимость и Видимость по безопасности). У меня критерий - бизнес логика. Это первое - видимость. Безопасность делаю чисто по авторизации и правам (слово - НЕЛЬЗЯ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:28 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерПросто в authorization не передать ничего вовсе, а в condition что-то можно. ещё не хватало туда передавать. Вы и в Видимость зря передаёте. По крайней мере оснований не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:30 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
регионы в апекс это стратегия Оракле). Которую вы игнорируете. В не подумайте, я обеими руками за стратегии Оракла! Но если элементы не объединяются в регион, то, боюсь, ничего тут не поделать. Задачу как-то надо решать. Пока вижу всё то же решение: передавать в condition название элемента и содержать три таблицы: группы элементов, пользователей и привилегий, объединяющих эти группы. В таком случае, заходя на страничку с клиентами, бухгалтерия увидит своё, дизайнеры свой, а продаваны - своё. И да, наверное можно налепить кучу страниц (или даже приложений)на каждый отдел, а потом все их содержать. Но это совсем уж за пределами добра и зла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:31 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
есть такая путаница смешения понятий Видимость и Видимость по безопасности). У меня критерий - бизнес логика. Это первое - видимость. Безопасность делаю чисто по авторизации и правам (слово - НЕЛЬЗЯ). Бухгалтеру нельзя удалять клиента, менеджеру можно. менеджеру нельзя видеть колонку дебиторки, бухгалтеру можно. Какая разница, безопасность это или видимость? Что решает данная терминология, если реализация в Апексе по сути отличается лишь семантически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:33 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Petro123ещё не хватало туда передавать. Вы и в Видимость зря передаёте. По крайней мере оснований не видно. Как же вы коллега решаете такие банальные задачи про менеджера и бухгалтера? Неужто без Condition (authorization)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:34 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерНо если элементы не объединяются в регион, то, боюсь, ничего тут не поделать Вам виднее. Значит они разбросаны аки горох на стене). Саша СплинтерПока вижу всё то же решение: передавать в condition название элемента и содержать три таблицы: группы элементов, пользователей и привилегий, объединяющих эти группы. Делайте. На первый взляд, не видя картинку) LOL это велосипед. Саша СплинтерВ таком случае, заходя на страничку с клиентами, бухгалтерия увидит своё, дизайнеры свой, а продаваны - своё. И да, наверное можно налепить кучу страниц (или даже приложений)на каждый отдел, а потом все их содержать. Но это совсем уж за пределами добра и зла. Конечно! Никаие регионы не помогают объединить АРМ уборщицы и АРМ бухгалтера. Тогда конечно, надо делать так: Код: sql 1. Удачи Вам! Работать всё равно будет. Тоже исходя из практики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:37 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерКак же вы коллега решаете такие банальные задачи про менеджера и бухгалтера? по ГОСТУ - проектируем АРМ(форму\окно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:40 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Хорошо поговорили, спасибо! Буду чаще сюда заходить! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:41 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Совсем забыл сказать, тут еще такое дело. Приложение-то облачное, клиентов сотня. И кому одно спрятать, куму другое показать... Здорово, наверное, спроектировать АРМ в количестве клиенты Х отделы и наслаждаться поддержкой этого всего. Наслаждение, доступное только программистам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:51 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерПриложение-то облачное, клиентов сотня. И кому одно спрятать, куму другое показать. не понял проблемы. Практически всегда выделяют РОЛИ, а не пользователей или клиентов. Поговорите с админом. Он всё знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:53 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
если вы про счета Петрова, то это просто фильтр. К видимости айтемса таблица не имеет отношения. Решается на уровне SQL Where. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 20:55 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша СплинтерAPEX_APPLICATION.GET_COMPONENT только для APEX 4. В 5.1 не проверял, в 5.0 работает: Код: plsql 1. 2. 3. 4. 5. 6. Для items возвращает название региона. Поэдие item name - не меняющийся идентификатор ( в отличии от прочих компонент), передать в функцию не должно быть большой проблемой. Если для read only, то ее можно всему региону назначить в свойствах региона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 21:29 |
|
||
|
Как идентифицировать Item внутри Condition PL/SQL?
|
|||
|---|---|---|---|
|
#18+
Саша Сплинтер>>Вот если бы решили не использовать механизм condition, тогда другой разговор. Кроме authorization и condition других штатных способах прятать элементы не слыхал. Причём по ходу тут семантика сплошная, а суть одна. Просто в authorization не передать ничего вовсе, а в condition что-то можно. Ну почему же нет. Есть полуштатные. Я просто приведу пример. Загружается страницы, по умолчанию все элементы данной страницы/всех страниц скрыты (не путать с запретом на рендер, именно скрыты). После загрузки страницы начинает работать DA (который можно расположить на нулевой страницы). DA будет выполнять запрос, который возвращающий список доступных элементов для данной страницы, текущему пользователю. Вот PL/SQL примерно так будет выглядеть, выделенная таблица, это твоя таблица с правами. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. А вот так будет выглядеть JS который обработает список. Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 09:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=50&tid=1874419]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 292ms |

| 0 / 0 |
