代码之家  ›  专栏  ›  技术社区  ›  Janis Veinbergs

工作流的UpdateAllTasks方法清除DueDate字段

  •  0
  • Janis Veinbergs  · 技术社区  · 15 年前

    我对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。

    为什么会发生这样的事情,也许有治愈的方法?否则我就得采取变通办法,避免调整到期日。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Janis Veinbergs    14 年前

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

    在UpdateAllTasks中,必须指定DueDate属性:

    updateTaskDataProperties.DueDate = ApprovalTaskProperties.DueDate;