首页  ·  知识 ·  生产制造
利用workflow发送类似数据报表内容的通知页面
网友  http://space.itpub.net/11969955/    编辑:德仔   图片来源:网络
当我们发送一个审批请求时,如果审批人在通知页面就能看到要审批的数据信息就不用登录到系统中查看相关信息了,可直接在通知中审批掉。 相关代
当我们发送一个审批请求时,如果审批人在通知页面就能看到要审批的数据信息就不用登录到系统中查看相关信息了,可直接在通知中审批掉。

相关代码如下:

创建package:

create or replace package QTESTWF as

procedure start_workflow (item_id in number,user_name in varchar2) ;
procedure get_line_detail(document_id in varchar2,
display_type in varchar2,
document in out NOCOPY varchar2,
document_type in out NOCOPY varchar2);

end QTESTWF;
/
create or replace package body QTESTWF as

procedure start_workflow (item_id in number,user_name in varchar2)
IS


l_asset_number VARCHAR2(100) :='D';
l_ItemType varchar2(100) := 'QTESTWF';--'QTESTWF';--流程内部名称
l_ItemKey varchar2(100) ;
v_url varchar2(1000) := 'http://61.144.28.248';
P_CONTENT VARCHAR2(3000) :='测试工作流';
begin

select QTESTWF_SEQ.nextval into l_ItemKey from dual;--获取序列号
wf_engine.createProcess(ItemType => l_ItemType, --流程名
ItemKey => l_ItemKey, --项目关键字
process => 'QTESTWF', --process内部名称
user_key => l_ItemKey, --用户关键字
owner_role => 'D' --流程责任人
);
--以下是参数
wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'USERNAME',--对应的都是内部名称
avalue => l_asset_number);
/*
wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'P_SUBJECT',
avalue => 'HM WF');
*/
wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'P_CONTENT',
avalue => P_CONTENT);
wf_engine.StartProcess(ItemType => l_ItemType, ItemKey => l_ItemKey);

commit;

end start_workflow;
----------------------------------------------------------------------------------------
--Get workflow attribute
----------------------------------------------------------------------------------------

procedure get_line_detail(document_id in varchar2,
display_type in varchar2,
document in out NOCOPY varchar2,
document_type in out NOCOPY varchar2) is
l_document VARCHAR2(32000) := '';
l_user_name varchar2(30);
l_org_id number := fnd_profile.value('ORG_ID');
max_lines_dsp NUMBER := 20;
l_line_count number :=0;
v_url_str varchar2(254);
v_req_url_str varchar2(254);
NL VARCHAR2(1) := fnd_global.newline;
l_item_type wf_items.item_type%TYPE;
l_item_key wf_items.item_key%TYPE;
l_doc_type varchar2(40);

cursor c_test is

select * from CMCC_FLEXFIELD_TEST ;

begin

-- max_lines_dsp:= to_number(fnd_profile.value('PO_NOTIF_LINES_LIMIT'));

if max_lines_dsp is NULL then
max_lines_dsp := 20;
end if;

l_item_type := substr(document_id, 1, instr(document_id, ':') - 1);
l_item_key := substr(document_id, instr(document_id, ':') + 1,
length(document_id) - 2);
l_user_name := wf_engine.GetItemAttrNumber(itemtype => l_item_type,
itemkey => l_item_key,
aname => 'USERNAME');


l_document := '

' || '' || '' || '' || '' ||
'' ||
'' ||
'' ||
'' || '';
for c1 in c_test loop
l_document := l_document || '' || '' ||
'' || '' ||
'' || '' ||'' ||
'';
end loop;

/*
for rec_request_header in cur_request_header loop
l_document := l_document || '' || '' ||
'' || '' ||
'' || '' ||
rec_request_header.comments || '' ||
'';
end loop;
*/
l_document := l_document ||'
' ||
'

' || l_doc_type || '测试信息

' ||
'
' ||
'

名字

' ||
'

Item ID

组织段1段2段3
' ||
c1.username || '
' || c1.inventory_item_id||
'
' ||
c1.organization_id || '
' || c1.segment1||
'
' ||
c1.segment2|| '
'||
c1.segment3 || '
' ||
rec_request_header.doc_number || '
' || rec_request_header.project_number||
'
' ||
rec_request_header.project_name || '
' || rec_request_header.require_dept||
'
' ||
rec_request_header.construct_dept|| '
';
l_document := l_document ||'

 

