|
|
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
Приходиться сталкиваться с многостадийными объектами в предметной области. Для их отображения на таблицы обычно вводят 2 поля DOC_TYPE и поле STATUS. Это поле STATUS где-то и чем-то заполняют. А при смене значения этого поля в триггерах вызывают какие-то обработчики. Пример Если поле статус Было 'A' а столо 'B' то выполнить Pack_1.F1. и т.д Нет ли ссылок на грамотную реализацию машины состояний на Oracle? А нет ли для этого механизма в самом Oracle с какой-то версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 12:06 |
|
||
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
Можно создать таблицу вида: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 12:47 |
|
||
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
Привет всем ..хранение и обработка статусных состояний является типичной задачей систем учета и документооборота. Для тотального решения этой и ряда других задач существует компонент Oracle Workflow(Builder,Engine,API), посл.версия 2.6. Основан на модели работ с Oracle AQ, работает в 3-х звенной архитектуре. Стандартная документация в поставке Oracle 817,9 в разделе Oracle Integration Server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 12:54 |
|
||
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
2 Ekuku, а есть ли опыт его реального использования. Интересует вопрос а достаточно ли он гибкий этот механизм чтобы подойти под любую задачу практики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 12:57 |
|
||
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
уверенно отвечаю - ДА ,т.к.сам на нем делал задачи. Подробнее - Oracle817 + ApacheJServ(SunJava) +Oracle Forms6i(servlet) код можно делать в Формсе,на Java,на PL/SQL,на JavaScript Главное - продукт абсолютно открыт на свои API PL/SQL и можно динамически переопределять правила обработки WF-Engine. -- К примеру, по загруженной схеме из WF-Builder процессы и статусы привязаны к статичным ролям,а в ходе выполнения вычисляется конкретный юзер или группа по заданной роли которым идет message на обработку с урлами на формсы,отчеты,web-page.... ну там много всего.. пользуй не пожалеешь! .. а таблицы с триггерами - это прошлый век ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 13:12 |
|
||
|
Реализация машины состояний на Oracle
|
|||
|---|---|---|---|
|
#18+
Я реализовал модель финитных атоматов в Oracle. Основное API на java. В качестве лексем используются несколько причесанные url + реализован контроь доступа и разделение задач на уровнях: -- состояний -- переходов состояний -- выполняемых задач в процессе перехода состояний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2003, 17:07 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32100808&tid=1991942]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 548ms |

| 0 / 0 |
