单个工作流程启动多个工作流程

时间:2014-09-11 12:11:42

标签: c# visual-studio-2012 sharepoint-2010 workflow-foundation

美好的一天,

我有一个列表,其中包含一个自定义工作流,该工作流在创建一个idem时启动。我的工作流程有一个codeActivity,可以在列表中创建多个项目。这反过来又启动了多个工作流程。

我遇到的问题是,当其中一个子工作流无法启动时,父项工作流状态会从“正在进行中”更改为“发生错误”。它们似乎是在同一个线程下启动的。如何启动子工作流程以使它们独立运行?有没有办法让它们在自己的线程中运行?

以下是我目前用于添加新项目的代码:

bool first = true;
Foreach (file in files)
{
    if(first)
    {
        workflowProperties.Item["Title"] = file;
        workflowProperties.Item.Update();
        first = false;
    }
    else
    {
        var newItem = list.Items.Add();
        newItem["Title"] = file;
        newItem.Update();
    }

}

2 个答案:

答案 0 :(得分:0)

试试看看会发生什么

bool first = true;
var file = string.Empty 
Foreach (file in files)
{
    var newItem = list.Items.Add();
    newItem["Title"] = file;
    newItem.Update();
    if(first)
    {    file=  file.name;             
        first = false;
    }    
}
workflowProperties.Item["Title"] = file;
    workflowProperties.Item.Update();

答案 1 :(得分:0)

如果您不想启动其他项目的工作流程,请尝试以下代码

bool first = true;
Foreach (file in files)
{
    if(first)
    {
        workflowProperties.Item["Title"] = file;
        workflowProperties.Item.Update();
        first = false;
    }
    else
    {
        var newItem = list.Items.Add();
        newItem["Title"] = file;
    EventFiring eventFiring = new EventFiring();
    eventFiring.DisableHandleEventFiring();
        newItem.Update();
    eventFiring.EnableHandleEventFiring();
    }

}