powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Последовательность запуска процедур без перерисовки всей страницы
25 сообщений из 35, страница 1 из 2
Последовательность запуска процедур без перерисовки всей страницы
    #36557222
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Хотел бы узнать у опытных коллег рекомендации по разработке функционала следующей производственной задачи (примерный вид целевой страницы приведен на картинке):
Есть список процедур, которые нужно выполнить пользователю последовательно, дождавшись выполнения предыдущей. Эти процедуры могут работать минуты или десятки минут, так что они вызываются с использованием APEX_PLSQL_JOB.SUBMIT_PROCESS(); и поэтому ведется лог запуска и завершения задачи.
Собственно в связи с этим вопросы:
1) Было бы изящнее список задач держать в таблице и формировать его в изображенном регионе, подтягивая из логов время выполнения задач. Но как правильнее навесить выполнение кода SQL скриптов на кнопки "Выполнить", считав их из поля типа VARCHAR2(4000)?
2) Опробовав технику создания ITEM+BUTTON, не ясно, как их включить в таблицу (изображенную на картинке)?
3) Как правильнее организовать обновление региона с новыми данными статуса задач без перерисовки всей страницы? Представляется, что сабмиты здесь не нужны... т.е. вся работа осуществляется на одной странице.

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

0. Поясните следующий момент: пользователь самостоятельно запускает очередную процедуру P i после выполнения процедуры P i-1 , или формирует цепочку
Код: plaintext
P 1   И  P 2   И  ... И P i 
a-la конвеер команд в шелле *nix, а приложение эту цепочку обрабатывает пошагово? В зависимости от этого можно использовать разные подходы для организации интерфейса.
1. Процедуры действительно лучше держать в таблице вида (Айдишник, Имя процедуры, Описание процедуры, PL/SQL-блок). Соответственно, в лог выполнения можно заносить айдишник этой процедуры, период выполнения, результат выполнения, сообщение об ошибке etc. Кроме того, можно создать таблицу для конкретных запусков вида (Айдишник запуска, Айдишник процедуры, Пользователь, Состояние).
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36557412
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer, спасибо за оперативность.
Список процедур предопределен, конечные пользователи к его формированию отношения не имеют, только могут осуществлять запуск процедур. Полагаю, что Apex представляет отличный интерфейс для организации взаимодействия с конечным пользователем (запуск задач и мониторинг хода расчётов). Поскольку задачи представляют собой большие пакеты, написанные на PL/SQL, то логично и запускать из дружественной среды (Apex, например), так что shell-подход не рассматривали.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36557482
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrunvaloПоскольку задачи представляют собой большие пакеты, написанные на PL/SQL, то логично и запускать из дружественной среды (Apex, например), так что shell-подход не рассматривали.

Возникло недопонимание. :) Я за то , чтобы решение делалось в БД, потому что задача это позволяет. Меня интересует, как Вашим пользователям удобнее и правильнее работать:

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

1. Подход "Конвеер". Это тот, к которому я привёл аналогию с шеллом в *nix. Пользователю выдаётся список задач и одна кнопка "Выполнить". Пользователь жмёт её и занимается дальше своими делами. Время от времени он может заходить на страницу с текущим выполняющимся списком задач и смотреть промежуточные и конечные результаты. Отчёт со списком задач, например, можно раз в 10 с обновлять без сабмита ($a_report для обычного отчёта / gReport.pull() для интерактивного). Можно создать HTML-регион на странице #0, который выводится при выполняющемся списке задач, в нём создать div для отображения информации о выполнении, и обновлять информацию через JS раз в 10 с. Туда же добавить ссылку / кнопку для перехода к странице с текущим выполняющимся списком задач. Можно ещё всяких вкусностей наворотить...
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36557681
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,
В конечном счёте нужны будут оба варианта: 0) "Ручной режим" - для того, чтобы по результатам выполнения каждой задачи просматривать промежуточные производственные отчёты, анализировать данные, если всё хорошо - продолжать дальше; если что-то не так - возможно начинать всё с запуска первой процедуры (она сбрасывает систему в исходное состояние) 1) "Автоматический" - типа большая кнопка: "Запустить все". Поэтому для упрощения возможны два вида страницы, соответственно под эти варианты, или вообще 2 страницы разных (к ним перейдёт пользователь по ссылке в зависимости от выбранного сценария). Хотя есть соображение, чтобы пользователю предоставить возможность пару-тройку задач выполнить "вручную", а последующие - "автоматически", нажать кнопку "Запустит все". Конечно, логика работы программы должна отследить это (по логу, например, или по некой метке, хранимой тоже в какой-нибудь таблице).
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36557776
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drunvalo,

