如下是使用代碼審批、轉籤k2 blackpearl流程,初探K2 Blackpearl,望高人多多包涵、指點.spa
//執行動做 private void MyAction(string argAction) { //建立鏈接對象 SourceCode.Workflow.Client.Connection wfcon = new SourceCode.Workflow.Client.Connection(); //打開K2鏈接 string k2Server = System.Configuration.ConfigurationManager.AppSettings["K2Server"]; string workflowServicePort = System.Configuration.ConfigurationManager.AppSettings["WorkflowServicePort"]; wfcon.Open(k2Server + ":" + workflowServicePort); //當前用戶打開 wfcon.ImpersonateUser(HttpContext.Current.User.Identity.Name); //獲取流程列表 SourceCode.Workflow.Client.WorklistItem worklistitem = wfcon.OpenWorklistItem(SN); /* //獲取流程實例編號 string[] _SN = SN.Split('_'); int _ID = int.Parse(_SN[0]); //獲取流程實例 SourceCode.Workflow.Client.ProcessInstance proInst = wfcon.OpenProcessInstance(_ID); //DataFields賦值 proInst.DataFields["TaskUsers"].Value = ddlTaskUsers.SelectedValue; //更新DataFields procinst.Update(); */ //查找action(執行動做) foreach (SourceCode.Workflow.Client.Action action in worklistitem.Actions) { if (action.Name.Equals(argAction)) { //執行動做 action.Execute(); } } wfcon.Dispose(); } //轉籤 protected void ProcRedirect(string argEmpName) { //建立鏈接對象 SourceCode.Workflow.Client.Connection wfcon = new SourceCode.Workflow.Client.Connection(); //打開K2鏈接 string k2Server = System.Configuration.ConfigurationManager.AppSettings["K2Server"]; string workflowServicePort = System.Configuration.ConfigurationManager.AppSettings["WorkflowServicePort"]; wfcon.Open(k2Server + ":" + workflowServicePort); wfcon.ImpersonateUser(HttpContext.Current.User.Identity.Name); //獲取流程列表 SourceCode.Workflow.Client.WorklistItem worklistitem = wfcon.OpenWorklistItem(SN); //轉籤 worklistitem.Redirect(argEmpName); //釋放資源 wfcon.Dispose(); }
流程圖以下:3d