应用场景:在Parallel Activity中使用InvokeWorkflow来达到间接关闭并行分支的功能。
TestInvokeWorkflow方法用于启动监听工作流。endinvoke方法用户关闭启动的监听工作流实例。
private void TestInvokeWorkflow(object sender, EventArgs e) { SPWeb web = SPContext.Current.Web; SPList list = web.Lists["TestList"]; SPWorkflowAssociation mywfass = list.WorkflowAssociations.GetAssociationByName("SimpleWorkflow - Workflow2", System.Globalization.CultureInfo.CurrentCulture); web.Site.WorkflowManager.StartWorkflow(list.Items[0], mywfass, null); } private void endinvoke(object sender, EventArgs e) { using (SPSite site = new SPSite("http://mingle.cnblogs.com")) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["TestList"]; SPListItem item = list.Items[0]; SPWorkflow workflow = item.Workflows[0]; SPWorkflowManager.CancelWorkflow(workflow); } } }