по сабжу я уже упомянул, обновляйте отчёты на страницах через JavaScript и функции $a_report / gReport.pull().

Вопросы ещё какие-то есть? :)
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558091
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer, нюансы, видимо, в деталях... ;-)
Т.е. последовательность построения такой страницы видится следующей:
0) создаем таблицу со списком процедур (TBL_PROCEDURES), таблицу логов работы процедур (TBL_LOGS);
1) создаём пустую страницу;
2) создаём регион (Report) где указываем SELECT, объединяющий таблицу со списком процедур и таблицу логов (TBL_PROCEDURES+TBL_LOGS);
3) добавляем колонки с кнопками "Выполнить", вытаскиваем SQL-код (из поля таблицы TBL_PROCEDURES) и приворачиваем к этим кнопкам (как? здесь, видимо, не хватает ещё практических навыков у меня);
4) навешиваем функционал обновления этого региона вручную или автоматически по механизму, описанному на "http://apex.oracle.com/pls/otn/f?p=11933:40" или по механизму, приводимому вами: "...JavaScript и функции $a_report..." (надо будет посмотреть эту фичу...).
- что-то типа такого?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558170
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно из возможных решений для ручного запуска: в выборке отчёта добавляете элемент-кнопку, например:
Код: plaintext
1.
select field1, field2, '<input type="button" value="Выполнить" onClick="javascript:doIt('||procedure_id||');">' from tbl_procedures

Javascript функция doIt(procid) устанавливает значение какого-нибудь скрытого элемента P_PROC_ID равным ID вашей процедуры, затем делает doSubmit с определённым запросом.

Процедура, которая отрабатывает по этому запросу, запускает job c процедурой, в которой использован execute immediate + код вашей процедуры, извлечённый по значению P_PROC_ID из blob.

Как-то так, если не использовать AJAX.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558304
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidОдно из возможных решений для ручного запуска: в выборке отчёта добавляете элемент-кнопку, например:
Код: plaintext
1.
select field1, field2, '<input type="button" value="Выполнить" onClick="javascript:doIt('||procedure_id||');">' from tbl_procedures

Javascript функция doIt(procid) устанавливает значение какого-нибудь скрытого элемента P_PROC_ID равным ID вашей процедуры, затем делает doSubmit с определённым запросом.

Процедура, которая отрабатывает по этому запросу, запускает job c процедурой, в которой использован execute immediate + код вашей процедуры, извлечённый по значению P_PROC_ID из blob.
...

На этот SELECT Apex выдаёт: "...failed to parse SQL query: ORA-00972: слишком длинный идентификатор...". Может синтаксис не верен...
Чуть подробнее этот момент, плз. Или если можно, ссылку на пример какой-либо...
Я предполагаю, записывать в поле таблицы TBL_PROCEDURES описания типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
    l_sql VARCHAR2( 400 );
    l_user_name VARCHAR2( 100 ); 
    l_op_id NUMBER;
    ...
