如何为workflow单据类型定义一个form属性,在notify中通过这个属性打开表单
表单名称:MYFORM
数据块名称:MYBLOCK
第一步:
在表单中加入参数:WF_ITEMKEY
MYBLOCK的数据来源中必须有WF_ITEMKEY这个字段。
修改或添加数据块级触发器:WHEN-NEW-BLOCK-INSTANCE
if :Parameter.wf_itemkey is not null
then
declare
ls_where varchar2(1000);
ls_this_where varchar2(1000);
begin
ls_where := GET_BLOCK_PROPERTY(MYBLOCK,DEFAULT_WHERE);
if ls_where is null
then
ls_this_where := '1=1 ';
else
ls_this_where := ls_where;
end if;
ls_this_where := ls_this_where||' and (wf_itemkey = :Parameter.wf_itemkey)';
SET_BLOCK_PROPERTY(MYBLOCK',DEFAULT_WHERE,LS_THIS_WHERE);
app_find.find('MYBLOCK');
SET_BLOCK_PROPERTY('MYBLOCK',DEFAULT_WHERE,LS_WHERE);
end;
end if;
第二步:
在plsql的包中设计:
-- 创建工作流
wf_engine.createprocess(
itemtype => lis_itemtype , -- in varchar2
itemkey => lis_itemkey , -- in varchar2
process => lis_wfprocess , -- in varchar2 default ’’
user_key => ls_user_key , -- in varchar2 default null
owner_role => ls_owner_role ); -- in varchar2 default null
-- 打开表单MYFORM
wf_engine.setitemattrtext(
itemtype => lis_itemtype , -- in varchar2
itemkey => lis_itemkey , -- in varchar2
aname => 'OPEN_FORM_COMMAND' , -- in varchar2
avalue => 'MYFORM:WF_ITEMKEY="' -- in varchar2
|| lis_itemkey
|| '"'
);
--启动工作流
wf_engine.startprocess(
itemtype => lis_itemtype , -- in varchar2
itemkey => lis_itemkey ); -- in varchar2
第三步:
在workflow builder中设计:
增加属性,名称为OPEN_FORM_COMMAND 类型为: Form
在message中,将此属性拉过去就好了,不必写在message body中。
第四步:
在notify中,应该可以会出现“OPEN_FORM_COMMAND”,选中点击就可以链接到表单了。