';

l_document := l_document ||'

' || '' || '' || '' || '' ||
'' ||
'' ||
'';
/*
for req_request_line in cur_request_line loop
l_document := l_document || '' || '' || '' ||
'' || '' ||
'';
end loop;
*/
l_document := l_document || '
' ||
'

' || l_doc_type || '行内容

' ||
'
' ||
'

事务类型

' ||
'

任务编号

支出类型帐户别名
' ||
req_request_line.tran_type_name ||
'
' ||
req_request_line.task_name || '
' || req_request_line.exp_type ||
'
' ||
req_request_line.segment1 || '
';
l_document := l_document ||'

 

';

l_document := l_document ||'

' || '' || '' || '' || '' ||
'' ||
'' ||
'' ||
'';
l_line_count :=0;
/*
for req_request_detail in cur_request_detail loop
l_line_count := l_line_count + 1;
l_document := l_document || '' || '' ||
'' || '' ||
'' || '' ||
'';
--add by YanWanJiang begin
if l_line_count >= max_lines_dsp then
l_document := l_document || '' ;
v_url_str := wf_core.translate ('WF_WEB_AGENT') || '/QINVAPR.showreqdetailinfo?l_doc_type=' || l_doc_type || '&document_id=' || l_header_id || '&org_id=' || l_org_id;

v_req_url_str := v_req_url_str || '' || '更多行信息' || '';
l_document := l_document || '

'|| NL ;
l_document := l_document || ''|| NL ;
l_document := l_document || '
' ||
'

' || l_doc_type || '物料明细

' ||
'
' ||
'

行号

' ||
'

物料编码

物料说明需求数量单位
' ||
req_request_detail.rownum || '
' || req_request_detail.item_code ||
'
' ||
req_request_detail.item_desc || '
' || req_request_detail.require_quantity ||
'
' ||
req_request_detail.tran_uom || '
' || v_req_url_str || '
';
document:=l_document;
exit;
end if;

--add by YanWanJiang end

end loop;
*/
l_document := l_document || '';

document:=l_document;
end get_line_detail;

end QTESTWF;
/

 

2,调用workflow:

Declare

l_asset_number VARCHAR2(100) :='SYSADMIN';
l_ItemType varchar2(100) := 'QTESTWF';--'QTESTWF';--流程内部名称
l_ItemKey varchar2(100) ;
v_url varchar2(1000) := 'http://61.144.28.248';
P_CONTENT VARCHAR2(32000) :='测试工作流';
begin

select QTESTWF_SEQ.nextval into l_ItemKey from dual;--获取序列号
wf_engine.createProcess(ItemType => l_ItemType, --流程名
ItemKey => l_ItemKey, --项目关键字
process => 'QTESTWF', --process内部名称
user_key => l_ItemKey, --用户关键字
owner_role => 'D' --流程责任人
);

--以下是参数
wf_engine.SetItemOwner(itemtype => l_itemtype,
itemkey => l_itemkey,
owner => 8439);

wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'USERNAME',--对应的都是内部名称
avalue => l_asset_number);

wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'SEND_EMPLOYEE',
avalue => 'D');
wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'OPEN_FORM',
avalue => 'CTESTHM:inventory_item_id=2'); --带参数调用FORM
--'QINVISSRAP:X_HEADER_ID="'||to_char(l_header_id)||'"MFG_ORGANIZATION_ID="'||to_char(l_organization_id)||'"';

wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'P_SUBJECT',
avalue => '通知汇总');

/*
wf_engine.SetItemAttrText(itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'P_CONTENT',
avalue => P_CONTENT);
*/
wf_engine.SetItemAttrText (itemtype => l_itemtype,
itemkey => l_itemkey,
aname => 'P_CONTENT',
avalue => 'plsql:QTESTWF.get_line_detail/'||l_itemtype||':'||l_itemkey);

wf_engine.StartProcess(ItemType => l_ItemType, ItemKey => l_ItemKey);

commit;

end ;

本文作者:网友 来源:网络http://space.itpub.net/11969955/
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的