Вопрос или проблема
Итак… У меня есть автоматизированный поток, который копирует файлы из одной папки на одном сайте SharePoint в целевую папку на другом сайте (в одном и том же арендаторе). Он настроен на исключение определенного типа файлов во время копирования, используя по сути цикл for each. Однако, поскольку у меня только один цикл, он выполняется только для корневой папки. Как мне сделать так, чтобы поток динамически обрабатывал вложенные папки? В исходной папке в будущем появится больше папок, и я хотел бы настроить поток на выполнение раз в день.
Поток выглядит примерно так:
Вручную запустить поток (для тестирования потока перед автоматизацией)
Список папок
- выбран сайт источника
- выбрана папка источника
Применить для каждого
- “body” из списка папок
Условие
-
файл не заканчивается на .pdf (например)
- Если ложь, действие не введено
- Если истина, Копировать файл
Адрес текущего сайта введен
Файл для копирования: Id из списка папок
Адрес целевого сайта введен
Целевая папка введена
Если другой файл уже там: Заменить
Мне потребовалось время, чтобы эта часть заработала, затем я осознал, что она не проходит через вложенные папки, и “pdf” все еще копировались.
Какие-нибудь идеи? Я совершенно неправильно выбрал параметры в потоке?
Ответ или решение
Автоматизация копирования файлов в SharePoint с исключением определенного типа файлов
В последние годы многие организации активно используют платформу Power Automate для автоматизации рутинных задач. Одной из распространенных задач является копирование файлов из одной библиотеки SharePoint в другую. При этом часто возникает необходимость в исключении некоторых типов файлов, например, документов формата PDF. В этой статье мы рассмотрим, как можно динамически обходить вложенные папки во время копирования файлов с помощью Power Automate, чтобы исключить определённые типы файлов.
Проблема и ключевые моменты
Вы уже настроили поток, который копирует файлы из одной SharePoint-сайта в другую, и используете цикл "Для каждого" (Apply to each
) для фильтрации файлов, исключая PDF-документы. Однако, как вы отметили, ваш цикл не работает с вложенными папками. Для решения этой проблемы необходимо внести изменения в текущую реализацию потока.
Шаги для настройки потока Power Automate
-
Проверка структуры папок: Прежде всего, вам нужно зафиксировать структуру ваших исходных папок. Используйте динамическое извлечение всех папок и вложенных папок для обеспечения полной обработки.
-
Создание триггера для автоматизации: Измените начальный этап потока с ручного триггера на автоматическое выполнение один раз в день. Вы можете использовать планировщик, доступный в Power Automate, для настройки этого.
-
Использование действия "Получить содержимое папки": Вместо использования действия "Список папки" (List folder), используйте действие "Получить содержимое папки" (Get files (properties only)). Этот метод не только вернет файлы в текущей папке, но и вложенные папки. Убедитесь, что вы выбрали параметр "Включить вложенные папки".
-
Фильтрация файлов: Включите условие для исключения PDF-документов (или любого другого формата), как это было выполнено ранее. Убедитесь, что код корректно применяет логику фильтрации для всех уровней вложенности.
-
Циклы для обработки файлов: Используйте цикл "Для каждого" (
Apply to each
) для обработки всех файлов, полученных из предыдущего шага. Этот цикл должен быть вложен внутри другого цикла, который будет обрабатывать каждую папку на каждом уровне вложения. -
Копирование файлов: Внутри первого цикла выполните условие для проверки типа файла, а затем используйте действие "Копировать файл" (Copy File) для перемещения всех файлов, которые не соответствуют исключаемому типу, в целевую папку.
-
Тестирование и отладка: После завершения настройки потока важно протестировать его, чтобы убедиться в корректной работе. Для этого вы можете временно настроить поток на запуск вручную и проверить все шаги из источника в целевую папку.
Пример потока
Ваш поток для копирования файлов теперь может выглядеть следующим образом:
- Триггер: Запуск по расписанию (ежедневно).
- Получить содержимое папки: Указать исходный сайт и папку. Включить вложенные папки.
- Цикл "Для каждой папки": Обрабатывать вложенные папки.
- Цикл "Для каждого файла": Обрабатывать файлы внутри папок.
- Условие: Если файл не заканчивается на .pdf
- Если да:
- Копировать файл: Указать целевой сайт и папку.
Заключение
С помощью описанных выше шагов вы сможете эффективно настроить поток для автоматического копирования файлов из одной библиотеки SharePoint в другую, с исключением необходимых типов файлов, что обеспечит надежный и организованный подход к управлению документами. Необходимость работы с вложенными папками требует большего внимания, но Power Automate предоставляет достаточно возможностей для достижения этой цели. Ознакомьтесь с передовыми практиками и оптимизируйте свои потоки для лучшего управления данными в вашей организации.