SharePoint List неплохой объект для хранения и работы со списками до 5000 записей. Бывает иногда, что структура списка расширяется и необходимо для нового поля выставить значения по умолчанию в имеющихся записях. По умолчанию после добавления поля значение будет пустым для уже существующих записей и новое значение по умолчанию будет присваиваться автоматически только для новых записей в списке. Когда записей немного, то через веб-приложение управления списками можно в режиме Edit in Grid View
выставить для одной записи значение и для остальных "протянуть" как в Excel. Другой способ, применить интеграции с Access-ом. Но самый отличный способ - это применение сценария Power Automate (RPA от Microsoft) и работа со списком как с объектом JSON
.
Итак, у нас есть некий SharePoint List. Необходимо обновить для созданных записей значение поля isInPipeLine, установив списковое значение "NO"
. В Power Automate сценарий будет выглядеть достаточно просто
На 1-ом этапе указан триггер сценария - запуск вручную, далее на этапе 2 подключаемся к списку SharePoint стандартным коннектором, а далее применяем нестандартный подход и преобразуем через Compose список в описание JSON
, но пишем имя списка из SharePoint явно вручную, а не выбираем из вспомогательного редактора динамических данных
Последний этап связан с вызовом встроенной функции на обновление записи на основе элемента value, цикл появится автоматически, как вы знаете. В поле List Name
указываем результат Outputs
от предыдущего шага Compose
.
JSON
включает в себя только конкретный блок работы с записью. В нашем примере в списке поле представлено значениями DropDown List
("YES", "NO")
, поэтому запись на обновление значения будет такая для Item
:
{
"isInPipeLine": {
"Value": "NO"
}
}
В результате исполнения сценария в очень производительном режиме ваши тысячи записей обновятся новыми значениями. Подобный сценарий универсальный и может использоваться для обновления любых значений объектов типа Sharepoint List. Приведу примеры:
- Через
ODATA Filter
можно отфильтровать записи из общего списка и внести обновления для конкретных записей списка - У триггера сценария указать переменную, связанную с
ID
(уникальный идентификатор записи) списка и обновить значения для одной записи. - В качестве триггера может быть вызов из Power APPS приложения с переменными для явного обновления элемента списка и т.д.
Вот такой нестандартный способ работы со списками в Power Automate.