API процедур PL/SQL, ассоциированных с функциями процесса Workflow, предусматривают несколько режимов работы (параметр funcmode)
Ниже приведен пример получения значений атрибутов в блоке VALIDATE
procedure wf_custom_proc ( itemtype in varchar2 , itemkey in varchar2 , actid in number , funcmode in varchar2 , resultout in out nocopy varchar2) is begin if funcmode = 'VALIDATE' then /* валидация параметров */ end if; if funcmode = 'RUN' then /* блок, выполняемый в случае отсутствия исключений в процессе валидации */ end if; end;Функция запускается машиной WF последовательно в двух режимах: сначала VALIDATE, затем RUN. Если функция привязана к сущности WF Message, то она выполняется после нажатия любой из кнопок с действием (Result Type в сущности WF). При этом, если при проверке атрибутов пользователю требуется показать какие-либо диагностические сообщения, то это должно делаться в блоке VALIDATE. Если это будет исключение, то пользователь увидит его сразу же, а секция RUN выполнена не будет.
Ниже приведен пример получения значений атрибутов в блоке VALIDATE
if funcmode = 'VALIDATE' then -- Получение notification_id l_nid := wf_engine.context_nid; -- Получение значения атрибута по имени l_attr_val := wf_notification.GetAttrText(l_nid, 'SOME_ATTR'); if length(l_attr_val) = 0 then raise_application_error(ERROR_NUMBER, fnd_message.get_string(APPS, 'XXXX_CUSTOM_MESSAGE')); end if
Комментариев нет :
Отправить комментарий