我对UpdateAllTasks活动有问题。
在执行此活动之前,我有一个在工作流历史记录中看到的任务: workflow history task pending http://img101.imageshack.us/img101/2694/ss20100525163401.png 但是当任务完成时,我调用UpdateAllTasks来更新每个任务的一些属性,但是所有任务的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中)编辑任务到期日期。然后它将重置回为ApprovalTaskProperties所属的任务指定的DueDate。
为什么会发生这样的事情,也许有治愈的方法?否则我就得采取变通办法,避免调整到期日。
不是一个很好的答案,但至少是一个解决办法:
在UpdateAllTasks中,必须指定DueDate属性: