客户提出一个需求,当点击意见审批按钮后,针对用户未填写意见的返回一个提示信息。
效果如下:
实现思路:在存储过程中使用自定义异常抛出信息
实现方法:
1.建一个存储过程
PROCEDURE exception_deal(itemtype IN VARCHAR2,
itemkey IN VARCHAR2,
actid IN NUMBER,
funcmode IN VARCHAR2,
resultout OUT NOCOPY VARCHAR2) is
ITEM_TYPE_ VARCHAR2(100) :=itemtype;
ITEM_KEY_ VARCHAR2(100) :=itemkey;
RESULT_ VARCHAR2(100); --定义的返回按钮值
SUGGESTION_ cux_wf_pa_contract_approve.approve_suggestion%TYPE;--定义的审批意见值
BEGIN
--获取点击按钮值
SELECT A.TEXT_VALUE
INTO RESULT_
FROM wf_notification_attributes A, wf_notifications N
WHERE N.MESSAGE_TYPE = ITEM_TYPE_
AND N.STATUS = 'OPEN'
AND N.ITEM_KEY = ITEM_KEY_
AND A.NOTIFICATION_ID = N.NOTIFICATION_ID
AND A.NAME = 'RESULT';
--获取审批意见
SUGGESTION_ := wf_engine.getitemattrtext(itemtype => itemtype,
itemkey => itemkey,
aname => 'APPROVE_SUGGESTION');
IF RESULT_ = 'ADV_APPROVE' AND (SUGGESTION_ IS NULL OR SUGGESTION_='') THEN
Raise_Application_Error(-20002,'审批意见为空,请填写审批意见...');
END IF;
END exception_deal;
2.在工作流通知里调用该存储过程
注:
Raise_Application_Error --将自定义的异常返回的客户端
Raise --自定义异常