BEGIN
    ...
    l_user_name := APEX_UTIL.GET_USERNAME(APEX_UTIL.GET_CURRENT_USER_ID);
    l_sql := 'BEGIN my_package.main(param1, param2, ...); END;';
    l_job := APEX_PLSQL_JOB.SUBMIT_PROCESS(p_sql => l_sql, p_status => my_package.main is started...');
    my_package.SaveLog(l_job, l_user_name, param1, ...);  
END;
Под такие вещи и VARCHAR2(4000) хватит...
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558389
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл про алиас. После '< .... >' нужно добавить алиас.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558413
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drunvalo,

в качестве примера, как делать из столбцов в отчёте что-нибудь посложнее, RTFBlog Roels Blog - Handling information overload: Showing data on demand in an IR , там столбец превращается в картинки, при наведении на которые показывается div подробной информацией. Вам понадобится столбец превратить в кнопки / ссылки (тут и Column Attributes->Link подойдёт) / картинки, по клику на которые будут запускаться процедуры.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558447
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoid ...Javascript функция doIt(procid) устанавливает значение какого-нибудь скрытого элемента P_PROC_ID равным ID вашей процедуры, затем делает doSubmit с определённым запросом.

Процедура, которая отрабатывает по этому запросу, запускает job c процедурой, в которой использован execute immediate + код вашей процедуры, извлечённый по значению P_PROC_ID из blob...
.

Если не затруднит, по-шагово прокомментируете?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558455
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerDrunvalo,

...RTFBlog Roels Blog - Handling information overload: Showing data on demand in an IR , там столбец превращается ... в кнопки / ссылки (тут и Column Attributes->Link подойдёт) / картинки, по клику на которые будут запускаться процедуры.
Спасибо за ссылку. Будем изучать матчасть...
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558482
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidПроцедура, которая отрабатывает по этому запросу, запускает job c процедурой, в которой использован execute immediate + код вашей процедуры, извлечённый по значению P_PROC_ID из blob .
Два небольших замечания: из CLOB и начиная с 11g.

DrunvaloЕсли не затруднит, по-шагово прокомментируете?
Вам, КМК, больше подойдёт вызов процесса приложения через AJAX и htmldb_Get. Только первым делом запускаемая процедура должна где-нибудь отмечать, что в наборе уже есть выполняемая задача, и последним - снимать пометку. А запрос, формирующий список задач для отчёта, эту пометку должен учитывать и вместо ссылок / картинок / кнопок выдавать что-нибудь некликабельное у всех процедур, кроме той, что выполняется. У выполняющейся может выводить анимированный gif вроде такого...
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36558864
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И действительно, при таком подходе никакой blob/clob не нужен. Итак:
1. процедуры можно держать в varchar;
2. использование htmldb_Get красиво, но как быстрое и лёгкое в отладке решение пойдёт и предложенный мной вариант;
3. А вот обновление отчёта со списком задач лучше сразу сделать через $a_report по таймеру.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36562191
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLernon-apexoidПроцедура, которая отрабатывает по этому запросу, запускает job c процедурой, в которой использован execute immediate + код вашей процедуры, извлечённый по значению P_PROC_ID из blob .
Два небольших замечания: из CLOB и начиная с 11g.

DrunvaloЕсли не затруднит, по-шагово прокомментируете?
Вам, КМК, больше подойдёт вызов процесса приложения через AJAX и htmldb_Get. Только первым делом запускаемая процедура должна где-нибудь отмечать, что в наборе уже есть выполняемая задача, и последним - снимать пометку. А запрос, формирующий список задач для отчёта, эту пометку должен учитывать и вместо ссылок / картинок / кнопок выдавать что-нибудь некликабельное у всех процедур, кроме той, что выполняется. У выполняющейся может выводить анимированный gif вроде такого...

Был не в сети... В продолжении темы, коллеги, не сочтите за назойливость (в учебных целях и многим моим коллегам по работе будет интересно, осваивающим Apex). По реализации подробнее бы хотелось услышать. (Кстати, среда Oracle 10.2). Я остановился на этапе вывода отчета, как на картинке показано. В hidden поле имеется для каждой строки считанная текстовка SQL-процедур (VARCHAR2(4000)) и в еще одном hidden procedure_id (нужен ли? ведь текст уже считан...).
В заголовке страницы добавляем типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script type="text/javascript">   
<!--   
function doIt(procedure_id)
{
   alert('procedure_id='+procedure_id);
}
//-->   
</script>  
Нажимаем кнопку - сообщение с procedure_id, соответствующим каждой строке видим.
Собственно, далее что делаем? Как это в динамике с процессами и doSubmit увязываем?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36562469
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну очень кратце. Действительно, есть 2 подхода: с асинхронным обменом с использованием htmldb_Get (ну или jApex, с этим не знаком) +pl/sql процедура уровня приложения и 2-й путь - всё-таки с сабмитом и выполнением процедуры уровня страницы. Пару слов о втором способе. Вообще, сам текст процедуры именно в отчёте вам не нужен совсем, так просто вы его _не_выполните_. Итак, doSubmit('REQUEST'). При этом по условию этого запроса у вас должна сработать процедура уровня страницы, в которой и будет выполнена уже ваша процедура.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36562732
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoid...Пару слов о втором способе. Вообще, сам текст процедуры именно в отчёте вам не нужен совсем, так просто вы его _не_выполните_. Итак, doSubmit('REQUEST'). При этом по условию этого запроса у вас должна сработать процедура уровня страницы, в которой и будет выполнена уже ваша процедура.

Итак,
1) создаём процесс:
Application xxx>Page xxx>Create Page Process
Выбираем тип: "PL/SQL"
Point: "On Submit - After Computations and Validations"
Enter PL/SQL Page Process: "..." - вот тут мы должны изобрести некую оболочечную процедуру, которая по передаваемому параметру найдет текст выполнения соответствующей задачи в таблице TBL_PROCEDURES и запустит его... Так? Кстати, из какой переменной считать этот параметр procedure_id?
2) А сейчас как привязать нажатие какой-либо кнопки с вызовом этой процедуры?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36562883
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drunvalo,
1. В отчёте делаем поле '<input type="button" value="Выполнить" onClick="doIt('||procedure_id||')>" - т.е. при нажатии кнопки должен отработать javascript:doIt(ID_ПРОЦЕДУРЫ)
2. Сам скрипт должен запомнить значение ID процедуры в скрытом элементе P1_PROC_ID и сделать submit с определенным запросом, например, 'DOIT':
Код: plaintext
1.
2.
3.
4.
function doIt(procid) {
  $x('P1_PROC_ID').value=procid;
  doSubmit('DOIT');
}
3. Создаём процедуру уровня страницы "On Submit - After Computations and Validations" c Condition Type=request=Expresion1, в Expression1 пишем DOIT. Таким образом, процедура будет вызвана обработчиком, если request при сабмите будет равен DOIT, то есть при нажатии кнопки.

