powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача значения только что измененного Item при редиректе
74 сообщений из 74, показаны все 3 страниц
Передача значения только что измененного Item при редиректе
    #39360231
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Что-то я потёк от простейшей операции :(

Имею P1, P2, P1_ID, P2_ID кнопку Redirect на P1
Кнопка вызывает
Код: html
1.
Action: Redirect to Page: 2; Set Items: P2_ID ~ &P1_ID; 



Если P1_ID заполнен по дефолту при Page Load - его значение передается P2_ID
Если заполняешь P1_ID "вручную" - нифига. Передаётся старое (дефолтное) значение :(
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360295
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльПривет!
Что-то я потёк от простейшей операции :(

Имею P1, P2, P1_ID, P2_ID кнопку Redirect на P1
Кнопка вызывает
Код: html
1.
Action: Redirect to Page: 2; Set Items: P2_ID ~ &P1_ID; 



Если P1_ID заполнен по дефолту при Page Load - его значение передается P2_ID
Если заполняешь P1_ID "вручную" - нифига. Передаётся старое (дефолтное) значение :(

Нехватает точки после &P1_ID
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360301
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,
Причина не в этом. Я пропустил её здесь - в реальном приложении она стоит на месте.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360316
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль, тогда мы что-то похожее разбирали в предыдущей теме , т.е. DA это тот же JS, т.о. значение элемента надо передать любым способом на сервер.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360381
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlruКурдль, тогда мы что-то похожее разбирали в предыдущей теме , т.е. DA это тот же JS, т.о. значение элемента надо передать любым способом на сервер.
+1
редирект это чисто клиентское решение по замене урл на другой адрес. и новый запрос на сервер.
Т.е. сервер и его переменные НИЧЕГО не знают, что клиент ушёл с текущей страницы.
Я всегда перехожу редиректом без изменения значений айтемсов. Т.к. это логично.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360415
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
И чего здесь логичного?!!
Как ты передаешь, например, из "списочной формы" "форме редактирования" ID записи, которую надо отредактировать? :)
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360453
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ чего здесь логичного?!!
==== слово "редирект". Без всякого апекса это - заменть руками урл в адресной.
Как ты передаешь, например, из "списочной формы" "форме редактирования" ID записи, которую надо отредактировать? :)

==== в конец урла дописываю :ID=123456. Например в SELECT
Потом при перемещении мышкой по этим картикам в табличке в статусной строке виден урл с этой добавкой

Это как вариант номер1
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360573
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, подскажите, каким образом вы изменяете значение P1_ID? Просто напомню, макроподстановка &P1_ID. в url для редиректа производится во время рендеринга страницы, и значения, переданные через DA/ajax вызовы url изменить никак не могут.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360580
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, подскажите, каким образом вы изменяете значение P1_ID? Просто напомню, макроподстановка &P1_ID. в url для редиректа производится во время рендеринга страницы, и значения, переданные через DA/ajax вызовы url изменить никак не могут.
Да вручную изменяю - прописываю в поле новое числовое значение. (В исходном варианте это был селект-лист).
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360582
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, подскажите, каким образом вы изменяете значение P1_ID?
Да он наверно уже решил вопрос.
Стоя на страничке 2, изменять айтемс странички 1 можно просто записав его в урл перехода.
При открытии стр-ки 2 первым делом будет установлено значение из урл.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360584
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123При открытии стр-ки 2 странички 1 первым делом будет установлено значение из урл.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360601
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Да нифига я не решил :(
Долбаные 2 странички. На 1-й ты забиваешь в P1_ID 'MALE' а на второй - ожидаешь, что выберутся все мужчины из списка select * from emp where sex = :P2_ID
Так вот, P2_ID не заполняется значением из P1_ID
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360631
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123,
Да нифига я не решил :(
Долбаные 2 странички. На 1-й ты забиваешь в P1_ID 'MALE' а на второй - ожидаешь, что выберутся все мужчины из списка select * from emp where sex = :P2_ID
Так вот, P2_ID не заполняется значением из P1_ID
ты выше читал решение что я предложил?
Молчишь как пратизан).
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360650
vlad6666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль....
Если P1_ID заполнен по дефолту при Page Load - его значение передается P2_ID
Если заполняешь P1_ID "вручную" - нифига. Передаётся старое (дефолтное) значение :(
А перед редиректом на вторую страницу переменная P1_ID сабмитится каким-либо образом на сервер?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360661
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlad6666Курдль....
Если P1_ID заполнен по дефолту при Page Load - его значение передается P2_ID
Если заполняешь P1_ID "вручную" - нифига. Передаётся старое (дефолтное) значение :(
А перед редиректом на вторую страницу переменная P1_ID сабмитится каким-либо образом на сервер?

Не сабмитится.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360666
vlad6666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте перед редиректом поставить действие "Execute PL/SQL code" (с кодом "null;"), и в нём указать в списке на Submit переменную P1_ID.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlad6666А перед редиректом на вторую страницу переменная P1_ID сабмитится каким-либо образом на сервер?
нафиг её сабмитить, если то же самое делается перед рендерингом и открытием (присвоение из урл)
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360677
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123нафиг её сабмитить, если то же самое делается перед рендерингом и открытием (присвоение из урл)
Да ты мою проблему понял?
Я не могу передать ИЗМЕНЕННОЕ значение, а не полученное из URL или по дефолту
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360685
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльДа ты мою проблему понял?

Как же тебя понять, если ты молчишь (c) худ.фильм

авторЯ не могу передать ИЗМЕНЕННОЕ значение, а не полученное из URL или по дефолту
Дак у тебя урл и кнопка - говори толком
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360696
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, как я написал выше, подстановка значения P1_ID осуществляется во время рендеринга, и в URL для перехода на другую страницу сразу подставлено значение P1_ID. Меняя значение элемента на странице, вы, без сабмита, никак не поменяете URL. Самый простой выход - переходите не редиректом, а бранчем.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360700
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Дак у тебя урл и кнопка - говори толком
Кнопка! В 1-м посте же написано.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360704
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одна ситуация:
1. Если Item P3_ID заполняется с помощью JavaScript, при submit и записи в БД, значение ID = Null. При этом оно нормально отображается на странице в этом поле.
2. Если Item P3_ID заполняется вручную, при submit и записи в БД, значение ID то, что записано в P3_ID
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360705
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123Дак у тебя урл и кнопка - говори толком
Кнопка! В 1-м посте же написано.
Тебе пишут выше:
- почему не сабмит по кнопке?
- как и кто изменяет значения перед нажатием кнопки?
Редирект не предполагает сохранение текущего на страничке!
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360708
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, вот прямо вот так вот делаете $s('P3_ID', 12345) и не работает?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360713
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Мы вообще говорим на разных языках :(
Какой submit?
Я назначаю кнопке action типа redirect и прописываю - куда какие параметры передать:
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360717
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, вот прямо вот так вот делаете $s('P3_ID', 12345) и не работает?
Теперь ради чистоты эксперимента убрал даже JavaScript и сделал DA типа SetValue; SetType=Dialog Retutn Item
Эффект - item получает значение (напр. 123) из вызываемой страницы и это корректно отображается на форме. А в DML поступает NULL. Если в том же поле поверх полученного из вызываемой формы значения 123 прописать вручную 123, то передается и корректно записывается в бд 123
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360723
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльМы вообще говорим на разных языках :(
конечно.
Не только я вам говорю. Но вы никого не слушаете:
non-apexoidСамый простой выход - переходите не редиректом, а бранчем.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360727
vlad6666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже, для того, чтобы передать при редиректе на другую страницу только что введённое значение переменной из текстового поля в виде &P1_ID., надо:
во-первых, сабмитить эту переменную;
во-вторых, рефрешить страницу, чтобы это просабмиченное значение легло в HTML-код страницы в явном виде.

Мне кажется, лучше просто делать :P2_ID=:P1_ID на стороне сервера.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360728
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКакой submit?
В 25-ый раз!
Редирект не сохраняет значения на сервер! (кроме тех что в урл)
Используйте сабмит+бранч вместо редиректа
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360756
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльКакой submit?
В 25-ый раз!
Редирект не сохраняет значения на сервер! (кроме тех что в урл)
Используйте сабмит+бранч вместо редиректа

Я не могу делать submit, т.к. вызывается модальная страница с промежуточными данными, а полные данные для submit будут заполнены только по результатам промежуточных.
Преждевременный submit не пройдет мимо валидации!
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360761
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
наконец то колоться начал).
КурдльЯ не могу делать submit, т.к. вызывается модальная страница с промежуточными данными, а полные данные для submit будут заполнены только по результатам промежуточных.
ты в курсе что оракл рекомендует при переходе по страницам сохранять переменные в сессию?
Т.е. это и есть сабмит.
Почему нельзя поправить валидацию?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360763
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльт.к. вызывается модальная страница
редирект у тебя это вызов модальной штатно в 5-ке?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360855
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты в курсе что оракл рекомендует при переходе по страницам сохранять переменные в сессию?
Т.е. это и есть сабмит.
Почему нельзя поправить валидацию?
Как я могу поменять валидацию? Не проверять поля на обязательность? А они - обязательные!
И многие из них заполняются вызовом модальных форм - "селекторов" (иначе нельзя выбрать элемент среди тысяч, не используя IR)

Petro123редирект у тебя это вызов модальной штатно в 5-ке?
Да. Это вызов чего угодно штатно. Модальную можно объявить немодальным диалогом или вообще Normal и будет вызываться, как обычная.

НО! Я нашел проблему второго случая (когда заполненное автоматически поле не попадало в запрос) - Поле было Disabled из DA.
Как я его сделал Enabled и попробовал ввести значение вручную - оно сработало. И с не_ручным заполнением тоже стало всё Ок!
И я ж одним ухом слышал про этот баг (фитчу) АРЕХа, но забыл :)
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360862
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Давай ты сам не будешь считать что аажно а что нет. Ведь вопрос у тебя а не у меня.
Вызов модального окна и простой уход со страницы 2 на стр. 1 редиректом разные вещи.
Поэтому за 2 страницы топика сформулируй проблему по новой.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39360925
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, ну понятно. Старая история. изучайте проблему
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361692
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как Item типа Select List сделать reasd only, но при этом избежать проблемы с передачей его значения?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361731
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКак Item типа Select List сделать reasd only, но при этом избежать проблемы с передачей его значения?
конкретнее нельзя? Без общего вопроса. Передавать можно 10тью вариантами.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361732
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
при рендеринге, т.е. на клиент он конечно идёт совсем в другом виде как виждет HTML
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361738
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот у меня на клиенте только чтение select list. Видно что там ID = 3523 есть.
Т.е. передаваться именно выбранное значение должно
Код: sql
1.
<input id="P21_SELECT_LIST" name="p_t06" value="3523" type="hidden">
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361804
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вот у меня на клиенте только чтение select list. Видно что там ID = 3523 есть.
Т.е. передаваться именно выбранное значение должно
Код: sql
1.
<input id="P21_SELECT_LIST" name="p_t06" value="3523" type="hidden">



И как он у тебя заполняется?
У меня - по DA Dialog Closed (APEX 5)
Значение индицируется, но не сабмитится.
В тырнете такую проблему обсуждали:

that's a feature of the browser which doesn't submit items which are disabled. For text items you can use the readonly property, but unfortunately that doesn't work for radio and checkboxes :-(

Думаю, что это справедливо и для Select List
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361830
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ как он у тебя заполняется?
только чтение как галка в свойствах айтемс - это галка работает ПЕРЕД рендерингом (выдачи странички с сервера).
Т.е. я её делаю в процессе Processes - After Header
:P_123 := 12345;
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361832
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльУ меня - по DA Dialog Closed (APEX 5)
странный ты. С сервера пришло Read Only - а ты в модальном диалоге его меняешь?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361848
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльУ меня - по DA Dialog Closed (APEX 5)
странный ты. С сервера пришло Read Only - а ты в модальном диалоге его меняешь?
Я не странный :) Это логика может показаться странной непосвященным.
Данный ITEM типа Select List в зависимости от условий может быть редактируемым или Disabled. В последнем случае его значение заполняется извне. Но тем не менее оно должно сабмититсья и процесситься.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361863
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ не странный :) Это логика может показаться странной непосвященным.
Данный ITEM типа Select List в зависимости от условий может быть редактируемым или Disabled. В последнем случае его значение заполняется извне. Но тем не менее оно должно сабмититсья и процесситься.
Давай проверим)).
Насколько знаю, при свойстве Read only = true. На клиент вообще не идут все значения списка. Только выбранный один пункт:
код=1234 values город = Москва
....
Так что непонятно, что ты там на клиенте менять собрался.
Или мы про разное свойство говорим?

КурдльSelect List в зависимости от условий может быть редактируемым или Disabled.
КурдльКак Item типа Select List сделать reasd only,
разберись, какое свойство ты хочешь.
Я говорил про
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361869
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльВ последнем случае его значение заполняется извне
нету такого в 4-ке. Наверно и в 5-ке нету.
Обычно разрешают менять и выпадающий список руками и кнопкой рядом (Popup) до сабмита. При сабмите галка идёт на сервер и возврат уже Read Only без всякого редактирования.
...
Ну, или делать рядом поле с числом для процессинга и поле с текстом для юзверя.
IMHO
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361907
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Я же говорил, что согласно логике, это поле управляется с помощью DA.
Например:
Events
--Change
----Is Selected Document (это уже контролируемый мною event)
------True
--------Enable -> Item - > Doc_Select_List
------False
--------Disable -> Item - > File_Select_List
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361928
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123,

Я же говорил, что согласно логике, это поле управляется с помощью DA.
Например:
Events
--Change
----Is Selected Document (это уже контролируемый мною event)
------True
--------Enable -> Item - > Doc_Select_List
------False
--------Disable -> Item - > File_Select_List
у меня немного другая парадигма. И кажется она лучше по безопасности.
- из DA только Показать\Спрятать
- после сабмита или AJAX(вроде должно работать) - Read Only как писал выше
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361935
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял, ты "нельзя сменить значение" устанавливаешь на клиенте в JS(DA).
А Read Only в айтемсе совсем не используешь.
Так?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361945
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Конкретно в этом - не использую.
Может быть ему как-то по-другому можно запретить ручное изменение значений?
установка атрибута readonly="readonly;" не помогает :(
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39361950
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
не знаю.
Мне кажется убирать видимость лучше решение для веб. Для десктопа - наоборот.
IMHO Удачи!
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412305
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, насколько в тему топика.
Просто к сведению - может кому пригодится.
Конструкция в скрипте APEX-а
Код: plsql
1.
   :P_12_ID := 12345; 


Эквивалентна
Код: plsql
1.
      wwv_flow.update_cache_with_write('P12_ID','12345') ; 


Поскольку функция update_cache_with_write ругается на несуществующие ITEM,
рекомендую использовать собственную процедуру в схеме текущего приложения
- с игнорированием exception

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE procedure FLOW_SET_ITEM( as_item_name varchar2, as_value varchar2) as
begin
  if as_item_name is not null Then 
     wwv_flow.update_cache_with_write(as_item_name, nvl(as_value,'') ) ; 
  end if ;    
exception when others then
  null ;  
end;
/

-- Grants for Procedure
GRANT EXECUTE ON FLOW_SET_ITEM TO PUBLIC
/
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412352
ZhV,

Если ругается, значит правильно делает, нельзя в коде обращаться к не созданным items, нефиг лишнюю черточку в название ставить. Следующим шагом, я так подозреваю, будет все запросы оборачивать в exception when others then null; типа а вдруг нету такой таблицы? Идея бредовая.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412407
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПодсказчыкZhV,

Если ругается, значит правильно делает, нельзя в коде обращаться к не созданным items, нефиг лишнюю черточку в название ставить. Следующим шагом, я так подозреваю, будет все запросы оборачивать в exception when others then null; типа а вдруг нету такой таблицы? Идея бредовая.

Это нужно для унификации/типизации ввода в анонимных блок-скриптах на различных PAGE
Вместо того чтобы на каждой из похожих страниц писать десятки строк вида
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 ... 
        Select   
               ...
               t.FIELD15 ,
               t.FIELD16 ,
                  ...
         into 
          ..
             :P12_FIELD15, 
             :P12_FIELD16, 
          ... 
     FROM  bigtable t 
     WHERE t.id = :P12_ID ;  
... 



Написать в 4 строки абсолютно одинаковые конструкции для всех страниц ввода данных
Код: plsql
1.
2.
3.
4.
5.
6.
7.
...

    w_xml := Utilz.GenXmlOneRecord('bigtable',  v('P'||:APP_PAGE_ID||'_ID') ;
   for ii in arr_fields.first.. arr_fields.last Loop 
       FLOW_SET_ITEM('P'||:APP_PAGE_ID||'_'||arr_fields(jj), Utilz.XMLGetStr(w_xml,arr_fields(jj)) ;  
   end loop ; 
...


А для проверки существования item можно ( и иногда нужно) делать в отдельном блоке пре-валидации.
Так чтобы ошибки валидации можно было бы положить в лог и, главное - юзер увидел бы нормальное оформленное
сообщение об ошибке в region #GLOBAL_NOTIFICATION# , а не страндартное окно типа "полный крэш" с непонятным ему текстом.
Два-три таких крэш-окна за один сенас работы - и у юзера будет полное основание сказать что ваше приложение полное г.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412413
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVВместо того чтобы на каждой из похожих страниц писать десятки строк вида
сначала разберитесь, почему у вас "похожие страницы".
Тогда и велосипеды возможно не пригодятся.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412431
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ZhVВместо того чтобы на каждой из похожих страниц писать десятки строк вида
сначала разберитесь, почему у вас "похожие страницы".
Тогда и велосипеды возможно не пригодятся.
Видите ли... Если бы я ответил так своему заказчику....
Есть общее понятие и соответственно "PAGE" "Договоры".
Но есть куча вариаций - поставка, аренда, подряд, субподряд ...
Почти половина реквизитов одинаковы - как правило контрагент.
Но есть куча специфических реквизитов по каждому виду - и поэтому естественно - отдельная страница для просмотра и ввода.

Попробуйте мне предложить вариант - обойтись одной страницей - внимательно выслушаю.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412439
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhV,

Для установки значений динамически см. apex_util.set_session_state.
Для красивых сообщений об ошибках см. error handler function.
Для проверки существования см. apex_application_page_items и apex_application_items.

Для того чтобы исправить ошибки в приложении и не было таких ощибок, см.
Код: plsql
1.
2.
select * from apex_workspace_activity_log
where error_message like ...


- лучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412488
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVПопробуйте мне предложить вариант - обойтись одной страницей - внимательно выслушаю.
не будьте максималистом. Никто про одну страницу не говорит.
Вариант:
- общий список - журнал - ОДНА страница с колонкой Тип документа
- все остальные страницы как Карточка товара\Карточка аренды и т.д. разумеется индивидуальны.
А вы как хотели?
ООП в апексе делать?
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412492
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVПочти половина реквизитов одинаковы - как правило контрагент.
вижу только один атрибут одинаковый.
Смешно.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412493
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevлучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо.
+1
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412501
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevZhV,

Для установки значений динамически см. apex_util.set_session_state.
Для красивых сообщений об ошибках см. error handler function.
Для проверки существования см. apex_application_page_items и apex_application_items.

Для того чтобы исправить ошибки в приложении и не было таких ощибок, см.
Код: plsql
1.
  select * from apex_workspace_activity_log where error_message like ... 


- лучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо.

Ну что ж, про apex_util.set_session_state - я не знал.
Может быть потому что этот пакет реально лежит в схеме SYS и называется htmldb_util.
В любом случае - спасибо. Век живи...

Я просто потратил время на исследование пакета wwv_flow в схеме APEX-а - там в принципе много чего интересного.
Попробовал - вроде бы работает одинаково. Если будет время - попробовать все-таки найти различия.
ИМХО, в схеме APEX0000 все таки есть привязка к версии - это может быть существенно.

Но что ж вы раньше то молчали - а то народ уже JavaScript юзает.

Проверки существование - это сообщите коллеге "Подсказчык"

Насчет логов... В данном случае я рассуждал в рамках конкретного проекта.
90% логики приложения сделано в пакетах, которые вообще не знают про сущестование APEX.
Просто потому что до недавних пор приложение существовало только в виде Delfi/Desktop приложения.
Постепенно часть функционала переносится в APEX. Надеюсь, когда-нибудь все перенесем.

В этих пакетах есть необходимость, давно существует и надежно работает своя собственная
система логов. Причем отдельно - "нормальные" события и ошибки.
Было бы странно создавать какую-то новую систему логов.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVНу что ж, про apex_util.set_session_state - я не знал.
это вроде первое что тут знают.
Если исключить пустой DA для установки значения в сессию на сервере.
...
ZhVЯ просто потратил время на исследование пакета wwv_flow в схеме APEX-а - там в принципе много чего интересного.
Просто вы сразу полезли в ядро апекса и его хранимки.
Удачи!
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412532
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123не будьте максималистом. Никто про одну страницу не говорит.
Вариант:
- общий список - журнал - ОДНА страница с колонкой Тип документа
- все остальные страницы как Карточка товара\Карточка аренды и т.д. разумеется индивидуальны.
А вы как хотели?
ООП в апексе делать?

Вы сами себе противоречите ? полчаса назад
Petro123 "сначала разберитесь, почему у вас "похожие страницы".

Это не я максималист - а заказчик. Вы когда-нибудь видели договоры аренды и субподряда в бумажном виде?
Общее там только - "подвал" с реквизитами договаривающихся сторон.

Насчет ООП... Why not?
При остутствии константных привязок к переменным страницы типа (:P12_ID := ...)
простое копирование страницы на 80% корректно переносит функционал отображения данных.
- под каждый вид договора существует собственная view - в пре-поцессорном PL/SQL блоке
задается другое имя view
- добавляются нужные поля, удаляются ненужные
- все это визуально компонуется на region-ах
- немного меняется код на Submit-е
- ну еще иногда менются списки операций на sidebar-е

Вот чем и замечателен APEX. Я неважно знаком с JavaScript-ми заморочками - но почти все что нужно, я делаю
в пакетах или анонимных блоках - то есть не выходя из PL/SQL. Ну кое-какие нюансы вносит Java-спец - я учусь у него.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
ZhVВы когда-нибудь видели договоры аренды и субподряда в бумажном виде?
нет. Покажите.
ZhVОбщее там только - "подвал" с реквизитами договаривающихся сторон.
Если только чтение, то подвал можно сделать одинаковым в смысле кода. На все страницы.
Т.е. так и выходит? Что делаем страницу Договор Аренда и Договор Субподряда как отдельные страницы.
Так?
Тогда это будет ТЗ уже разжёванное для программиста.
А дальше читаем что там у вас мешает такому ТЗ.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412551
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVПри остутствии константных привязок к переменным страницы типа (:P12_ID := ...)
простое копирование страницы на 80% корректно переносит функционал отображения данных.
да. На каждой странице со своим ID будет свой номер автоматом. Некоторый минимум надо подправить.

ZhVпод каждый вид договора существует собственная view - в пре-поцессорном PL/SQL блоке
задается другое имя view
- добавляются нужные поля, удаляются ненужные
- все это визуально компонуется на region-ах
- немного меняется код на Submit-е
- ну еще иногда менются списки операций на sidebar-е
да!
При наличии БЛ уже готовой будет 1 страничка в день.
Итого что вас там испугало? Это обычная работа программиста.
...
Удачи!
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412558
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhV,

Я полагаю версия apex не очень древняя (многое было и в древних версиях).

Про создать свою систему логов речи не идёт.
На уровне приложения можно определить error handler function, которая может обрабатывать определенные виды ошибок, относящиеся к apex и выдавать дружелюбные сообщения (это полезно в том числе и при выводе ошибок с unique constraint), чтобы пользователи не видели ora-xxxxxx кусок, в тех случаях, когда речь идёт про уже обработанные исключения. В пакетах можно не все apex ошибки обработать и не всегда это удобно, этот инструмент не заменяет обработку в пакетах, скорее дополняет. В апексе так же по умолчанию хранятся логи активности за 2 недели, в том числе и ошибки, которые выдаёт apex приложение.

По тому в какой схеме хранится apex_util, физически - это схема apex_xxxxxx, но рекоммендуется обращаться через синоним apex_util, как описано в документации API Reference, при этом не нужно знать, что и в какой схеме хранится. Тут как раз используется документированное апи.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412562
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVВот чем и замечателен APEX. Я неважно знаком с JavaScript-ми заморочками - но почти все что нужно, я делаю
в пакетах или анонимных блоках - то есть не выходя из PL/SQL. Ну кое-какие нюансы вносит Java-спец - я учусь у него.
не туда пошёл.
- Изучи волшебники апекс и построители-генераторы
- Изучи декларативные способы
- Изучи API и динамику в DA
Только после этого лезь в хранимки\JS\Java\AJAX
IMHO
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412565
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevВ пакетах можно не все apex ошибки обработать и не всегда это удобно
либо я сам выбрасываю наверх Raize и показываю уже страничке.
SvDevВ апексе так же по умолчанию хранятся логи активности за 2 недели
+1
перебрасываю в свою таблу чтобы не стёрлось
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412594
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123При наличии БЛ уже готовой будет 1 страничка в день.
Итого что вас там испугало? Это обычная работа программиста.
...
Удачи!
Ну дык я об чем.
Во только я программист Oracle а не front-end разработчик.
И моя основная работа - после Submit не просто commit как в учебных примерах,
а должна быть вызвана правильная процедура из правильного пакета, которая
правильно проанализирует и обработает внесенные данные или их изменение -
все распишет по нужным таблицам и запишет в логи нужные сообщения.
И вот тут бывает 1 дня не хватает.

Уж не обессудьте насчет высказывания
Petro123 не туда пошёл.
Я уж как нибудь сам решу - куда идти.

SvDevZhV,
В пакетах можно не все apex ошибки обработать и не всегда это удобно...

В моем случае я очень хорошего мнения о предшественниках-делфистах, которые лет 15 назад
заложились на размещение бизнес-логики в базе (80-90%), а не на своих формах.
И я намерен продолжить этот тренд - все что можно перенести в обработки Oraclе (как правило пакеты, реже - анонимные хранимые блоки PL/SQL) - надо туда пененосить.

После APEX-а может быть что-то еще... А Oracle вечен.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412624
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVпосле Submit не просто commit как в учебных примерах,
а должна быть вызвана правильная процедура из правильного пакета, которая
правильно проанализирует и обработает внесенные данные или их изменение -
все распишет по нужным таблицам и запишет в логи нужные сообщения.
И вот тут бывает 1 дня не хватает.
можно и хранимки. Тогда у вас перестают работать автоматические процессы от Оракле.
У меня тоже хранимки(. Приходится вносить в них 20 параметров от 20 ITEMS.
А бизнес логика отдельный вопрос.
ZhVВ моем случае я очень хорошего мнения о предшественниках-делфистах, которые лет 15 назад
заложились на размещение бизнес-логики в базе (80-90%), а не на своих формах.
у меня тоже так. Но есть и простые справочники без хранимок.
БЛ в базе это хороший тон и на Delphi.
Пока не увидел у вас ничего сложного.
У меня тоже хранимки.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412626
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhV,
всё дело в транзакциях. Они короткие - на 0,1 сек. И не желательно передавать в хранимку контекст. Т.е. имена ITEMS.
Это на любом ЯП так.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412711
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123У меня тоже хранимки(. Приходится вносить в них 20 параметров от 20 ITEMS....


Совет с моей стороны - осваивайте XML как универсальный способ внутри- и меж- системного обмена любыми обьектами.
Сможете начать работать с такими полезными и востребованными вещами как SOAP, REST... даже СМЭВ и сервисы ФНС :)
По аналогии с предыдущим моим примером
Код: plsql
1.
2.
3.
4.
5.
6.
7.
   s_xml := '<ROWSET WTABLE="DOGOVOR_PODRYADA_VIEW" WACTION="UPDATE" > <ROW>'||CHR(10) ; 
   for jj  in arr_fields.first.. arr_fields.last Loop 
       s_xml := s_xml || '<'||arr_fields(jj)||'>'||NVL(v(arr_fields(jj),' ')||
                '</'||arr_fields(jj)||'>'||CHR(10) ;
   end loop ;
   s_xml := s_xml||'</ROW> </ROWSET>'  ; 
   Main_PKG.TODO(s_xml) ;  


Вход в обработчик универсален - только один параметр в виде XML.
Старинные грабли , когда необходимость в добавлении еще одного параметра в вызов процедуры - страшный геморрой,
так как происходит крэш из-за того что обьект Oracle не готов принять новую лишнюю переменную. А если добавить - то полетит
работа текущего штатного приложения.

Простейшая операция - XMLType(input_xml) - и вы получите и название VIEW/TABLE и вид операции, и все введенные поля-параметры, сколько бы их ни было. Кстати, когда то один коллега наступил на грабли - Oracle 9 терпел не более 256 параметров. Счас не знаю - мне никогда бы не хватили фантазии на больше пары десятков.
Если не хватит 2000 символов - сделайте копию TODO2 с входным CLOB параметром.
Но помните, что вызов с использованием CLOB не будет работать по dblink.
А дальше Main_pkg уже вызовет профильный пакет для окончательной обработки в рамках бизнес-логики.

В XML очень удобно находить различие между введенными значениями и текущими. XML-курсор по динамическому Select-у с заданным id и по входному XML - пишется только один раз и используется для любых таблиц. Позиция конкретного поля (1-я в диалоге и 10-я в таблице или view) - абсолютно неважно, но принципиально важна одноименность .
И естественно - именно изменения пишутся в лог.
Еще удобство - при каких-то тяжких и неуловимых багах - включить режим fullscale-log на входные параметры - кидать входные XML в большой CLOB-лог. Можно подловить - на каких входных данных проходят баги.

На всякий случай - при работе с dblink или другими внешними системами - нужно следить за кодировками XML.
Если что - нужен заголовок XML с явным указанием encoding.

В последнее время пристрастился юзать анонимные блоки PL/SQL.
Особенно если речь идет о "траспорте наружу" или "отчетниках" - параметры как таковые не используются внутри пакета, а просто ретранслируются на внешние обработчики. При этом PL/SQL блок можно править "на ходу" в любое время
- инвалидирования пакетов (и вопли юзеров - "все сломалось") из-за изменения количества параметров и каких-то простейших дополнений в код не будет.

На этом все, наверное. До связи :)
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412826
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhV,
Все это замечательно, только у меня это уже java а не апекс.
Каждой задаче своя платформа.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412844
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

У меня есть опыт в back-end для .Net/ASP приложений - там без XML вообще никак.
Когда как следует врубишься в XML - какая разница, на какой платформе его юзать.
Тем более в Oracle очень много средств под него.

Вообще, выскажу может быть крамольную мысль для данного форума.
APEX - это конструктор web-приложений для PL/SQL программистов.
Все мои знакомые "реальные" java-программисты либо не знают либо очень спокойны к APEX - он им не нужен совсем.
APEX не конкурент огромному зверинцу java фрэймворков и платформ. Даже чисто визуально по-юзерски - странички на JBOSS например рендерятся заметно резвее APEX . Ну а среда разработки APEX - хоть и красиво местами, но тормоз страшный. А писать код в черно-белых диалоговых html-окошках - вообще удовольствие небольшое.

Когда-то я интенсивно рубился на Powebuilder - немного знакомился с совсем редкой нишевой web-платформой от Sybase - Appeon. Интересные идеи, но кому они нужны при гегемонии java.
...
Рейтинг: 0 / 0
Передача значения только что измененного Item при редиректе
    #39412856
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVУ меня есть опыт в back-end для .Net
ну дак, тем более.
Net - это уже ЯП высокого уровня. Всё верно.
ZhVВообще, выскажу может быть крамольную мысль для данного форума.
умные поймут. А остальным пофиг.
ZhVAPEX - это конструктор web-приложений для PL/SQL программистов.
+5
Для тех кто не писал на ином веб приложений. Т.е. ОЧЕНЬ ХОРОШ для своей ниши.
ZhVсреда разработки APEX - хоть и красиво местами, но тормоз страшный.
тормоза не заметил. заетил интерфейс и урл специфичный (грубый-большой).
ZhVКогда-то я интенсивно рубился на Powebuilder
это десктоп.
А в веб только Net\PHP\Java - увы)) LOL
Даже MS с его сильверлайт обломился.
...
Рейтинг: 0 / 0
74 сообщений из 74, показаны все 3 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача значения только что измененного Item при редиректе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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