使用 OData 过滤器查询使用 Microsoft Flow 从 Sharepoint 列表中获取具有过期日期的未清项目

Using OData Filter Query to get open items with past due date from Sharepoint list using Microsoft Flow

在我的共享点项目列表中,我有一个“截止日期”字段和一个“状态”字段。我正在尝试创建一个每周发生一次的循环流程。它将获取所有状态为“打开”且截止日期为当天或之前的项目。

这是我目前的流程:

  1. 每周 1 次的循环触发器。
  2. 当前时间
  3. 从共享点列表中获取项目。
    • 到目前为止,我有过滤器 Status eq 'Open' and Date_x0020_Due le Date(@{body('Current_time')})
      • @{body('Current_time') 是从第 2 步中检索到的当前时间
  4. 我把那些东西变成了 HTML table
  5. 我发送了一封电子邮件,其中包含 html table。

目前第 2 步的过滤器不起作用。 Status eq 'Open' 可以,但是 Date_x0020_Due le Date(@{body('Current_time')}) 不起作用。

我猜这是因为OData无法将Current Time的DateTime对象转换成Date对象,无法比较它们。

我如何更改此过滤器,以便 returns 状态为已关闭且截止日期为当天或之前的项目?

限制:

我以某种方式解决了这个问题。

我的结束流程是这样的:

  1. 每周 1 次的循环触发器。
  2. 从共享点列表中获取项目。
    • 对于过滤器,我有 Status eq 'Open'
  3. 我使用过滤器数组删除过期的项目。
    • 过滤器是@lessOrEquals(ticks(concat(item()?['Date_x0020_Due'], 'T00:00:00Z')), ticks(utcNow()))
      • Ticks() 将时间戳转换为自 1601 年 1 月 1 日以来的滴答数(至少根据流程,在这种情况下文档似乎已关闭)。
      • 使用这个,我通过使用 concat() 将时间添加到日期,将我的日期转换为时间戳。
      • 我将它与当前 UTC 时间进行比较,看看它是否小于当前日期。
  4. 我将过滤器数组输入到 HTML table.
  5. 我发送了一封电子邮件,其中包含 html table。