




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、The best solution forhow to develop WEB application on .Net quickly and efficientlyUCML工作流系統(tǒng)與現(xiàn)有應(yīng)用系統(tǒng)集成實(shí)現(xiàn)方案說明金富瑞(北京)科技有限公司Goldframe Technologies Co., Ltd.一 總體說明UCML.Net工作流系統(tǒng)是國內(nèi)領(lǐng)先的工作流平臺(tái),涵蓋了從流程開發(fā)、發(fā)布、管理配置到運(yùn)行、監(jiān)控的整個(gè)過程。UCML工作流系統(tǒng)主要包括可視化的流程設(shè)計(jì)環(huán)境、獨(dú)立的工作流引擎服務(wù)、WEB客戶端管理、可視化的流程監(jiān)控、流程套路生產(chǎn)線幾個(gè)部分,是.Net領(lǐng)域用戶最多,覆蓋面最廣的工作流平臺(tái)。
2、一方面,UCML工作流系統(tǒng)與UCML平臺(tái)其它部分(業(yè)務(wù)單元開發(fā),Web報(bào)表)無縫集成,可以完成復(fù)雜的業(yè)務(wù)處理及流程流轉(zhuǎn);另一方面,UCML工作流系統(tǒng)與業(yè)務(wù)之間采用松耦合設(shè)計(jì),不僅可以與UCML業(yè)務(wù)系統(tǒng)集成,還可以與其它現(xiàn)成的應(yīng)用系統(tǒng)實(shí)現(xiàn)無縫集成。UCML工作流在與其它應(yīng)用系統(tǒng)集成時(shí),一般有兩種方式:第一種:保留UCML現(xiàn)有的組織機(jī)構(gòu)、用戶及權(quán)限體系第二種:完全屏蔽UCML提供的組織機(jī)構(gòu)、用戶及權(quán)限體系,完全采用客戶原有的組織機(jī)構(gòu)權(quán)限體系。對(duì)于第一種方式,需要另外實(shí)現(xiàn)UCML系統(tǒng)與客戶現(xiàn)有應(yīng)用系統(tǒng)之間的數(shù)據(jù)同步,具體方法可采用程序同步方式,在這里就不詳細(xì)介紹了。下面主要介紹一下采用第二種方式時(shí)的
3、處理方法。二 UCML Workflow會(huì)話編程接口UCML Workflow 提供了WorkFlow.WorkFlowSession會(huì)話類來訪問工作流引擎, WorkFlow.WorkFlowSession以.Net Remoting服務(wù)形式形式存在于工作流引擎的獨(dú)立進(jìn)程中,客戶端可以創(chuàng)建WorkFlow.WorkFlowSession的Client端來來調(diào)用服務(wù)端的接口。 創(chuàng)建工作流會(huì)話對(duì)象WorkFlow.WorkFlowSession FlowSession = (WorkFlow.WorkFlowSession)Activator.GetObject(typeof(WorkFlow.
4、WorkFlowSession), tcp:/+WorkFlow.UCMLInitEnv.WorkflowEngineAddr+:+WorkFlow.UCMLInitEnv.WorkflowEnginePort+/WorkFlowSession); 程序啟動(dòng)工作流程 public Guid CreateInstance(string FlowID,Object UserOID,Object PostnOID, Object DivisionOID,Object ORGOID, bool startNow) 通過調(diào)用CreateInstance函數(shù),可以啟動(dòng)指定的工流程。 返回值:流程實(shí)例句柄。
5、參數(shù)名稱類型參數(shù)說明FlowIDstring要啟動(dòng)的流程編號(hào) UserOIDObject起動(dòng)流程的用戶OID,實(shí)際類型為GUIDPostnOIDObject起動(dòng)流程的員工OID,實(shí)際類型為GUIDDivisionOIDObject起動(dòng)流程的員工所在部門的OID,實(shí)際類型為GUIDORGOIDObject起動(dòng)流程的員工所在組織的OID,實(shí)際類型為GUIDstartNowBool=true 流程是馬上啟動(dòng); =false 流程暫不啟動(dòng),要啟動(dòng)流程需調(diào)用StartInstance函數(shù),這種情況一般用于在業(yè)務(wù)(如客戶訂單)提交成功后,先寫入訂單號(hào)到流程實(shí)例中,然后在啟動(dòng)流程。 向流程全局?jǐn)?shù)據(jù)寫入數(shù)據(jù)p
6、ublic void WriteFlowData(string FlowID, Object InstanceID, string FieldName,Object Value)參數(shù)名稱類型參數(shù)說明FlowIDstring數(shù)據(jù)項(xiàng)所屬的流程編號(hào) InstanceIDObject流程的實(shí)例句柄,實(shí)際類型為GUIDFieldNamestring數(shù)據(jù)的屬性名稱ValueObject數(shù)據(jù)的屬性的值 從流程全局?jǐn)?shù)據(jù)讀出數(shù)據(jù)public Object ReadFlowData(string FlowID, Guid InstanceID, string FieldName)返回值:讀取數(shù)據(jù)屬性的值參數(shù)名稱類
7、型參數(shù)說明FlowIDstring數(shù)據(jù)項(xiàng)所屬的流程編號(hào) InstanceIDObject流程的實(shí)例句柄,實(shí)際類型為GUIDFieldNamestring數(shù)據(jù)的屬性名稱 向流程局部數(shù)據(jù)寫入數(shù)據(jù)public void WriteActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName,Object Value)參數(shù)名稱類型參數(shù)說明FlowIDstring數(shù)據(jù)項(xiàng)所屬的流程編號(hào) InstanceIDObject流程的實(shí)例句柄,實(shí)際類型為GUIDActivityIDstring活動(dòng)節(jié)點(diǎn)的編號(hào)FieldN
8、amestring數(shù)據(jù)的屬性名稱ValueObject數(shù)據(jù)的屬性的值 從流程局部數(shù)據(jù)讀出數(shù)據(jù)public Object ReadActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName)返回值:讀取數(shù)據(jù)屬性的值參數(shù)名稱類型參數(shù)說明FlowIDstring數(shù)據(jù)項(xiàng)所屬的流程編號(hào) InstanceIDObject流程的實(shí)例句柄,實(shí)際類型為GUIDActivityIDstring活動(dòng)節(jié)點(diǎn)的編號(hào)FieldNamestring數(shù)據(jù)的屬性名稱 完成已分配的任務(wù)public string FinishTask
9、(string strAssignTaskID)FinishTask代表設(shè)置已分配出去的任務(wù)已完成返回值:提示信息參數(shù)名稱類型參數(shù)說明strAssignTaskIDstring分配任務(wù)的唯一標(biāo)志號(hào) 設(shè)置任務(wù)結(jié)果及狀態(tài)public void SetTaskResolution(Guid TaskID,TTaskResolution Resolution)設(shè)置任務(wù)執(zhí)行結(jié)果,代表任務(wù)執(zhí)行完畢參數(shù)名稱類型參數(shù)說明TaskIDGuid任務(wù)的Key值 ResolutionTtaskResolution任務(wù)的狀態(tài)UNRESOLVED,SUCCESS,FAIL,EXCEPTION 含義分別為未處理,成功,失敗
10、,異常 編寫節(jié)點(diǎn)分支條件UCML Workflow用abstract public class Transition類來描述一個(gè)分支條件類屬性名稱類型可見度屬性說明TransResultBooleanprotectedTransResult=true 則代表流程分支條成立TransResult=false 則代表流程分支條不成成立 FromActivityWorkFlowActivitypublic分支來源節(jié)點(diǎn)對(duì)象實(shí)例ToActivityWorkFlowActivitypublic分支目標(biāo)節(jié)點(diǎn)對(duì)象實(shí)例FlowModelWorkFlowModel的子類public其實(shí)是流程模型的實(shí)例對(duì)象,通過它
11、可以訪問流程所有屬性(或狀態(tài))數(shù)據(jù)方法名稱類型可見度方法說明OutgoingCondition()boolpublicvirtual public bool OutgoingCondition()在UCML Workflow里,節(jié)點(diǎn)的一條流出分支是否成立完全取決于這個(gè)函數(shù),編程人員員可以它的子類里編寫它的具體實(shí)現(xiàn)代碼,在編寫代碼時(shí)可以結(jié)合流程的狀態(tài)數(shù)據(jù)。在這函數(shù)中一定要設(shè)置TransResult的值,也就是說如果TransResult=true 分支成,否則分支不成立,也就不走這條分支。IncomingConditionboolpublicvirtual public bool Incomin
12、gCondition()OutgoingCondition()這函數(shù)是在Transition的子類中已覆蓋函數(shù)形式實(shí)現(xiàn),在UCML環(huán)境里的流出條件編輯,就是實(shí)現(xiàn)此函數(shù)。如下圖示: 9. 編程實(shí)現(xiàn)智能任務(wù)分配wm_assign()UCML Workflow提供回調(diào)函數(shù),為開發(fā)者提供完成復(fù)雜分配的可能,詳見回調(diào)函數(shù)接口 10. 終止流程方法名稱類型可見度方法說明Abort ()voidpublicpublic void Abort(string FlowID, Guid InstanceID)終止某個(gè)流程實(shí)例 9. 掛起流程方法名稱類型可見度方法說明Pause ()voidpublicpublic
13、 virtual void Pause()暫時(shí)掛起一個(gè)流程 10. 喚醒流程方法名稱類型可見度方法說明Resume ()voidpublicpublic void Resume(string FlowID, Guid InstanceID)重新運(yùn)轉(zhuǎn)流程 11. 節(jié)點(diǎn)手動(dòng)跳轉(zhuǎn)方法名稱類型可見度方法說明GotoActivity ()voidpublicpublic void GotoActivity(string FlowID, Guid InstanceID,string FromActivityID,string ToActivityID,string Performers)作用 : 流程跳轉(zhuǎn)
14、FlowID:流程IDInstanceID:流程實(shí)例句柄FromActivityID:來源活動(dòng)名稱ToActivityID:目標(biāo)活動(dòng)名稱Performers:執(zhí)行人的群組串. 回退任務(wù)/ / 回退任務(wù)/ / 任務(wù)IDpublic void Rollback(Guid TaskID) 回收任務(wù)/ / 收回任務(wù)/ / 任務(wù)ID 獲取某個(gè)活動(dòng)節(jié)點(diǎn)執(zhí)行人/ / 獲取某個(gè)活動(dòng)節(jié)點(diǎn)執(zhí)行人 / / 活動(dòng)節(jié)點(diǎn)ID / public string GetActivityPerformer( string ActivityID) 獲取當(dāng)前節(jié)點(diǎn)即將流向的目標(biāo)節(jié)點(diǎn),如果是并發(fā)輸出將會(huì)多個(gè)流向。用于在當(dāng)前節(jié)點(diǎn)完成時(shí),馬
15、上選擇下一節(jié)點(diǎn)執(zhí)行人 / / 獲取當(dāng)前節(jié)點(diǎn)即將流向的目標(biāo)節(jié)點(diǎn),如果是并發(fā)輸出將會(huì)多個(gè)流向 / 用于在當(dāng)前節(jié)點(diǎn)完成時(shí),馬上選擇下一節(jié)點(diǎn)執(zhí)行人 / / 流程ID / 實(shí)例ID / 活動(dòng)ID / 返回要輸出的節(jié)點(diǎn)ID數(shù)組 public string GetOutgoingActivitys(string FlowID, Guid InstanceID, string ActivityID) 獲取節(jié)點(diǎn)狀態(tài) / / 獲取節(jié)點(diǎn)狀態(tài) / / / / / public int GetActivityStatus(string FlowID, Object InstanceID, string Activity
16、ID) 修改節(jié)點(diǎn)狀態(tài) / / 修改節(jié)點(diǎn)狀態(tài) / / / / / public void ChangeActivityStatus(string FlowID, Object InstanceID, string ActivityID, int ActivityStatus) 不結(jié)束當(dāng)前節(jié)點(diǎn),而激活下一節(jié)點(diǎn)/ / 不結(jié)束當(dāng)前節(jié)點(diǎn),而激活下一節(jié)點(diǎn) / / 流程ID / 流程實(shí)例ID / 流轉(zhuǎn)到活動(dòng)ID / 來自活動(dòng)ID / 流轉(zhuǎn)到活動(dòng)節(jié)點(diǎn)執(zhí)行人 public void GotoActivityNotFinishTask(string FlowID, Guid InstanceID, string
17、FromActivityID, string ToActivityID, string Performers) 完成已分配的任務(wù),但不流轉(zhuǎn) / / 完成已分配的任務(wù),但不流轉(zhuǎn) / / 工作流活動(dòng)節(jié)點(diǎn)對(duì)象 / public string FinishTaskNotRun(WorkFlowActivity Activity) 加簽或者轉(zhuǎn)簽/ / 加簽或者轉(zhuǎn)簽/ / 流程ID/ 實(shí)例ID/ 任務(wù)ID/ 當(dāng)前用戶OID/ 執(zhí)行人/ 按照順序執(zhí)行/ true:加簽;false:轉(zhuǎn)簽/ / 消息類型/ 消息內(nèi)容 public void AddSignPerformer(string FlowID, Gui
18、d InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers, bool fSignOneByeOne, bool InsertBefore, bool IsDeleteSigner, int MessageType,string MessageContent) 協(xié)辦或會(huì)簽/ / 協(xié)辦或會(huì)簽 / / 流程ID / 實(shí)例ID / 任務(wù)ID / 當(dāng)前用戶OID / 執(zhí)行人 / 消息類型 / 消息內(nèi)容 / 3:協(xié)辦;1:會(huì)簽 public void AssignSignPerformer(string Flo
19、wID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers,int MessageType, string MessageContent,int TaskKind) 手工正常分配任務(wù)/ / 手工正常分配任務(wù)/ / / public void MansualAssignTask(string TaskTicketOID,string Performer) 分配參閱任務(wù)/ / 分配參閱任務(wù)/ / / public void MansualAssignReadTask(string Task
20、TicketOID,string Performer) 悔簽任務(wù),對(duì)在任務(wù)分配表AssignTask中acceptFlag置為1的標(biāo)記設(shè)為4悔簽/ / 悔簽任務(wù),對(duì)在任務(wù)分配表AssignTask中acceptFlag置為1的標(biāo)記設(shè)為4悔簽/ / public void RepentSignforTask(string assignTaskID) 任務(wù)跳回到執(zhí)行人 / / 任務(wù)跳回到執(zhí)行人 / / 流程ID / 流程實(shí)例句柄 / 節(jié)點(diǎn)ID public void TaskReturn(string FlowID, Guid InstanceID, string ActivityID) 獲取某個(gè)
21、已完成節(jié)點(diǎn)的執(zhí)行人/ / 獲取某個(gè)已完成節(jié)點(diǎn)的執(zhí)行人 / / 流程ID / 流程實(shí)例句柄 / 節(jié)點(diǎn)ID / 返回執(zhí)行人OID數(shù)組 public Guid GetExecuteUser(string FlowID, Guid InstanceID, string ActivityID) 喚醒已完成的任務(wù)/ / 喚醒已完成的任務(wù) / / public void WakeFinishedAssignTask(string AssignTaskOID) 12. 任務(wù)超時(shí)處理及編程UCML Workflow 的是否超時(shí)由下圖的完成期限和延長時(shí)間兩個(gè)屬性決定: 當(dāng)完成期限不填內(nèi)容時(shí),代表這個(gè)活動(dòng)節(jié)點(diǎn)產(chǎn)生的
22、任務(wù)沒有時(shí)間限制延長時(shí)間代表完成期限倒了之后,還可以再延長多少時(shí)間l 即將超時(shí)處理當(dāng)完成期限到了之后,會(huì)回調(diào)wm_willtimeout函數(shù),如果想在此時(shí)放個(gè)郵件通知或短信,就可在wm_willtimeout函數(shù)內(nèi)調(diào)用。l 超時(shí)處理同樣的當(dāng)完成期限到了之后,如果有延長時(shí)間,而且延長時(shí)間也到了,會(huì)回調(diào)wm_deadline函數(shù),如果想在此時(shí)放個(gè)郵件通知或者短信,就可在wm_deadline函數(shù)內(nèi)調(diào)用。如下圖示: 如果任務(wù)在截止期限和延長時(shí)間內(nèi)都沒有完成,此時(shí)任務(wù)做超時(shí)處理,流程是繼續(xù)流轉(zhuǎn)還是停止由截止期限到達(dá)時(shí)系統(tǒng)行為這個(gè)屬性決定,如為SYNCHR(同步),則流程停在這里,如果為ASYNCHR(
23、異步) 則流程繼續(xù)流轉(zhuǎn)。三 UCML工作流開放性介紹UCML 引擎底層框架的基類源碼不開放,包括引擎調(diào)度代碼和流程類、活動(dòng)類和分支類基類代碼。而根據(jù)定義可以直接生成引擎源碼都是開放的,可以在這些源碼的框架擴(kuò)展時(shí)刻(回調(diào)函數(shù))之內(nèi)注入C#代碼來進(jìn)行,如下面活動(dòng)節(jié)點(diǎn)代碼的時(shí)刻函數(shù)任務(wù)分配時(shí)刻函數(shù)override public void wm_assign(Object taskTicketID,Object UserList,ref Object AssignUserList,ref int TaskKindList,Boolean reassignFlag)任務(wù)分配后時(shí)刻函數(shù)override p
24、ublic void wm_afterAssignTask(Object assignTaskID,Object UserOID) base.wm_afterAssignTask(assignTaskID,UserOID);任務(wù)分配前時(shí)刻函數(shù)override public void wm_beforeAssignTask(SysDBModel.AssignTaskInfo AssignTaskInfo)任務(wù)完成時(shí)刻函數(shù)override public void wm_afterTaskFinish(Object taskTicketID,TTaskResolution TaskResolutio
25、n)任務(wù)超時(shí)時(shí)刻函數(shù)override public void wm_deadline(Object taskTicketID)任務(wù)完成規(guī)則函數(shù)override public bool wm_finishTaskRule(SysDBModel.TaskTicketInfo taskTicketInfo) return false;任務(wù)創(chuàng)建函數(shù)override public void wm_createTask(SysDBModel.TaskTicketInfo taskTicketInfo)任務(wù)回滾前函數(shù)override public void wm_beforerollback(Object
26、taskTicketID)任務(wù)回滾后函數(shù)override public void wm_afterrollback(Object taskTicketID)override public void wm_onactivate()override public void wm_willtimeout(SysDBModel.TaskTicketInfo taskTicketInfo)override public bool wm_activityInComeCondi() return false; 四 集成方案在采用客戶已有的人員權(quán)限體系時(shí),主要用到UCML工作流系統(tǒng)的可視化流程設(shè)計(jì)環(huán)境、工作流
27、引擎服務(wù)、工作流標(biāo)準(zhǔn)表結(jié)構(gòu)、流程API、可視化的流程監(jiān)控(可選)等。在集成時(shí)可能需要修改客戶已有的Web系統(tǒng)或表的結(jié)構(gòu),主要是修改以下地方:l 修改人員信息表l 引入流程接口(UCML工作流API)l 客戶登陸會(huì)話的改變l 加入工作流引擎需要的初始化程序l 增加一個(gè)待辦事宜模塊l 引入平臺(tái)中的可視化的流程監(jiān)控模塊(如果需要可視化流程監(jiān)控那么就需要引入)在平臺(tái)中主要有以下注意點(diǎn):l 在平臺(tái)中設(shè)計(jì)工作流模型l 添加流程狀態(tài)數(shù)據(jù)l 在任務(wù)分配函數(shù)-wm_assign()中設(shè)置任務(wù)的執(zhí)行人l 修改人工節(jié)點(diǎn)上的業(yè)務(wù)標(biāo)識(shí)符為為自己的頁面1、 l修改人員信息表需要在客戶現(xiàn)有的用戶表(存儲(chǔ)登錄帳號(hào)、密碼表)中
28、增加一個(gè)Guid類型的字段,這個(gè)字段的值唯一標(biāo)記一個(gè)用戶,不影響客戶現(xiàn)有的應(yīng)用體系,起到與UCML工作流銜接作用。這個(gè)字段的字段名命名規(guī)范為:客戶表名+OID,即“客戶表名OID”,字段類型為GUID類型,在MSSQL Server中是Uniqueidentifier,Oracle中為VARCHAR類型。在客戶業(yè)務(wù)系統(tǒng)中客戶的登錄ID代表客戶的身份,如果整合中客戶表中有現(xiàn)存的數(shù)據(jù)需要手工給“客戶表名OID”賦值;另外,在增加用戶的程序中要同時(shí)給“客戶表名OID”賦值。2、 l引入流程接口(UCML工作流API)l 在客戶現(xiàn)有系統(tǒng)的工程文件中引入U(xiǎn)CML工作流API,并引用一個(gè)專門為第三方業(yè)務(wù)開
29、發(fā)包裝的接口源程序WorkflowClient.cs。l 相關(guān)工作流API:DBLayer.dll,SysDBModel.dll,UCMLBase.dll,WorkFlow.dlll 把Workflowbin 目錄下的UCMLConf.xml,DBLayer.xml文件拷貝到客戶工程的bin目錄下,注意:如果不是在客戶工程的本機(jī)運(yùn)行工作流引擎,則需要把UCMLConf.xml文件中引用工作流引擎地址的IP改為運(yùn)行工作流引擎主機(jī)的IP地址。3、 l客戶登陸會(huì)話的改變?cè)谟脩舻顷懙某绦蛑?,在取得用戶表中各?xiàng)數(shù)據(jù)時(shí),把用戶表中新增的字段也讀出來,并把該項(xiàng)也放入用戶登陸會(huì)話中。4、 l加入工作流引擎需要
30、的初始化程序在使用客戶的應(yīng)用程序中與工作流引擎打交道之前的任意時(shí)刻加入如下程序:UCMLCommon.UCMLInitEnv.fInServer=true;UCMLCommon.UCMLInitEnv.LoadEnvVariable();new DBLayer.LogicDBModel();UCMLCommon.UCMLLogicDBModelApp x = new UCMLCommon.UCMLLogicDBModelApp();x.PrepareModel();5、 l增加一個(gè)待辦事宜模塊待辦事宜也叫待辦任務(wù)。需要客戶自己新增一個(gè)待辦事宜模塊,其數(shù)據(jù)來源是UCML提供的任務(wù)分配表Assig
31、nTask,開發(fā)者可根據(jù)記錄(任務(wù))的完成與否狀態(tài)過濾數(shù)據(jù)到待辦任務(wù)模塊內(nèi)。6、 l引入平臺(tái)中的可視化的流程監(jiān)控模塊(如果需要可視化流程監(jiān)控那么就需要引入)可視化流程監(jiān)控的頁面在平臺(tái)中的業(yè)務(wù)模塊是:BPO_FlowTrace可以將BPO_FlowTrace相關(guān)文件拷貝到項(xiàng)目下:BPO_FlowTrace.aspxBPO_FlowTrace.aspx.csBPO_FlowTrace.asmxBPO_FlowTrace.asmx.csBPO_FlowTrace.htc7、 l在平臺(tái)中設(shè)計(jì)工作流模型在平臺(tái)中設(shè)計(jì)工作流模型,可以參考“工作流設(shè)計(jì)手冊(cè)”。8、 l添加流程狀態(tài)數(shù)據(jù)UCML工作流引擎和業(yè)務(wù)之
32、間是松耦合處理模式,工作流和業(yè)務(wù)之間是通過流程狀態(tài)數(shù)據(jù)進(jìn)行交互。流程狀態(tài)數(shù)據(jù)是指工作流在運(yùn)轉(zhuǎn)過程中流程流轉(zhuǎn)所需要的保存在流程實(shí)例中的數(shù)據(jù),一般有三類業(yè)務(wù)數(shù)據(jù)要保存在流程中,一是業(yè)務(wù)單據(jù)的關(guān)鍵字段,用它可以決定一個(gè)任務(wù)對(duì)應(yīng)的業(yè)務(wù)單據(jù)號(hào),在UCML里一般把表單主鍵存到流程里;二是決定流程分支走向的數(shù)據(jù),有可能是領(lǐng)導(dǎo)意見,也有可能是單據(jù)金額,這些數(shù)據(jù)是為了工作流引擎內(nèi)部調(diào)用的;三是流程執(zhí)行人信息。流程和業(yè)務(wù)之間的狀態(tài)數(shù)據(jù)交互方法很簡(jiǎn)單,如下所示:寫入流程狀態(tài)數(shù)據(jù):即把業(yè)務(wù)的數(shù)據(jù)寫入到流程中去,調(diào)用的方法是WriteFlowData;讀出流程狀態(tài)數(shù)據(jù):即把流程狀態(tài)讀出來賦給業(yè)務(wù),調(diào)用的方法是ReadF
33、lowData。寫入流程狀態(tài)數(shù)據(jù)一般在數(shù)據(jù)提交時(shí)進(jìn)行,讀出流程狀態(tài)數(shù)據(jù)一般在初始化時(shí)進(jìn)行,讀時(shí)可以把流程狀態(tài)數(shù)據(jù)賦給業(yè)務(wù)中的某個(gè)屬性,以方便業(yè)務(wù)中調(diào)用。9、 在任務(wù)分配函數(shù)-wm_assign()中設(shè)置任務(wù)的執(zhí)行人在工作流中任務(wù)分配的方式有幾種:通過群組配置分配任務(wù)回調(diào)函數(shù)分配任務(wù)手工執(zhí)行執(zhí)行人由于組織機(jī)構(gòu)等均不采用平臺(tái)自帶的組織框架,所以無法采用“通過群組配置分配任務(wù)”的方式,只能采用“回調(diào)函數(shù)分配任務(wù)”或10、 自己實(shí)現(xiàn)執(zhí)行人群組解析接口,可以繼續(xù)使用基于配置的任務(wù)分配基于流程模型的執(zhí)行人配置可以避免在wm_assign里寫程序做任務(wù)分配,但必須必需特定某個(gè)組織機(jī)構(gòu),在這個(gè)組織機(jī)構(gòu)基礎(chǔ)之上
34、可以定義群組,來描述人員、部門和崗位集合,也可以定義相對(duì)執(zhí)行人如申請(qǐng)人的部門主管、申請(qǐng)人公司總經(jīng)理等,只要實(shí)現(xiàn)自己的群組解析接口,就可以自己的群組串配置UCML的工作流執(zhí)行人的字段里,就可以實(shí)現(xiàn)基于配置的任務(wù)分配實(shí)現(xiàn)步驟如下:u 自定義類實(shí)現(xiàn)如下接口 public interface IGroupParser Object UserOIDList(string GroupStr, Object Starter, Object StartPostn, Object StartDivision, Object StartORG, Object Performer, Object PerformerPostn, Object PerformerDivision, Object PerformerORG); Object UserOIDList(string GroupStr); / / 根據(jù)組定義獲取用戶列表/ / 群組字符串/ 流程啟動(dòng)者GUID / 流程啟動(dòng)崗位GUID /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 231-2024 氧化鎵單晶片X 射線雙晶搖擺曲線半高寬測(cè)試方法
- T-ZMDS 10022-2024 光學(xué)脊柱測(cè)量及姿態(tài)評(píng)估設(shè)備
- 二零二五年度名義購房代持合同中的房產(chǎn)繼承與轉(zhuǎn)讓安排
- 2025年度高品質(zhì)車位租賃與社區(qū)設(shè)施管理合同
- 二零二五年度安全生產(chǎn)評(píng)價(jià)資質(zhì)借用服務(wù)合同
- 2025年度高速公路監(jiān)控系統(tǒng)維保服務(wù)協(xié)議雙聯(lián)
- 二零二五年度解除勞動(dòng)合同通知書及員工離職后商業(yè)保險(xiǎn)權(quán)益處理及終止協(xié)議
- 2025年度電力系統(tǒng)設(shè)備租賃合同模板
- 2025年美業(yè)美容儀器銷售代表入職合同
- 二零二五年度淘寶平臺(tái)商家入駐信息保密協(xié)議
- 2024年煉鋼工職業(yè)技能競(jìng)賽理論考試題庫500題(含答案)
- 人教版(2024)六年級(jí)全一冊(cè) 第18課 土壤濕度控制好
- 三年級(jí)下冊(cè)信息技術(shù)蘇科版 6.1設(shè)計(jì)數(shù)字作品第一課時(shí) 教案
- 20以內(nèi)的加法口算練習(xí)題4000題 284
- 單位工程施工進(jìn)度計(jì)劃橫道圖表
- Nikon尼康D3100中文說明書
- 2023年廣西職業(yè)院校技能大賽高職組《Python程序開發(fā)》賽項(xiàng)競(jìng)賽樣題
- LY/T 3141-2024文物建筑木構(gòu)件檢測(cè)方法
- 08J907 潔凈廠房建筑構(gòu)造
- 財(cái)務(wù)管理學(xué)(第10版)課件 第1章 總論
- 2024年南京旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫附答案
評(píng)論
0/150
提交評(píng)論