Oracle APEX - сообщение об успехе отображается, если в форму не было внесено никаких изменений - PullRequest
0 голосов
/ 01 апреля 2020

На моей странице a есть процесс PL / SQL, который обновляет базу данных. Если процесс прошел успешно, я хочу отобразить сообщение об успехе. Теперь я делаю это, устанавливая свойство «Сообщение об успехе» моего процесса для элемента страницы, содержащего сообщение об успехе - &P1_SUCCESS_MSG. Я также установил свойство Error моего процесса на &P1_ERROR_MSG..

И P1_SUCCESS_MSG, и P1_ERROR_MSG устанавливаются внутри процесса. Теперь у меня возникает проблема, когда пользователь нажимает кнопку Save, активируя процесс, не меняя ничего в форме. Сообщение об успехе отображается независимо от того, были ли внесены какие-либо изменения. Мне было интересно, есть ли простой способ проверить, была ли изменена форма, и предотвратить отображение сообщения об успехе, если в базу данных не были внесены изменения

1 Ответ

0 голосов
/ 01 апреля 2020

Если отображается сообщение об успехе, это означает, что :P1_SUCCESS_MSG имеет значение. Почему? Он должен быть пустым по умолчанию и установлен только в случае успешного завершения процедуры и изменения что-то .

Для этой цели я бы создал хранимую процедуру с одним (или двумя) OUT параметрами; тот же параметр может быть использован для информирования пользователя о том, что произошло. Этот параметр OUT будет использоваться для установки значения элемента :P1_SUCCESS_MSG.

Итак, если что-то было сделано, оно скажет, например:

Процедура успешно завершена.

В противном случае,

Ничего не было сделано.

...