apex 5.1 в pl / sql apex_application.g_print_success_message - PullRequest
0 голосов
/ 14 марта 2019

Я использую код pl / sql в динамическом действии (которое запускается при нажатии кнопки).Я делаю обновление таблицы.после обновления я хочу уведомить пользователя, если обновление прошло успешно или нет.Я использую код:

if (  ) then
   update ....
   apex_application.g_print_success_message := '<span style="color:green">OK</span>';
end if;

, но код не работает.обновление происходит, но я не вижу уведомления.

благодарю за помощь.

Эрве

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Вот как я это делаю:

  • создать хранимую процедуру, которая принимает определенные параметры, выполняет stuff и помещает сообщение об успехе (или неудаче) в параметр OUT . Например,

    create or replace procedure p_upd (par_empno in number, par_msg out varchar2) as
      begin
        update ...
        where empno = par_empno;
    
        par_msg := 'Updated ' || sql%rowcount || ' rows';
    end;
    
  • В Apex создайте скрытый элемент (назовем его P1_MSG)
  • создать кнопку, которая - при нажатии - вызывает процесс, который использует ранее упомянутую хранимую процедуру:

    p_upd (:P1_EMPNO, :P1_MSG);
    
  • наконец, установите это как Сообщение об успешном процессе :

    &P1_MSG.
    

    (обратите внимание на начальные амперсанды (&) и конечную точку (.) - без них работать не будет. Окончательным результатом будет сообщение «Обновлены 17 строк», отображаемое на экране (как вы видите) стандартное сообщение «Действие выполнено»).

Вот и все.

Конечно, вместо того, чтобы вызывать процедуру, вы можете написать код PL / SQL непосредственно в процесс, но я предпочитаю процедуру, особенно когда нужно многое сделать (я скорее делаю это в базе данных) .

0 голосов
/ 14 марта 2019

Мое предложение - написать ваш код plsql в процессе, выбрав тип в качестве кода plsql. оттуда вы также можете установить свое сообщение об успехе. Я также пытался ранее с apex_application.g_print_success_message, но это не сработало для меня. Поэтому я изменился в зависимости от процесса.

...