Teamplate (現 Captaris Workflow) 是基於 .NET 的企業級工作流引擎,理解其核心對象模型是開發基礎:
業務流程的抽象定義,包含:
比喻:Model 如同「類」,定義流程結構與規則。
基於 Model 創建的具體業務流程實例。
Model 中具體業務步驟,如:創建訂單 → 審批 → 採購合同 → 倉庫收貨 → 財務付款。
在 Captaris Workflow Client 中新建/編輯 Model,進入可視化設計器。
| 功能 | 實現方式 |
|---|---|
| 流程拓撲設計 | 拖拽 Task、連線 Link、定義 XML 數據對象關鍵字段 |
| 業務規則配置 | 雙擊連線進入規則向導,或在事件中編寫代碼 |
| 任務執行權限 | 設置 Task 的 ResponsibleId 屬性指定處理人/角色 |
| 標準 Actions | BizTalk、Core、Office、SharePoint、RightFax 等開箱即用 |
| 自定義 Actions | 使用 Captaris SDK 開發,如自動郵件、任務分攤、系統集成 |
每個 Task 擁有生命週期事件:Ready、Complete、Execute、Failed、Overdue、Reset,可在其中編寫業務邏輯或調用 Actions。
Teamplate.BLL.BSession bSess = new Teamplate.BLL.BSession();
bSess.Connect("", ""); // 域帳號密碼或當前用戶
string token = bSess.GetToken(); // 加密認證令牌
bSess.Dispose();
Token 是後續所有操作的憑證,必須設置給 BProcess 對象。
int folderId = TeamplateLib.GetFolderId("Processes");
int modelId = TeamplateLib.GetModelId("Purchase Order");
int modelOwner = TeamplateLib.GetModelOwner(modelId);
int userId = TeamplateLib.GetUserId(username);
BProcess process = new BProcess();
process.SetSessionToken(token); // 關鍵:設置認證令牌
int processId = process.Add(poNo, folderId, modelOwner, modelId);
process.Load(processId);
int taskId = process.GetNextTaskID(modelOwner, BProcess.TaskStatus.Ready);
process.UpdateTask(processId, taskId, DateTime.Today.AddDays(7), userId, "Normal");
DefaultForm 屬性指向 .aspx 頁面IISServerName 與 IISDirectory 指定 Web 應用路徑ProcessId、TaskId 參數Failed 事件中記錄日誌、發送告警