powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Список в Inline notification item
9 сообщений из 9, страница 1 из 1
Список в Inline notification item
    #37836960
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача:
При сохранении документа проверить остатки на складе и в сообщение об ошибке вывести список позиций у которых в результате сохранения образуетсмя отрицательный остаток.
Для чего имеем цикл:

for I in ( select ....
)

LOOP
errmsg:=' '||errmsg||' Отрицательный остаток для товара '||i.seq_id||'<br />';
end loop;

raise_application_error(-20101, errmsg );


При этом в окне сообщения вижу:
Произошла ошибка Произошла ошибка во время сохранения документа. Отрицательный остаток для товара 1<br /> Отрицательный остаток для товара 2<br /> Отрицательный остаток для товара 3<br /> Отрицательный остаток для товара 4<br />
Firebug:
Произошла ошибка во время сохранения документа.
Отрицательный остаток для товара 1<br /> Отрицательный остаток для товара 2<br /> Отрицательный остаток для товара 3<br /> Отрицательный остаток для товара 4<br />

При этом если в Firebug поставить пробле на пример после слова остаток, то список форматируется как надо.
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37837144
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полено,

APEX 4.1 Error Handling:
Код: plsql
1.
2.
3.
4.
5.
6.
for I in 1..4
loop
  apex_error.add_error
    ( p_message => ' Отрицательный остаток для товара '||i
    , p_display_location => apex_error.c_inline_in_notification);
end loop;



Без всяких raise_application_error.

А Firebug просто при редактировании escape-последовательности и escape-коды превращает в символы, при этом забывает по окончанию редактирования вернуть их обратно и превращает в код HTML. Так что не апеллируйте к нему.
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37837712
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,

Благодарю за как всегда точный, емки и быстрый ответ :)
Как говорится - "Будте у нас на колыме ..." :)
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37837841
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако есть проблема.
После выполнения APEX_ERROR.ADD_ERROR в процессе №1, процессы 2,3, и т.д. продолжают выполняться.
Как запретить выполнение последующих процессов после возникновения ошибки?
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37838043
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПоленоКак запретить выполнение последующих процессов после возникновения ошибки?

Cтавить в них условие на PL/SQL Expression:

Код: sql
1.
NOT apex_error.have_errors_occurred



Или всё-таки бросать исключение в процессе, добавляющем ошибки. Как по мне, недоработали этот момент: нужна процедура, которую разработчик может вызвать, чтобы показать, что стек ошибок сформирован, и необходимо прервать фазу Processing.
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37838111
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полено,

Запретить то можно, только тогда и branch нужно кодить, примерно так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
  for I in 1..4
  loop
    apex_error.add_error
      ( p_message => ' Отрицательный остаток для товара '||i
      , p_display_location => apex_error.c_inline_in_notification);
  end loop;

  apex_util.redirect_url('f?p=app:page:session:...');
  apex_application.stop_apex_engine;
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37838790
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev
Код: plsql
1.
2.
  apex_util.redirect_url('f?p=app:page:session:...');
  apex_application.stop_apex_engine;



Вот это вот и надо было добавить в APEX_ERROR какой-нибудь процедурой stop_further_processing. Не доработали. Авось, в 4.2 сделают.

PS: И долгожданную DV для значений элементов типа Datepicker.
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37838919
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerSvDev
Код: plsql
1.
2.
  apex_util.redirect_url('f?p=app:page:session:...');
  apex_application.stop_apex_engine;



Вот это вот и надо было добавить в APEX_ERROR какой-нибудь процедурой stop_further_processing. Не доработали. Авось, в 4.2 сделают.

PS: И долгожданную DV для значений элементов типа Datepicker.

Немного не в тему а что такое DV ?
...
Рейтинг: 0 / 0
Список в Inline notification item
    #37839722
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПоленоНемного не в тему а что такое DV ?

Есть сокращение для APEX_UTIL.GET_SESSION_STATE -- функция V (от value). Есть аналогичная функция, которая возвращает число -- NV (number value). В своё время в ApexLib была функция, которая возвращала дату для элементов datepicker, используя их строковое значение и формат из атрибутов элемента . Хочется что-то подобное в самом APEX API с именем DV.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Список в Inline notification item
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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