在SharePoint工作流中重复执行代码活动?

时间:2010-09-07 20:50:51

标签: sharepoint workflow sharepoint-2007 sharepoint-workflow

我有一个自定义工作流实现,需要更新外部数据库。我为文本目的创建了一个简单的工作流程,发现了一件奇怪的事情!

我的Db更新/插入代码放在工作流的代码活动中。在sharepoint自定义列表中的简单列表项上调用工作流时,似乎多次执行代码活动。这是我的工作流程:

workflow-image

我的代码是:

 private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
    workflowProperties.Item["Title"] = "Processed by workflow at "+ DateTime.Now;
    workflowProperties.Item.Update();      

}

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
    Random rnd = new Random();

    string conStr = "Data Source=192.168.1.57\\TRIBIRD;Initial Catalog=XXXXXX;User ID=XXXXXX;Password=XXXXXXXXXX";
    SqlConnection connection = new SqlConnection(conStr);
    SqlCommand command = connection.CreateCommand();
    command.CommandType = System.Data.CommandType.Text;
    command.CommandText = "INSERT INTO XXXX VALUES(" + rnd.Next() + ",'THE CONTENT FROM SHAREPOINT WORKFLOW','EN',1,1,'BRT')";

    connection.Open();
    command.ExecuteNonQuery();
    command.Dispose();
    connection.Close();
}
在数据库中

我获得了超过1行的工作流程执行!有趣的是,在每次执行期间,添加的行数会有所不同。

为什么会这样?我的错是什么?
欢迎任何想法和建议。

1 个答案:

答案 0 :(得分:0)

确保您正在运行SharePoint的最新修补程序和更新。

2007年的早期版本将允许循环自触发(例如重新触发)。以后的版本没有(但仍然允许共同循环触发)。我怀疑这是问题,“级联”是从Update方法开始的。只是预感。

这应该在SP2中修复:Service Pack 2 prevents an on-change workflow from starting itself

相关问题