4. В этой процедуре по ID выбираем текст процедуры в строку и т.д.

Пара замечаний:
-действительно, можно работать и не с ID, а с текстом процедуры
- а лучше, хранить не текст процедуры-обёртки, а наименование вызываемой внутри неё процедуры и описание параметров, обёртку формировать динамически, так универсальнее.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36563037
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, всё-таки ID процедуры, в противном случае получится такая дырища для sql injection
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36563161
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoid
2. Сам скрипт должен запомнить значение ID процедуры в скрытом элементе P1_PROC_ID и сделать submit с определенным запросом, например, 'DOIT':
Код: plaintext
1.
2.
3.
4.
function doIt(procid) {
  $x('P1_PROC_ID').value=procid;
  doSubmit('DOIT');
}
...
4. В этой процедуре по ID выбираем текст процедуры в строку и т.д.

Хорошо, уточните, плз,
- по пункту 2) P1_PROC_ID - эту вещь нужно завести как отдельный ITEM на странице (в регионе)?
- по пункту 4):
а) Создаём процедуру-оболочку (для вызова собственно задач, примерный вид которых был выше приведен...) в Edit Page Process>Source: "MY_PACKAGE.Main(:P1_PROC_ID);"
б) Её примерный текст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
PROCEDURE  Main( P1_PROC_ID IN NUMBER ) IS
    pl_sql VARCHAR2( 2000 ):='';
