powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как идентифицировать Item внутри Condition PL/SQL?
25 сообщений из 32, страница 1 из 2
Как идентифицировать Item внутри Condition PL/SQL?
    #39418410
Братцы, как знаете не хуже меня, есть такое v('ITEM_NAME') внутри вызываемого на странице PL/SQL, благодаря чему всегда понятно, на какой странице и в каком приложении работает конкретный код или каково значение Item на странице.
А вот есть ли у вас мысли, как организовать подобное понимание конкретно в Condition? Ведь у каждого item имеется уникальный код... Можно ли его получить в Condition?
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39418429
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша Сплинтер,
Приведи пример. Я лично не понял.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39418573
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саша СплинтерБратцы, как знаете не хуже меня, есть такое v('ITEM_NAME') внутри вызываемого на странице PL/SQL, благодаря чему всегда понятно, на какой странице и в каком приложении работает конкретный код или каково значение Item на странице.
А вот есть ли у вас мысли, как организовать подобное понимание конкретно в Condition? Ведь у каждого item имеется уникальный код... Можно ли его получить в Condition?

Памятка задающим вопросы
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419216
Друзья, все ваши упрёки справедливы. Но должен заметить, что форумов, где нет возможности откорректировать своё собственное сообщение после постинга на форуме в Сети ещё поискать... Однако sql.ru мы любим не за это.

Итак, уточняю свой вопрос. Любой элемент в APEX имеет настройку Condition, суть которой в том, рендерить или нет данный элемент. В том случае, если тип этого Condition представляет из себя PL/SQL, возникает желание внутри этого кода установить "координаты" вызова данного кода, а именно, приложение, страницу и некий идентификатор, или имя хотя бы элемента, откуда код вызван при рендеренге. Что касается номера приложения и страницы, тут всё просто v('APP_ID') и v('APP_PAGE_ID'), а вот с элементом что-то никак...
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419307
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерСети ещё поискать..
это так)

Саша СплинтерВ том случае, если тип этого Condition представляет из себя PL/SQL, возникает желание внутри этого кода установить "координаты" вызова данного кода, а именно, приложение, страницу и некий идентификатор, или имя хотя бы элемента, откуда код вызван при рендеренге.
зачем?
В общем случае не надо делать привязку! Сильные связи считаются Г...кодом. Слабые связи считаются OK кодом.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419324
Ну что же, представим себе интерфейс, пользователи которого разбиты по ролям.
Каждой роли должны быть недоступны некоторые группы элементов (кнопки, поля редактирования, закладки и так далее) общего интерфейса.

Возникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER.

Что можно сказать о группе элемента? Ничего, если PL/SQL не знает, как его идентифицировать.
Не знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419329
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша Сплинтер,

Функция не документирована, но можете попробовать: APEX_APPLICATION.GET_COMPONENT
Я в некоторых ситуациях использую её. Внутри items не пробовал.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419375
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерВозникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER.
ещё подробнее и ПРИВЕДИТЕ ПРИМЕР странички.
Т.к. я против без достаточных оснований мешать видимость (Condition) и безопасность (SECURITY).
Первая это БЛ - бизнес логика. Вторая это безопасность.
Оракл их разнёс по разным полям.
Кроме того
Саша СплинтерВозникает желание объединить с одной стороны элементы интерфейса в группы
это вообще третий случай, т.к. чисто визуально есть средство - регион. Он прекрасно работает и объединяет.
...
Итого может вы ошиблись?
От неопытности? Не делали систем?
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419376
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша Сплинтер,
Когда программист слишком многое придумывает, возможно он не сформулировал USE CASE? По ГОСТ'у?
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша Сплинтерс другой пользователей в группы
пользователей в группы я объединяю на основе наследования ролей оракла.
Т.е. роль в оракле админ автоматом наследует роли всех дочек.
Очень простая и лаконичная схема авторизации от Оракле.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове
слабая связь, это когда в пакеты оракла не передавать ничего с двумя точками. Никаких айтемсов и переменных апекса.
Но я понимаю, что это идеал и идеала в жизни не бывает)). Сам нарушал)).
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419382
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове
слабая связь, это когда в пакеты оракла не передавать ничего с двумя точками. Никаких айтемсов и переменных апекса.
Но я понимаю, что это идеал и идеала в жизни не бывает)). Сам нарушал)).
упс. Поправлюсь.
В коде пакета не должно быть переменных с двоеточиями (контекста). А во входных параметрах в обычных типах IN Parameters передавай что угодно.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419471
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саша СплинтерНу что же, представим себе интерфейс, пользователи которого разбиты по ролям.
Каждой роли должны быть недоступны некоторые группы элементов (кнопки, поля редактирования, закладки и так далее) общего интерфейса.

