Обновить элемент приложения после вставки / обновления базы данных - PullRequest
0 голосов
/ 06 октября 2019

Когда столбец обновляется в базе данных (после вставки / обновления), я также хочу обновить элемент приложения в моем приложении APEX. У меня есть таблица producten (продукты) с 2 столбцами; voorraad (акции) и min_voorraad (min_stock).

Когда запас ниже, чем min_stock, для сотрудника будет уведомление. Но он обновляется только после обновления страницы вручную. Это - это колокол уведомлений, и если запас был обновлен, количество уведомлений также должно обновляться без обновления всей страницы.

Я пытался использовать его с триггером,но я не знаю, как обновить элемент приложения. Это код триггера:

CREATE OR REPLACE TRIGGER VOORRAAD_CHANGE_NOTIFICATION_TRIGGER
  AFTER INSERT OR UPDATE ON PRODUCTEN
BEGIN
  SELECT COUNT(*) INTO :NOTIFICATIONS_COUNT FROM PRODUCTEN WHERE VOORRAAD < MIN_VOORRAAD;
END;

Имя элемента приложения: NOTIFICATIONS_COUNT

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Есть два способа сделать это.

  1. websockets
  2. автоматическое обновление с таймером

Websockets будетбыть более привлекательной альтернативой, но она требует гораздо больше кодирования и инфраструктуры (Node.js). Я хотел бы пойти с таймером JavaScript, который обновляет элемент или область, содержащую элемент. Это было объяснено гораздо лучше, чем я когда-либо мог сделать, например:

https://community.oracle.com/thread/4182574

APEX 5.1 Область автоматического обновления с переменным временем обновления

Надеюсь, это поможет!

0 голосов
/ 06 октября 2019

Если я понимаю ваш вопрос, вы хотите получить доступ к переменным APEX из скомпилированного кода PL / SQL. Этот блог и эти документы могут помочь.

Скотт прав - это лучше сделать из APEX, используя Page Process. Извините, я пропустил часть об обновлении страницы и сосредоточился только на триггере. TY @Scott за указание на это. Страница процесса в APEX документы здесь .

Кроме того, вы действительно должны быть осторожны с использованием триггеров, в отличной статье Тома Кайта, Проблема с триггерами .

...