powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как запустить локальный процесс через JS?
25 сообщений из 28, страница 1 из 2
Как запустить локальный процесс через JS?
    #36193693
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое нормально работает при doSubmit(<reques>). но мне надо без перезагрузки страницы, а глобальный процесс не хотелось бы испрользовать. Пробовал условие срабатывание: Итем равен какому то значению. но при изменении ничего не происходит - наверное тоже ждет сабмита.
Как быть?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36193716
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

0. С технической точки зрения разницы между процессами уровня страницы и уровня приложения нет. Просто первый объявлен на странице, а второй - в приложении.
1. Какой тип "локального" процесса?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36193845
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,

Согласен что разницы нет, казалось бы, но как объяснить что локально процессы выполняются должным образом, а глобально нет. В селекте используется :
Код: plaintext
1.
2.
3.
select 
apex_item.hidden( 26 , a.KOD_JRN) ||
apex_ITEM.checkbox( 21 ,a.KOD_JRN,null) "f0",
....
то есть в процессе идет идет манипуляция со следующими перемнными - apex_application.g_f21.COUNT.
и в глобальном процессе они всегда равны нулю.
Проставим тогда вопрос по другому: как в глобальном процессе использовать переменные вида apex_application.g_f...
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36193942
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

я про отсутствие разницы говорил, чтобы продолжить аналогию: ставим у элемента в HTML-атрибутах onchange="<ваша_JS_функция>;", в функции запускаем процесс уровня страницы через htmldb_Get. По-другому без сабмита не запустить.
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36193973
z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
z
Гость
suPPLer,
а разве html_get может запускать процессы уровня страницы?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194028
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
не может только что проверил
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194083
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zsuPPLer,
а разве html_get может запускать процессы уровня страницы?

Да, соврамши я. :(
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194095
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

насчёт того, что коллекции APPLICATION_ITEM.g_fXX доступны только после сабмита локальным процессам, уже давно идёт разговор. Если сабмит неприемлем, то обычно выкручиваются через JS.

Какая Вас за обработка этих чекбоксов?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194103
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
и какие у вас еще идеи будут по теме?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194275
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яи какие у вас еще идеи будут по теме?

Всё зависит от того, что делается в процессе. :)
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194308
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замечено (мною), что application process может принимать (при запуске ч-з htmldb_Get) только f01 .. f20, как ни странно. Полный спектр (по 50-ю) можно получить, действительно, только ч-з сабмит страницы. Как сделать сабмит ч-з htmldb_Get?

Код: plaintext
1.
2.
3.
4.
var g = new htmldb_Get(null, $v('pFlowId'), 'MY_REQUEST', $v('pFlowStepId'), null, 'wwv_flow.accept');
g.params = g.params + '&' + $("#wwvFlowForm").serialize();
var r = g.get();
g = null;

При выполнении этого js-кода в post-параметры соберутся значения полей формы (здесь для этого используется jquery, но несложно реализовать и самому), а на стороне сервера после прохождения запроса исполнятся страничные процессы, повешенные на "MY_REQUEST".
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194368
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvad,

Типа к такому решению я и подошел, БОЛЬШОЕ СПАСИБО!
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194387
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, еще к MY_REQUEST понадобится какой-нибудь branch. Результат последующего GET правда уйдет "в никуда" )
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36194510
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Корректировочка: бранч особо тут не нужен, все что надо выполняется, перехода нет и, в общем то, не надо.
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36196084
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это конечно все помогло и работает спасибо большое за такой нестандартный ход! но проблема в том что в этих процессах
Код: plaintext
apex_application.g_f21.COUNT
всегда равно нулю, не завимсимо от того был ли выделена строчка или нет. все дело в jquery.dialog вообще все что попадаент в div, который потом используется в этом плагине как в черной дыре все пропадает(или до значений не достучаться или не присвоить), попробовал просто через $x_Show, тогда все нормально отрабатывает. как приручить к апексу jquery? может у кого нибудь есть соображения, а то уж больно я привык к использованию плагина диалог...
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36196673
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо при вызове функции dialog все что находиться в диве удаляется со страницы, а при открытии окна создается. но тут же репорт с sql-запросом и pl/sql-функциями. Как рветься связь между глобальными переменными apex_application.g_f21 не пойму. может можно как то настроить диалог что бы он не грохал всю внутренность дива, а то самому вырисовывать окошко не очень удобно.
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36198301
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё то я повозился с этими стилями и классами... очень не удобно. млин почему этот плагин по нормальному не работает. поэксперементировал - и ничего: переменные пропаадают отчет тоже мервый выходит, что хоть этот диалог там делает с "внутренностями"?
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36203092
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас попробую написать свой плагин диалога который коректно работает в Апексе
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36208981
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поковырялся я в этом и решил чего выдумывать велосипед. получиться тоже яйцо только с боку, просто надо найти что это плагин делает такого что убивает переменные, но ничего такого не нашел. просто берется див и облепляется дивами для кнопок если есть и дивам для титла и скрывается все это. почему если я вручную делаю такой же див и скрываю его то все нормально работает с апексом. разве это такая не интересная тема? диалоги для использования в апекс я щитаю это оптимальный и красивый вариант чем пладить кучу страниц. давайте вместе поэксперементирует...
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36209829
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