Возникает желание объединить с одной стороны элементы интерфейса в группы, с другой пользователей в группы и сопоставить их друг другу в третьей табличке на предмет наличия запрета. После чего разместить вызов PL/SQL в Condition. Этот код без труда установит группу пользователя по идентификатору пользователя, хранящемуся в APP_USER.

Что можно сказать о группе элемента? Ничего, если PL/SQL не знает, как его идентифицировать.
Не знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень.


Для условия видимости или не видимости используем привилегии.
Привилегии назначены ролям.
При логоне все привилегии записываются в Кэш таблицу.
Одна привилегия - Один/Много элементов. При рендеринге страницы, система проверяет наличие данной привилегии в кеш таблицы для данного пользователя.

Использование кеш таблицы обусловлено иерархической структурой ролей, и линейный запрос из кеш таблицы, в разы быстрее иерархического запроса.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419486
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень.
А вообще пораскинув, я нашел вам решение :)
#CURRENT_ITEM_NAME#
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39419490
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangelСаша СплинтерНе знаю, слабая это связь или сильная, но пока мне ничего не пришло в голову кроме как передавать в этом вызове строку названия элемента, совпадающего с его именем. Выглядит не очень.
А вообще пораскинув, я нашел вам решение :)
#CURRENT_ITEM_NAME#

Но с другой стороны, я не вижу ничего плохо, в передачи названия элемента, все равно же условие писать.
Вот если бы решили не использовать механизм condition, тогда другой разговор.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420279
Друзья, очень благодарен вам за ваши размышления! sql.ru это просто сборище маньяков-профи! Даже и не думайте взломать мой смартфон при помощи вашего SQL!

#CURRENT_ITEM_NAME# это вообще откровение какое-то! Жаль, что не работает ((( APEX_APPLICATION.GET_COMPONENT только для APEX 4.

Спешу сообщить, что конечно речь идёт об ограничении функциональности и разграничениях компетенций. Хотя поди различи, что тут авторизация, а что просто ограничение функциональности, когда кнопку спрятали, а за кнопкой - запуск ракеты. Есть мнение, что никакой разницы на уровне интерфейса нет и обсуждение подобных вопросов - сплошная казуистика.

Предложение работать с регионами вызывает уважение. Однако группы элементов представляют из себя подчас поля, кнопки и закладки, так что регионы - лишь красивая утопия.

Поскольку речь идёт об аутентификации внутри веб-приложения, до оракла здесь как-то дотягиваться желания особого не возникает. Це ж апекс, зачем тут Оракл? APEX_PUBLIC_USER и все дела )))
Поясните, может я не понял мысль? Вы используете аутентификацию пользователей оракл для целей работы с апекс-приложением? То есть на сто клиентов набегает тысяча пользователей и всех вы их в Оракле заводите?

Кэш таблица имеется в виду опция CACHE для CREATE TABLE? Круто!

>>Когда программист слишком многое придумывает, возможно он не
>>сформулировал USE CASE? По ГОСТ'у?

