Workflow的UpdateAllTask​​s方法清除DueDate字段

时间:2010-05-25 13:53:22

标签: sharepoint sharepoint-2007 workflow

我遇到UpdateAllTask​​s活动的问题。

在执行此活动之前,我有一个任务,如工作流历史记录中所示: workflow history task pending http://img101.imageshack.us/img101/2694/ss20100525163401.png 但是当任务完成时,我调用UpdateAllTask​​s来更新每个任务的一些属性,但是所有任务的DueDate列都被清除,如下所示: workflow history task completed http://img204.imageshack.us/img204/7889/ss20100525163817.png

这个特殊的事情发生在具有这些属性的updateTaskData活动中:

updateTaskDataProperties = new SPWorkflowTaskProperties();
updateTaskDataProperties.ExtendedProperties["WorkflowData"] = WorkflowDataSerializer.SerializeToXmlString<ApprovalWorkflowRuntimeData>(WorkflowData);

有缺点的解决方法

但是有一种解决方法可以满足某些人的需求。如果我们添加这样一行

updateTaskDataProperties.DueDate = ApprovalTaskProperties.DueDate;

然后按预期工作。除非您没有通过其他方式(例如在GUI中)编辑任务到期日期。然后它将重置为为ApprovalTask​​Properties所属的任务指定的DueDate。

为什么?

为什么会发生这样的事情,也许有办法解决这个问题?否则我将不得不采用防止调整截止日期的解决方法。

1 个答案:

答案 0 :(得分:0)

不是一个很好的答案,但至少是一种解决方法:

在UpdateAllTask​​s中,我们必须指定DueDate属性:

updateTaskDataProperties.DueDate = ApprovalTaskProperties.DueDate;

然后按预期工作。除非您没有通过其他方式(例如在GUI中)编辑任务到期日期。然后它将重置为为ApprovalTask​​Properties所属的任务指定的DueDate。