Использование OData Filter Query для получения открытых элементов с просроченной датой из списка Sharepoint с помощью Microsoft Flow - PullRequest
0 голосов
/ 08 января 2019

В моем списке объектов sharepoint у меня есть поле «Дата выполнения» и поле «Статус». Я пытаюсь создать повторяющийся поток, который происходит раз в неделю. Он будет захватывать все элементы, которые имеют статус «Открыто» и дату исполнения либо за этот день, либо до него.

  • Статус содержит «Открыто» или «Закрыто».
  • Дата выполнения содержит дату выполнения элемента в формате yyyy-MM-dd.

Это мой текущий поток:

  1. Повторяющийся триггер 1 / неделя.
  2. Текущее время
  3. Получить элементы из списка точек обмена.
    • Пока что у меня есть фильтр Status eq 'Open' and Date_x0020_Due le Date(@{body('Current_time')})
      • @{body('Current_time') - текущее время, полученное на шаге 2
  4. Я беру эти предметы и превращаю их в таблицу HTML
  5. Я отправляю электронное письмо, содержащее эту HTML-таблицу.

В настоящее время фильтр для шага 2 не работает. Status eq 'Open' нормально, однако Date_x0020_Due le Date(@{body('Current_time')}) не работает.

Я предполагаю, что это потому, что OData не может преобразовать объект DateTime текущего времени в объект Date и не может их сравнить.

Как я могу изменить этот фильтр, чтобы он возвращал элементы, которые имеют как статус закрытого, так и срок платежа за этот день или ранее?

Ограничения:

  • Я не могу изменить имена любых полей.
  • Я не могу изменить тип данных для любого поля (например, make Date Due a DateTime Type).
  • Я не могу добавлять или удалять поля.

1 Ответ

0 голосов
/ 09 января 2019

Я как-то решил это.

Мой конечный поток выглядит так:

  1. Повторяющийся запуск 1 / неделя.
  2. Получить элементы из списка точек обмена.
    • Для фильтра у меня есть Status eq 'Open'
  3. Я использую массив фильтров для удаления просроченных товаров.
    • Фильтр @lessOrEquals(ticks(concat(item()?['Date_x0020_Due'], 'T00:00:00Z')), ticks(utcNow()))
      • Ticks () Преобразует временную метку в число тактов с 01 января 1601 г. (по крайней мере, согласно потоку, документация в этом случае отключена).
      • Используя это, я конвертирую свою дату в метку времени, используя concat (), чтобы добавить время к дате.
      • Я сравниваю это с текущим временем UTC и вижу, меньше ли оно текущей даты.
  4. Я беру массив фильтров и помещаю его в таблицу HTML.
  5. Я отправляю электронное письмо, содержащее эту HTML-таблицу.
...