以下是使用代碼審批、轉簽k2 blackpearl流程,初探K2 Blackpearl,望高人多多包涵、指點.
//執行動作
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(); }
流程圖如下: