应用场景:在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);
}
}
}