0. Вообще-то, диалог во всплывающем окне - вот чего хватает в ApEx. А всякие плагины jQuery - это для красивостей и [иногда] удобства.
1. Как-нибудь залезу в dialog (когда чуток знаний будет побольше :) ), но, ИМХО, все элементы в нём при создании диалога создаются заново. Попробуйте создавать диалог как
Код: plaintext
$('.selector').dialog({ autoOpen: false });
и открывать как
Код: plaintext
$('.selector').dialog('open');
.
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36210146
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,
Вижу Вы только мельком сейчас посмотрели на него, на плагин. думаете я каким то другим способом его использую, именно так как написали и использую. но все что туда попадает(я запихиваю туда целые регионы) не совсем себя адекватно ведет в связке с апексом. Допустим туда поместил репорт(с возможностью удаления) и при отработке процесса все переменные apex_application.g_fХХ почему то нулевые, когда использую самапальный слой то все работает. но самопальный не удобно использовать со стороны разработчика. в чем их глобальное различие - самопальный див и див с dialog jquery???
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36210195
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и разве плохо что твое приложение не только функционально но и красиво выглядит!
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #36216644
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем я понял одно:
так как ф-и формирования диалога у меня в хеадере страницы то при каждом сабмите все содержимое пересоздается, поэтому и не фиксируется значение элементов внутри дива(значит надо как то сделать что бы конструктор диалога вызывался тока один раз при первом открытии страницы а потом при работе с ней(сабмиты), данные элементы jquery не пересоздавались)!
но вот по поводу чтого что теряется спязь между выделенными строками(apex_application.g_f) и апексом , нек понятно из за чего... ну пересоздается репорт при каждом сабмите, но потом я через аякс обновляю этот репорт, а сервер еще наверное не знает о факте показа данного репорта с данными переменными и поэтому они и нулевые, как считаете?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как запустить локальный процесс через JS?
    #38066357
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvadЗамечено (мною), что application process может принимать (при запуске ч-з htmldb_Get) только f01 .. f20, как ни странно. Полный спектр (по 50-ю) можно получить, действительно, только ч-з сабмит страницы. Как сделать сабмит ч-з htmldb_Get?

Код: sql
1.
2.
3.
4.
var g = new htmldb_Get(null, $v('pFlowId'), 'MY_REQUEST', $v('pFlowStepId'), null, 'wwv_flow.accept');
g.params = g.params + '&' + $("#wwvFlowForm").serialize();
var r = g.get();
g = null;



При выполнении этого js-кода в post-параметры соберутся значения полей формы (здесь для этого используется jquery, но несложно реализовать и самому), а на стороне сервера после прохождения запроса исполнятся страничные процессы, повешенные на "MY_REQUEST".

Что то у меня сейчас не получается воспроизвести данную возможность. Тогда получалось на APEX 3.1.

Пробую на APEX 4.2.
Есть чистая страница, на ней процесс по реквесту PROBA:
Код: plsql
1.
2.
3.
BEGIN
	htp.p('Проба');
END;


так же есть кнопка с сорсам:
Код: javascript
1.
javascript:my_ajax();



сама ф-я:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function my_ajax()
{


    var get = new htmldb_Get(null, $v('pFlowId'), 'PROBA', $v('pFlowStepId'), null, 'wwv_flow.accept');

    get.params = get.params + '&' + $("#wwvFlowForm").serialize();
	
    var ret = get.get();

    get = null;
	
	
    alert(ret);

};



и в алерте выдается:
Код: plaintext
1.
2.
3.
4.
5.
<table summary="">
<tr><td><img src="/i/error.gif" border="0" /></td><td>Error</td><td>Error processing request.</td></tr><tr><td></td><td></td>
<td>ORA-01403: данные не найдены</td></tr><tr><td></td>
<td></td><td></td></tr><tr><td>
<a href="javascript:window.history.go(-1)">OK</a></td><td><br /></td></tr></table>

То есть ошибка этого процесса - не найдены данные.

Можете сказать какие, а то как то замылился я на этой трабле...

Спасибо
...
Рейтинг: 0 / 0
Как запустить локальный процесс через JS?
    #38075710
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ни кто не знает как это победить? в 3 версии точно помню что работало. Неужели что то поменялось в 4-м апексе...
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как запустить локальный процесс через JS?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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