BEGIN
          SELECT t.sql
          INTO pl_sql
          FROM TBL_PROCEDURES t
          WHERE t.PROC_ID=P1_PROC_ID;
      
          Execute Immediate pl_sql;
END Main;
- правильное направление действий?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36563262
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Да, P1_PROC_ID -скрытое поле с сохранением session state
2. С процедурой не понял. Создаем процедуру уровня страницы с срабатыванием по условию, как писал выше. А вот аргументы как вы нарисовали ей не передать. Примерный каркас, если хранить текст процедуры- оболочки в БД:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare
  l_sql varchar2( 4000 );
begin
  select t.sql into l_sql from tbl_procedures t where t.proc_id=:P1_PROC_ID -- используем переменную привязки
  -- а вот тут ваш код по регистрации, запуску, мониторингу задач
  --  лучше использовать APEX_PLSQL_JOB
end;
3. Дерзайте, удачи.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36563676
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoid
2. С процедурой не понял. Создаем процедуру уровня страницы с срабатыванием по условию, как писал выше. А вот аргументы как вы нарисовали ей не передать. Примерный каркас, если хранить текст процедуры- оболочки в БД:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare
  l_sql varchar2( 4000 );
begin
  select t.sql into l_sql from tbl_procedures t where t.proc_id=:P1_PROC_ID -- используем переменную привязки
  -- а вот тут ваш код по регистрации, запуску, мониторингу задач
  --  лучше использовать APEX_PLSQL_JOB
end;

Так вот эта "общая" процедура-оболочка считывает SQL-код (из таблицы) для каждой из задач и динамически его запускает:
Код: plaintext
1.
2.
3.
4.
5.
6.
...
Execute Immediate pl_sql;
...[/srr]
Кстати, для каждой задачи свой список параметров и т.д. Здесь же динамически запускается и:
[src]...
l_job := APEX_PLSQL_JOB.SUBMIT_PROCESS(p_sql => l_sql, p_status => my_package.procedure1 is started...');
...
как я приводил выше. Этот подход работает.

В целом, пристрелка прошла удачно, общий сценарий работает (правда пока по сценарию перерисовки страницы, перерисовка только региона - отложим пока на потом), пару процедур уже отладил, далее шлифовка...
Была мысль всё это расписать по шагам, с картинками и выложить где-то... Всё-таки как не хватает учебника (русскоязычного лучше), типа: "Apex: Советы бывалых" или подобного ;-).
Спасибо всем за помощь.
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36735416
Drunvalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вернулся к задаче и обнаружил, что вызов процесса уровня страницы, вызываемый DoSubmit('DOIT') ("On Submit - After Computations and Validations" c Condition Type=request=Expresion1, в Expression1 пишем DOIT) отрабатывает из JavaScript чётко ($x('P_PROC_ID').value - присваивается нормально), но вот параметр P1_PROC_ID этот процесс не видит (значение его 0).
Код: plaintext
1.
2.
3.
4.
function doIt(procid) {
  $x('P1_PROC_ID').value=procid;
  doSubmit('DOIT');
}
- это работает, а вот дальше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
declare
  l_sql varchar2( 4000 );
begin
  select t.sql into l_sql from tbl_procedures t where t.proc_id=:P1_PROC_ID -- используем переменную привязки
  -- а вот тут ваш код по регистрации, запуску, мониторингу задач
  --  лучше использовать APEX_PLSQL_JOB
end;

- не работает(!)
Перетряс настройки страницы - не помогает.
(P1_PROC_ID - скрытое поле, "Source Used": "Always, replacing any existing value in session state", "Source Type": "Always null")
Что ещё проверить?
...
Рейтинг: 0 / 0
Последовательность запуска процедур без перерисовки всей страницы
    #36735641
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот это Drunvalo"Source Used": "Always, replacing any existing value in session state", "Source Type": "Always null") не смущает?
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Последовательность запуска процедур без перерисовки всей страницы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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