Два события по нажатию одной кнопки Oracle Apex

Сначала у меня есть цикл в примере pl / sql (EX 1)

begin
  declare
  l_string varchar2(4000);
  begin
       :P15_URL_PARAMETER := '';

       FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP  
           l_string := l_string || APEX_APPLICATION.G_F01(i) || '-';
       END LOOP;  

       :P15_URL_PARAMETER := l_string;   
  end;
end;

После того, как поле P15_URL_PARAMETER получит значение сверху plsql, мне нужно перенаправить вызов на пример URL-адреса (EX 2)

javascript:var a = window.open('f?p=800:105:&APP_SESSION.:.....xyz........&P15_URL_PARAMETER.');

В этот момент сначала на BUTTON_1 я вызываю процесс (EX 1), а затем P15_URL_PARAMETER получает значение на второй кнопке BUTTON_2 перенаправляет вызов на url (EX 2). Все работает нормально, но можно ли (EX 1 и EX 2) вызвать одним нажатием кнопки?

Tnx


person Pointer    schedule 17.11.2019    source источник


Ответы (1)


Полагаю, что так. Это можно сделать, создав динамическое действие с двумя истинными действиями:

  • один из них - «Выполнить код PL / SQL» (это первый опубликованный вами фрагмент кода)
  • еще один - «Выполнить код JavaScript» (это второй опубликованный вами код)
person Littlefoot    schedule 17.11.2019
comment
Привет, не работает, поле P15_URL_PARAMETER пусто. Перенаправление на url должно ждать, пока P15_URL_PARAMETER получит значение от plsql. Я не знаю, можно ли заснуть между динамическими действиями? - person Pointer; 17.11.2019
comment
Ага. Мне приходят в голову две вещи. Во-первых, нужно изменить Execute PL / SQL Code на Set value. Другой - оставить его как есть, но добавить еще одно действие: Отправить (как второе действие), поскольку оно переведет значения элементов в состояние сеанса. - person Littlefoot; 17.11.2019