我有一个自定义工作流实现,需要更新外部数据库。我为文本目的创建了一个简单的工作流程,发现了一件奇怪的事情!
我的 Db 更新/插入代码放置在工作流的代码活动中。当在共享点自定义列表中的简单列表项上调用工作流时,似乎多次执行代码活动。这是我的工作流程:
我的代码是:
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 行的工作流执行!有趣的是,在每次执行期间,添加的行数会有所不同。
为什么会这样?我的错误是什么?
欢迎任何想法和建议。