08.08.2012

WF: Бизнес-событие и подписка на основе потока

Выполнения workflow-потока, инициируемого бизнес-событием
Цель: при добавлении записи в кастомную таблицу отсылать уведомление автору записи.

Шаг 1. Регистрация бизнес-события

 

 
  
Шаг 2. Создание процесса в Workflow. Внимание: EventFilter соответствует наименованию созданного бизнес-события (ACCO.OracleEBS.ONT.ShipSetLinesWorkFlow.Invoke). На вкладке Node необходимо выбрать Start/End = START


Шаг 3. Рестарт всех диспетчеров запросов по маске '%потока операций', чтобы созданное бизнес-событие появилось в системе:
 Системный администратор | Параллельные |  Руководитель | Администрирование

Шаг 4. Регистрация подписки на бизнес-событие. Внимание: EventFilter соответствует наименованию созданного бизнес-события (ACCO.OracleEBS.ONT.ShipSetLinesWorkFlow.Invoke)

 

 

Шаг 5. Инициирование бизнес-события через Workflow PL/SQL API:
declare
  -- структура с параметрами
 prm_list wf_parameter_list_t;
 l_prm1         varchar2(255);
 l_prm2         number;
begin
 -- добавление параметров
 WF_EVENT.AddParameterToList( p_name => 'PARAM1',
                              p_value => l_prm1,
                              p_parameterlist => prm_list
                             );     
 WF_EVENT.AddParameterToList( p_name => 'PARAM2',
                              p_value => l_prm2,
                              p_parameterlist => prm_list
                             );   
 /* p_event_key - идентификатор бизнес-события
    Если повторится дважды, событие просто не отработет */
 WF_EVENT.RAISE(p_event_name => 'ACCO.OracleEBS.ONT.ShipSetLinesWorkFlow.Invoke'
                ,p_event_key  => 'ACCOKey1' || to_char(sysdate, 'DD.MM.YYYY HH24:MI:SS')
                ,p_parameters => prm_list
                );    
end;

Комментариев нет :