首页 > 解决方案 > 如何撤消 Outlook 任务完成?

问题描述

使用 Outlook,我只需选择“新任务”并输入主题并单击“保存并关闭”即可创建一个非常简单的任务。然后,我右键单击该任务并选择“标记完成”。该任务现在在 Tasks 文件夹中显示为已完成,如下所示(注意 Date Completed 列 - “11/6/2018”):

已完成的 Outlook 任务

或者像这样在待办事项列表文件夹中:

已完成的 Outlook 任务 - 待办事项列表

现在,如果我取消选中待办事项列表中任务左侧的复选框,该任务将返回活动状态。如果我右键单击已完成的任务并再次选择“标记完成”,也会发生同样的情况。

重新激活的任务如下所示:

重新激活 Outlook 任务

接下来,我通过对下面的图形 api 进行两次调用(来自图形资源管理器)将任务标记为已完成

PATCH https://graph.microsoft.com/beta/me/outlook/tasks({id})

{
   "status": "completed"
}

或者

POST https://graph.microsoft.com/beta/me/outlook/tasks({id})/complete

回到 Outlook,一切看起来都还不错,只是完成日期现在是 11 月 5 日。我希望具有与以前相同的行为,并将 11 月 6 日作为完成日期。这是第一个问题。

第二个问题是,如果我现在尝试重新激活任务,它会进入一个奇怪的状态。我已经尝试了上述两个重新激活选项,还尝试进行新的 PATCH 调用,将状态设置回“notStarted”。它们都产生相同的行为,任务被列为活动和已完成:

这是在尝试重新激活它失败后任务的样子:

在任务文件夹中: 在此处输入图像描述

在“待办事项”文件夹中: 在此处输入图像描述



这是一个错误还是我忘记了什么?

标签: microsoft-graph-api

解决方案


回到 Outlook,一切看起来都还不错,只是完成日期现在是 11 月 5 日。我希望具有与以前相同的行为,并将 11 月 6 日作为完成日期。这是第一个问题。

日期问题可能是由 API 中的时区句柄逻辑引起的。您可以明确设置日期时间。

{
   "status": "completed",
    "completedDateTime": {
        "dateTime": "2018-11-12T00:00:00.0000000",
        "timeZone": "UTC"
    } 
}

第二个问题是,如果我现在尝试重新激活任务,它会进入一个奇怪的状态。我已经尝试了上述两个重新激活选项,还尝试进行新的 PATCH 调用,将状态设置回“notStarted”。它们都产生相同的行为,任务被列为活动和已完成:

虽然不确定它是否是设计使然。但是,理论上,在已完成的列表中保留一个,在待办事项列表中保留一个是没有问题的。这可以有一个跟踪历史。Reactive也不是一个好的操作行为。


推荐阅读