Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
Не знаю, насколько в тему топика. Просто к сведению - может кому пригодится. Конструкция в скрипте APEX-а Код: plsql 1. Эквивалентна Код: plsql 1. Поскольку функция update_cache_with_write ругается на несуществующие ITEM, рекомендую использовать собственную процедуру в схеме текущего приложения - с игнорированием exception Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 12:26 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhV, Если ругается, значит правильно делает, нельзя в коде обращаться к не созданным items, нефиг лишнюю черточку в название ставить. Следующим шагом, я так подозреваю, будет все запросы оборачивать в exception when others then null; типа а вдруг нету такой таблицы? Идея бредовая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 13:07 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ПодсказчыкZhV, Если ругается, значит правильно делает, нельзя в коде обращаться к не созданным items, нефиг лишнюю черточку в название ставить. Следующим шагом, я так подозреваю, будет все запросы оборачивать в exception when others then null; типа а вдруг нету такой таблицы? Идея бредовая. Это нужно для унификации/типизации ввода в анонимных блок-скриптах на различных PAGE Вместо того чтобы на каждой из похожих страниц писать десятки строк вида Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Написать в 4 строки абсолютно одинаковые конструкции для всех страниц ввода данных Код: plsql 1. 2. 3. 4. 5. 6. 7. А для проверки существования item можно ( и иногда нужно) делать в отдельном блоке пре-валидации. Так чтобы ошибки валидации можно было бы положить в лог и, главное - юзер увидел бы нормальное оформленное сообщение об ошибке в region #GLOBAL_NOTIFICATION# , а не страндартное окно типа "полный крэш" с непонятным ему текстом. Два-три таких крэш-окна за один сенас работы - и у юзера будет полное основание сказать что ваше приложение полное г. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 13:53 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVВместо того чтобы на каждой из похожих страниц писать десятки строк вида сначала разберитесь, почему у вас "похожие страницы". Тогда и велосипеды возможно не пригодятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 13:57 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
Petro123ZhVВместо того чтобы на каждой из похожих страниц писать десятки строк вида сначала разберитесь, почему у вас "похожие страницы". Тогда и велосипеды возможно не пригодятся. Видите ли... Если бы я ответил так своему заказчику.... Есть общее понятие и соответственно "PAGE" "Договоры". Но есть куча вариаций - поставка, аренда, подряд, субподряд ... Почти половина реквизитов одинаковы - как правило контрагент. Но есть куча специфических реквизитов по каждому виду - и поэтому естественно - отдельная страница для просмотра и ввода. Попробуйте мне предложить вариант - обойтись одной страницей - внимательно выслушаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 14:09 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhV, Для установки значений динамически см. apex_util.set_session_state. Для красивых сообщений об ошибках см. error handler function. Для проверки существования см. apex_application_page_items и apex_application_items. Для того чтобы исправить ошибки в приложении и не было таких ощибок, см. Код: plsql 1. 2. - лучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 14:21 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVПопробуйте мне предложить вариант - обойтись одной страницей - внимательно выслушаю. не будьте максималистом. Никто про одну страницу не говорит. Вариант: - общий список - журнал - ОДНА страница с колонкой Тип документа - все остальные страницы как Карточка товара\Карточка аренды и т.д. разумеется индивидуальны. А вы как хотели? ООП в апексе делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 14:58 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVПочти половина реквизитов одинаковы - как правило контрагент. вижу только один атрибут одинаковый. Смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:00 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
SvDevлучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:01 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
SvDevZhV, Для установки значений динамически см. apex_util.set_session_state. Для красивых сообщений об ошибках см. error handler function. Для проверки существования см. apex_application_page_items и apex_application_items. Для того чтобы исправить ошибки в приложении и не было таких ощибок, см. Код: plsql 1. - лучше один раз найти такие ошибки и исправить, чем стрелять себе в ногу. имхо. Ну что ж, про apex_util.set_session_state - я не знал. Может быть потому что этот пакет реально лежит в схеме SYS и называется htmldb_util. В любом случае - спасибо. Век живи... Я просто потратил время на исследование пакета wwv_flow в схеме APEX-а - там в принципе много чего интересного. Попробовал - вроде бы работает одинаково. Если будет время - попробовать все-таки найти различия. ИМХО, в схеме APEX0000 все таки есть привязка к версии - это может быть существенно. Но что ж вы раньше то молчали - а то народ уже JavaScript юзает. Проверки существование - это сообщите коллеге "Подсказчык" Насчет логов... В данном случае я рассуждал в рамках конкретного проекта. 90% логики приложения сделано в пакетах, которые вообще не знают про сущестование APEX. Просто потому что до недавних пор приложение существовало только в виде Delfi/Desktop приложения. Постепенно часть функционала переносится в APEX. Надеюсь, когда-нибудь все перенесем. В этих пакетах есть необходимость, давно существует и надежно работает своя собственная система логов. Причем отдельно - "нормальные" события и ошибки. Было бы странно создавать какую-то новую систему логов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:09 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVНу что ж, про apex_util.set_session_state - я не знал. это вроде первое что тут знают. Если исключить пустой DA для установки значения в сессию на сервере. ... ZhVЯ просто потратил время на исследование пакета wwv_flow в схеме APEX-а - там в принципе много чего интересного. Просто вы сразу полезли в ядро апекса и его хранимки. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:29 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
Petro123не будьте максималистом. Никто про одну страницу не говорит. Вариант: - общий список - журнал - ОДНА страница с колонкой Тип документа - все остальные страницы как Карточка товара\Карточка аренды и т.д. разумеется индивидуальны. А вы как хотели? ООП в апексе делать? Вы сами себе противоречите ? полчаса назад Petro123 "сначала разберитесь, почему у вас "похожие страницы". Это не я максималист - а заказчик. Вы когда-нибудь видели договоры аренды и субподряда в бумажном виде? Общее там только - "подвал" с реквизитами договаривающихся сторон. Насчет ООП... Why not? При остутствии константных привязок к переменным страницы типа (:P12_ID := ...) простое копирование страницы на 80% корректно переносит функционал отображения данных. - под каждый вид договора существует собственная view - в пре-поцессорном PL/SQL блоке задается другое имя view - добавляются нужные поля, удаляются ненужные - все это визуально компонуется на region-ах - немного меняется код на Submit-е - ну еще иногда менются списки операций на sidebar-е Вот чем и замечателен APEX. Я неважно знаком с JavaScript-ми заморочками - но почти все что нужно, я делаю в пакетах или анонимных блоках - то есть не выходя из PL/SQL. Ну кое-какие нюансы вносит Java-спец - я учусь у него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:35 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
OFF ZhVВы когда-нибудь видели договоры аренды и субподряда в бумажном виде? нет. Покажите. ZhVОбщее там только - "подвал" с реквизитами договаривающихся сторон. Если только чтение, то подвал можно сделать одинаковым в смысле кода. На все страницы. Т.е. так и выходит? Что делаем страницу Договор Аренда и Договор Субподряда как отдельные страницы. Так? Тогда это будет ТЗ уже разжёванное для программиста. А дальше читаем что там у вас мешает такому ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:43 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVПри остутствии константных привязок к переменным страницы типа (:P12_ID := ...) простое копирование страницы на 80% корректно переносит функционал отображения данных. да. На каждой странице со своим ID будет свой номер автоматом. Некоторый минимум надо подправить. ZhVпод каждый вид договора существует собственная view - в пре-поцессорном PL/SQL блоке задается другое имя view - добавляются нужные поля, удаляются ненужные - все это визуально компонуется на region-ах - немного меняется код на Submit-е - ну еще иногда менются списки операций на sidebar-е да! При наличии БЛ уже готовой будет 1 страничка в день. Итого что вас там испугало? Это обычная работа программиста. ... Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:46 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhV, Я полагаю версия apex не очень древняя (многое было и в древних версиях). Про создать свою систему логов речи не идёт. На уровне приложения можно определить error handler function, которая может обрабатывать определенные виды ошибок, относящиеся к apex и выдавать дружелюбные сообщения (это полезно в том числе и при выводе ошибок с unique constraint), чтобы пользователи не видели ora-xxxxxx кусок, в тех случаях, когда речь идёт про уже обработанные исключения. В пакетах можно не все apex ошибки обработать и не всегда это удобно, этот инструмент не заменяет обработку в пакетах, скорее дополняет. В апексе так же по умолчанию хранятся логи активности за 2 недели, в том числе и ошибки, которые выдаёт apex приложение. По тому в какой схеме хранится apex_util, физически - это схема apex_xxxxxx, но рекоммендуется обращаться через синоним apex_util, как описано в документации API Reference, при этом не нужно знать, что и в какой схеме хранится. Тут как раз используется документированное апи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:48 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVВот чем и замечателен APEX. Я неважно знаком с JavaScript-ми заморочками - но почти все что нужно, я делаю в пакетах или анонимных блоках - то есть не выходя из PL/SQL. Ну кое-какие нюансы вносит Java-спец - я учусь у него. не туда пошёл. - Изучи волшебники апекс и построители-генераторы - Изучи декларативные способы - Изучи API и динамику в DA Только после этого лезь в хранимки\JS\Java\AJAX IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:51 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
SvDevВ пакетах можно не все apex ошибки обработать и не всегда это удобно либо я сам выбрасываю наверх Raize и показываю уже страничке. SvDevВ апексе так же по умолчанию хранятся логи активности за 2 недели +1 перебрасываю в свою таблу чтобы не стёрлось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 15:55 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
Petro123При наличии БЛ уже готовой будет 1 страничка в день. Итого что вас там испугало? Это обычная работа программиста. ... Удачи! Ну дык я об чем. Во только я программист Oracle а не front-end разработчик. И моя основная работа - после Submit не просто commit как в учебных примерах, а должна быть вызвана правильная процедура из правильного пакета, которая правильно проанализирует и обработает внесенные данные или их изменение - все распишет по нужным таблицам и запишет в логи нужные сообщения. И вот тут бывает 1 дня не хватает. Уж не обессудьте насчет высказывания Petro123 не туда пошёл. Я уж как нибудь сам решу - куда идти. SvDevZhV, В пакетах можно не все apex ошибки обработать и не всегда это удобно... В моем случае я очень хорошего мнения о предшественниках-делфистах, которые лет 15 назад заложились на размещение бизнес-логики в базе (80-90%), а не на своих формах. И я намерен продолжить этот тренд - все что можно перенести в обработки Oraclе (как правило пакеты, реже - анонимные хранимые блоки PL/SQL) - надо туда пененосить. После APEX-а может быть что-то еще... А Oracle вечен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 16:21 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVпосле Submit не просто commit как в учебных примерах, а должна быть вызвана правильная процедура из правильного пакета, которая правильно проанализирует и обработает внесенные данные или их изменение - все распишет по нужным таблицам и запишет в логи нужные сообщения. И вот тут бывает 1 дня не хватает. можно и хранимки. Тогда у вас перестают работать автоматические процессы от Оракле. У меня тоже хранимки(. Приходится вносить в них 20 параметров от 20 ITEMS. А бизнес логика отдельный вопрос. ZhVВ моем случае я очень хорошего мнения о предшественниках-делфистах, которые лет 15 назад заложились на размещение бизнес-логики в базе (80-90%), а не на своих формах. у меня тоже так. Но есть и простые справочники без хранимок. БЛ в базе это хороший тон и на Delphi. Пока не увидел у вас ничего сложного. У меня тоже хранимки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 16:39 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhV, всё дело в транзакциях. Они короткие - на 0,1 сек. И не желательно передавать в хранимку контекст. Т.е. имена ITEMS. Это на любом ЯП так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 16:41 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
Petro123У меня тоже хранимки(. Приходится вносить в них 20 параметров от 20 ITEMS.... Совет с моей стороны - осваивайте XML как универсальный способ внутри- и меж- системного обмена любыми обьектами. Сможете начать работать с такими полезными и востребованными вещами как SOAP, REST... даже СМЭВ и сервисы ФНС :) По аналогии с предыдущим моим примером Код: plsql 1. 2. 3. 4. 5. 6. 7. Вход в обработчик универсален - только один параметр в виде 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 блок можно править "на ходу" в любое время - инвалидирования пакетов (и вопли юзеров - "все сломалось") из-за изменения количества параметров и каких-то простейших дополнений в код не будет. На этом все, наверное. До связи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 18:05 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhV, Все это замечательно, только у меня это уже java а не апекс. Каждой задаче своя платформа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 21:05 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 22:03 |
|
||
|
Передача значения только что измененного Item при редиректе
|
|||
|---|---|---|---|
|
#18+
ZhVУ меня есть опыт в back-end для .Net ну дак, тем более. Net - это уже ЯП высокого уровня. Всё верно. ZhVВообще, выскажу может быть крамольную мысль для данного форума. умные поймут. А остальным пофиг. ZhVAPEX - это конструктор web-приложений для PL/SQL программистов. +5 Для тех кто не писал на ином веб приложений. Т.е. ОЧЕНЬ ХОРОШ для своей ниши. ZhVсреда разработки APEX - хоть и красиво местами, но тормоз страшный. тормоза не заметил. заетил интерфейс и урл специфичный (грубый-большой). ZhVКогда-то я интенсивно рубился на Powebuilder это десктоп. А в веб только Net\PHP\Java - увы)) LOL Даже MS с его сильверлайт обломился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 22:34 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=39412594&tid=1874428]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 304ms |

| 0 / 0 |
