SharePoint List неплохой объект для хранения и работы со списками до 5000 записей. Бывает иногда, что структура списка расширяется и необходимо для нового поля выставить значения по умолчанию в имеющихся записях. По умолчанию после добавления поля значение будет пустым для уже существующих записей и новое значение по умолчанию будет присваиваться автоматически только для новых записей в списке. Когда записей немного, то через веб-приложение управления списками можно в режиме Edit in Grid View выставить для одной записи значение и для остальных "протянуть" как в Excel. Другой способ, применить интеграции с Access-ом. Но самый отличный способ - это применение сценария Power Automate (RPA от Microsoft) и работа со списком как с объектом JSON.

Итак, у нас есть некий SharePoint List. Необходимо обновить для созданных записей значение поля isInPipeLine, установив списковое значение "NO". В Power Automate сценарий будет выглядеть достаточно просто

Сценарий Power Automate

На 1-ом этапе указан триггер сценария - запуск вручную, далее на этапе 2 подключаемся к списку SharePoint стандартным коннектором, а далее применяем нестандартный подход и преобразуем через Compose список в описание JSON, но пишем имя списка из SharePoint явно вручную, а не выбираем из вспомогательного редактора динамических данных

Power Automate Compose

Последний этап связан с вызовом встроенной функции на обновление записи на основе элемента value, цикл появится автоматически, как вы знаете. В поле List Name указываем результат Outputs от предыдущего шага Compose.

JSON включает в себя только конкретный блок работы с записью. В нашем примере в списке поле представлено значениями DropDown List ("YES", "NO"), поэтому запись на обновление значения будет такая для Item:

{
  "isInPipeLine": {
    "Value": "NO"
  }
}

В результате исполнения сценария в очень производительном режиме ваши тысячи записей обновятся новыми значениями. Подобный сценарий универсальный и может использоваться для обновления любых значений объектов типа Sharepoint List. Приведу примеры:

  • Через ODATA Filter можно отфильтровать записи из общего списка и внести обновления для конкретных записей списка
  • У триггера сценария указать переменную, связанную с ID (уникальный идентификатор записи) списка и обновить значения для одной записи.
  • В качестве триггера может быть вызов из Power APPS приложения с переменными для явного обновления элемента списка и т.д.

Вот такой нестандартный способ работы со списками в Power Automate.