bps工作流預設客戶端介面中包括"待辦任務列表"、"已辦任務列表"等純流程資訊,而為了業務操作人員更全面了解任務相關的業務資訊,往往需要在任務列表中顯示工作任務相關的業務屬性資訊。
本場景適用業務表和流程表不在同乙個資料來源的部署模式,解決不同資料來源情況下流程表和業務表聯合查詢的問題,基本原理是bps引擎執行時會將業務表的資料儲存到流程庫的冗餘表中用來實現結合業務查詢。
報銷業務表
? create table expenseinfo
(
expid numeric(
18
) not
null
,
processinstid numeric(
18
) not
null
,
expname varchar(
20
) not
null
,
expmoney number not
null
,
reason varchar(
255
),
isbudgetitem char(
1
),
auditor varchar(
20
)
);
alter table expenseinfo add constraint p_exp primary key (expid);
-- add comments to the columns
comment on column expenseinfo.expid
is
'報銷單編號'
;
comment on column expenseinfo.processinstid
is
'流程例項id'
;
comment on column expenseinfo.expname
is
'報銷人'
;
comment on column expenseinfo.expmoney
is
'報銷金額'
;
comment on column expenseinfo.reason
is
'報銷原因'
;
comment on column expenseinfo.isbudgetitem
is
'是否是預算內專案'
;
comment on column expenseinfo.auditor
is
'財務審閱人'
;
插入業務資料,建立流程例項時需要輸入業務資料。引擎會根據對映關係將業務資料寫到wfbizinfo冗餘表中,關鍵**如下:
? string tablename=
"expenseinfo"
;
map bizinfo =
new
hashmap ();
bizinfo.put(
"expname"
, expenseinfoform.getexpname());
bizinfo.put(
"expmoney"
, expenseinfoform.getexpmoney());
mng.startprocessinstancewithbizinfo(processinstid,
false
,
new
object[
0
], tablename, bizinfo);
結合業務查詢關鍵**
? public
listgetusertasksbizinfo(user user,expenseinfoform expenseinfoform, pagecond pagecond)
throws
wfserviceexception
分布式查詢
sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...
分布式查詢
exec sp addlinkedserver server servera srvproduct provider sqloledb datasrc 192.168.0.28 exec sp addlinkedsrvlogin rmtsrvname servera useself false rm...
分布式查詢
sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...