Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1

ТЕМА:

Реализация машины состояний на Oracle 12 года 9 мес. назад #2634

Приходиться сталкиваться с многостадийными объектами в предметной области. Для их отображения на таблицы обычно вводят 2 поля DOC_TYPE и поле STATUS. Это поле STATUS где-то и чем-то заполняют. А при смене значения этого поля в триггерах вызывают какие-то обработчики.

Пример
Если поле статус Было 'A' а столо 'B' то выполнить Pack_1.F1.

и т.д

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Реализация машины состояний на Oracle 12 года 9 мес. назад #2635

Можно создать таблицу вида:
create table status_moving (
status_from ...
,status_to ...
,proc_num ... )

еще процедуру
status_moving_exe(p_proc_num ..., ........) is
begin
if p_proc_num=1 then
...
elsif p_proc_num=2 then
...
end if;
end;

На таблицу вешаем триггер for each row где
...
begin
select proc_num into v_proc_num from status_moving
where status_from=:old.status and status_to=:new.status;
status_moving_exe(v_proc_num,......);
exception
when no_data_found then null;
end;

При желании можно в таблице status_moving хранить имя процедуры-обработчика и запускать ее с помощью dbms_sql или execute immediate

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Реализация машины состояний на Oracle 12 года 9 мес. назад #2636

Привет всем
..хранение и обработка статусных состояний является типичной задачей систем учета и документооборота.
Для тотального решения этой и ряда других задач существует компонент Oracle Workflow(Builder,Engine,API), посл.версия 2.6. Основан на модели работ с Oracle AQ, работает в 3-х звенной архитектуре.
Стандартная документация в поставке Oracle 817,9 в разделе Oracle Integration Server

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Реализация машины состояний на Oracle 12 года 9 мес. назад #2637

Хм....
Интересует вопрос а достаточно ли он гибкий этот механизм чтобы подойти под любую задачу практики? Или же нет?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Реализация машины состояний на Oracle 12 года 9 мес. назад #2638

уверенно отвечаю - ДА ,т.к.сам на нем делал задачи.
Подробнее - Oracle817 + ApacheJServ(SunJava) +Oracle Forms6i(servlet)
код можно делать в Формсе,на Java,на PL/SQL,на JavaScript
Главное - продукт абсолютно открыт на свои API PL/SQL и можно динамически переопределять правила обработки WF-Engine.
--
К примеру, по загруженной схеме из WF-Builder процессы и статусы привязаны к статичным ролям,а в ходе выполнения вычисляется конкретный юзер или группа по заданной роли которым идет message на обработку с урлами на формсы,отчеты,web-page.... ну там много всего.. пользуй не пожалеешь! .. а таблицы с триггерами - это прошлый век

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Реализация машины состояний на Oracle 12 года 9 мес. назад #2639

Я реализовал модель финитных атоматов в Oracle.
Основное API на java. В качестве лексем используются несколько причесанные
url + реализован контроь доступа и разделение задач на уровнях:
-- состояний
-- переходов состояний
-- выполняемых задач в процессе перехода состояний.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.211 секунд