Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение / 13 сообщений из 13, страница 1 из 1
17.12.2013, 15:10
    #38503686
Алексей_Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
При вводе значения в поле рег. номер. вылетает ошибка ORA-00001: unique constraint(...) violated
Подскажите, пожалуйста, как сдлеать, чтобы вместо этого сообщения выдвал запись, например, "Такой номер уже существует"?
...
Рейтинг: 0 / 0
17.12.2013, 15:33
    #38503743
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
Зависит от того, как вставляете.
...
Рейтинг: 0 / 0
17.12.2013, 15:36
    #38503750
Алексей_Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
rockclimberЗависит от того, как вставляете.

В смысле?
...
Рейтинг: 0 / 0
17.12.2013, 15:42
    #38503758
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
Алексей_ЯrockclimberЗависит от того, как вставляете.

В смысле?В смысле я вам сейчас сходу могу назвать 5 - 6 абсолютно разных средств апекса для вставки данных в таблицу, и еще парочку придумаю, пораскинув мозгами. У каждого способа вставки будут свои способы перехвата сообщений об ошибке. Так что давайте с самого начала - "как обгонял, как подрезал"... что вы там у себя делаете, как и зачем...
...
Рейтинг: 0 / 0
17.12.2013, 15:46
    #38503768
Алексей_Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
rockclimber,

Ввожу значение в поле "номер", в случае, если данный номер уже существует в базе, мне выдается ошибка - ORA-00001: unique constraint(...) violated
Мне нужно вместо данного сообщения, выводить на экран свое.
...
Рейтинг: 0 / 0
17.12.2013, 15:55
    #38503801
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
Фейспалм точка джипег

Как данные из "поля" попадают в базу? Что это за поле? Оно находится в "Tabular form"? В "Form on a procedure"? Вставляется с помощью "Page process"? "Application process"? "Dynamic action"? Еще что-то, про что я не знал или забыл?
...
Рейтинг: 0 / 0
17.12.2013, 16:08
    #38503835
l_kator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
я встряну,
вставляю запись в таблицу при помощи динамик экшен. Внутри экшена только 1 шаг - PL/SQL процесс со вставкой стоки и коммитом.

А дальше все так же, как вместо ORA-00001: unique constraint выдать нормальное сообщение?

Читала про установку скрытого элемента в определенное значение и последующую обработку JS, но катострафически нет ыремени изучить JS
...
Рейтинг: 0 / 0
17.12.2013, 16:45
    #38503911
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
l_katorя встряну,
вставляю запись в таблицу при помощи динамик экшен. Внутри экшена только 1 шаг - PL/SQL процесс со вставкой стоки и коммитом.

А дальше все так же, как вместо ORA-00001: unique constraint выдать нормальное сообщение?

Читала про установку скрытого элемента в определенное значение и последующую обработку JS, но катострафически нет ыремени изучить JSПро самые нужные JS функции:
http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35127/javascript_api.htm#autoId32

У меня получилось так.
1. Dynamic action - PL/SQL code
Код: sql
1.
2.
3.
4.
5.
6.
begin
  insert into tt values (1);
exception
  when dup_val_on_index then
    :P_RETURN_MSG := 'Нарушение уникальности';
end;

В поле "Page Items to Return" указал название итема (P_RETURN_MSG), куда вернуть сообщение.
Потом добавил в тот же Dynamic action второе действие - "Execute JavaScript Code", код такой:
Код: javascript
1.
alert($v('P9_X'));

Вроде работает.

P. S. Apex 4.2
...
Рейтинг: 0 / 0
17.12.2013, 16:47
    #38503913
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
P. P. S. tt в моем коде - таблица с одним полем, которое объявлено как primary key, и одна строка со значением "1" уже есть, то есть код гарантированно вызывает ORA-00001.
...
Рейтинг: 0 / 0
17.12.2013, 16:52
    #38503926
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
rockclimber
Код: javascript
1.
alert($v('P9_X'));

Конечно же для моего примера должно быть
Код: javascript
1.
alert($v('P_RETURN_MSG'));
...
Рейтинг: 0 / 0
15.01.2014, 13:20
    #38526848
Алексей_Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
rockclimberФейспалм точка джипег

Как данные из "поля" попадают в базу? Что это за поле? Оно находится в "Tabular form"? В "Form on a procedure"? Вставляется с помощью "Page process"? "Application process"? "Dynamic action"? Еще что-то, про что я не знал или забыл?

Находтися в Form on a Table or View, всатвляется с помощью Page process (PL/SQL процесс со вставкой)
...
Рейтинг: 0 / 0
15.01.2014, 13:46
    #38526899
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
Алексей_ЯrockclimberФейспалм точка джипег

Как данные из "поля" попадают в базу? Что это за поле? Оно находится в "Tabular form"? В "Form on a procedure"? Вставляется с помощью "Page process"? "Application process"? "Dynamic action"? Еще что-то, про что я не знал или забыл?

Находтися в Form on a Table or View, всатвляется с помощью Page process (PL/SQL процесс со вставкой)Если Page process стандартный (сгенерирован самим апексом в процессе работы мастера по созданиию страницы), то в его свойствах есть поле Process Error Message, куда можно вписать любой свой текст. Недостаток - текст будет один на все случаи жизни.
Способ номер два - сделать перевод стандартной записи на русский (как точно - не помню, ищите, на форуме было) - например, "Такая запись уже существует", тогда для всех случаев срабатывания ORA-00001 на всех страницах пользователь будет видеть это сообщение.
Способ три - сделать свой процесс с блекджеком и куртизанками, там уже можно обрабатывать каждое исключение по-своему и писать любые тексты в переменную apex_application.g_notification.
...
Рейтинг: 0 / 0
15.01.2014, 13:55
    #38526921
Алексей_Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение
rockclimber,

Благодарю!!!
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как переименовать сообщение об ошибке, которое выдает APEX в нужное мне сообщение / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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