В вашей терминологии я вряд ли являюсь программистом. Так, самоучка со стажем, вряд ли более.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420291
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерОднако группы элементов представляют из себя подчас поля, кнопки и закладки, так что регионы - лишь красивая утопия.
переведи.
Т.е. вы сами не использовали регионы, а делали без них?
Закладка это вкладка?
Приводите скрины, ведь мы о ГУИ и визале говорим. А не о характерах и писателях.
...
Саша СплинтерПоясните, может я не понял мысль? Вы используете аутентификацию пользователей оракл для целей работы с апекс-приложением? То есть на сто клиентов набегает тысяча пользователей и всех вы их в Оракле заводите?
я использую оба варианта.
И вариант никак не зависит от 1000юзверей. Ораклу пофигу и 10000. Спросите у ораклоидов.
В первом варианте у меня оракл и его дерево. Во втором варианте своё дерево пользователей в табличках.
В чём проблема? Главное принцип - наследования ролей)).
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420292
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша Сплинтеррегионы - лишь красивая утопия
регионы в апекс это стратегия Оракле).
Которую вы игнорируете.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420293
>>Вот если бы решили не использовать механизм condition, тогда другой разговор.

Кроме authorization и condition других штатных способах прятать элементы не слыхал. Причём по ходу тут семантика сплошная, а суть одна. Просто в authorization не передать ничего вовсе, а в condition что-то можно.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420294
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерЕсть мнение, что никакой разницы на уровне интерфейса нет и обсуждение подобных вопросов - сплошная казуистика.
есть такая путаница смешения понятий Видимость и Видимость по безопасности).
У меня критерий - бизнес логика. Это первое - видимость.
Безопасность делаю чисто по авторизации и правам (слово - НЕЛЬЗЯ).
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420296
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерПросто в authorization не передать ничего вовсе, а в condition что-то можно.
ещё не хватало туда передавать.
Вы и в Видимость зря передаёте.
По крайней мере оснований не видно.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420297
регионы в апекс это стратегия Оракле). Которую вы игнорируете.

В не подумайте, я обеими руками за стратегии Оракла! Но если элементы не объединяются в регион, то, боюсь, ничего тут не поделать. Задачу как-то надо решать.

Пока вижу всё то же решение: передавать в condition название элемента и содержать три таблицы: группы элементов, пользователей и привилегий, объединяющих эти группы.

В таком случае, заходя на страничку с клиентами, бухгалтерия увидит своё, дизайнеры свой, а продаваны - своё. И да, наверное можно налепить кучу страниц (или даже приложений)на каждый отдел, а потом все их содержать. Но это совсем уж за пределами добра и зла.
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420299
есть такая путаница смешения понятий Видимость и Видимость по безопасности).
У меня критерий - бизнес логика. Это первое - видимость.
Безопасность делаю чисто по авторизации и правам (слово - НЕЛЬЗЯ).

Бухгалтеру нельзя удалять клиента, менеджеру можно.
менеджеру нельзя видеть колонку дебиторки, бухгалтеру можно.

Какая разница, безопасность это или видимость? Что решает данная терминология, если реализация в Апексе по сути отличается лишь семантически?
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420300
Petro123ещё не хватало туда передавать.
Вы и в Видимость зря передаёте.
По крайней мере оснований не видно.

Как же вы коллега решаете такие банальные задачи про менеджера и бухгалтера? Неужто без Condition (authorization)?
...
Рейтинг: 0 / 0
Как идентифицировать Item внутри Condition PL/SQL?
    #39420305
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша СплинтерНо если элементы не объединяются в регион, то, боюсь, ничего тут не поделать
Вам виднее. Значит они разбросаны аки горох на стене).
Саша СплинтерПока вижу всё то же решение: передавать в condition название элемента и содержать три таблицы: группы элементов, пользователей и привилегий, объединяющих эти группы.
Делайте.
На первый взляд, не видя картинку) LOL это велосипед.
Саша СплинтерВ таком случае, заходя на страничку с клиентами, бухгалтерия увидит своё, дизайнеры свой, а продаваны - своё. И да, наверное можно налепить кучу страниц (или даже приложений)на каждый отдел, а потом все их содержать. Но это совсем уж за пределами добра и зла.
Конечно! Никаие регионы не помогают объединить АРМ уборщицы и АРМ бухгалтера.
Тогда конечно, надо делать так:
Код: sql
1.
Пакет.ДайВидимость("АРМ_буха"\"АРМ_уборщик");


Удачи Вам!
Работать всё равно будет. Тоже исходя из практики.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как идентифицировать Item внутри Condition PL/SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]