Power Automate: Прикрепление файлов SharePoint из URL-адресов Excel
Узнайте, как прикреплять файлы SharePoint к письмам с помощью URL-адресов, хранящихся в Excel, в Power Automate. Полное руководство с пошаговыми инструкциями для динамического прикрепления файлов.
Как прикрепить файл SharePoint к письму с помощью URL из Excel в Power Automate
У меня есть файл Excel в SharePoint, который содержит кликабельный URL на другой файл (PDF) внутри SharePoint. Когда я пытаюсь прикрепить этот PDF-файл к письму с помощью потока Power Automate, вложение приходит пустым.
Ключевые детали:
- Путь к файлу хранится как полный URL в ячейке Excel
- Каждое выполнение потока должно прикреплять разные файлы из того же расположения SharePoint
- Тип файла - PDF
- Я предпочитаю не конвертировать файл Excel в список SharePoint
Есть ли способ использовать полный путь URL в потоке Power Automate для динамического получения и прикрепления правильного файла к письму?
Вы можете прикрепить файл SharePoint к электронной почте, используя URL-адрес из Excel в Power Automate, сначала извлекая URL-адрес из вашего файла Excel, затем используя действие “Получить содержимое файла” для получения двоичных данных файла и, наконец, правильно форматируя его для вложений в электронное письмо. Ключевым моментом является использование правильной структуры JSON с именем файла и байтами содержимого в массиве вложений.
Содержание
- Извлечение URL-адресов из файлов Excel
- Получение содержимого файла из URL-адресов SharePoint
- Форматирование вложений для электронной почты
- Полное пошаговое решение
- Альтернативные подходы
- Устранение распространенных проблем
- Лучшие практики
Извлечение URL-адресов из файлов Excel
Чтобы начать работу, вам нужно извлечь URL-адрес из вашего файла Excel, хранящегося в SharePoint. Поскольку вы предпочитаете не преобразовывать файл Excel в список SharePoint, вам нужно использовать действие “Получить содержимое файла” для чтения файла Excel.
Шаг 1: Чтение файла Excel
Используйте действие “Получить содержимое файла” для извлечения вашего файла Excel из SharePoint. Вам нужно указать:
- адрес сайта SharePoint
- путь к библиотеке/папке
- идентификатор файла
Шаг 2: Разбор содержимого Excel
После получения содержимого Excel вам нужно разобрать его, чтобы извлечь URL-адрес. Для этого можно использовать действие “Разобрать JSON” или действия “Создать” с выражениями для извлечения конкретной ячейки, содержащей ваш URL-адрес.
// Пример выражения для извлечения URL-адреса из содержимого Excel
// Вам нужно будет адаптировать это в зависимости от структуры вашего Excel
outputs('Get_file_content')?['body']
Получение содержимого файла из URL-адресов SharePoint
После получения URL-адреса из вашего файла Excel вам нужно использовать его для получения фактического содержимого файла для вложения.
Шаг 1: Использование “Получить содержимое файла” с URL-адресом
Наиболее надежный подход - использовать действие SharePoint “Получить содержимое файла” с URL-адресом, извлеченным из Excel:
- Добавьте действие “Получить содержимое файла”
- Установите “Адрес сайта” для вашего сайта SharePoint
- Используйте поле “Файл” и введите URL-адрес из Excel (убедитесь, что правильно обрабатываете любое динамическое содержимое)
Согласно документации Microsoft, действие “Получить содержимое файла” возвращает двоичные данные файла, которые можно использовать для вложений.
Шаг 2: Работа с разными типами файлов
Для файлов PDF процесс особенно прост, поскольку PDF-файлы не требуют специального форматирования, как некоторые двоичные файлы. Действие “Получить содержимое файла” вернет PDF в правильном двоичном формате.
Форматирование вложений для электронной почты
Здесь многие пользователи сталкиваются с проблемами. Простого получения содержимого файла недостаточно - нужно правильно его форматировать для вложений в электронное письмо.
Правильная структура вложения
Документация Microsoft показывает правильный формат для добавления файлов SharePoint в качестве вложений в электронное письмо:
{
"Name": "@{items('Apply_to_each')?['{FilenameWithExtension}']}",
"ContentBytes": "@{body('Get_file_content')?['body']}"
}
Как объясняет Мануэл Т. Гомес, эта структура создает массив, в котором каждое вложение содержит как имя файла, так и двоичное содержимое.
Шаг 3: Создание массива вложений
- Добавьте действие “Инициализировать переменную” для создания массива вложений
- Используйте структуру JSON выше, заменяя ссылки на динамическое содержимое на ваши фактические значения
- Убедитесь, что вы используете поле “ContentBytes”, а не “Content” или другие вариации
Полное пошаговое решение
Вот полный процесс для прикрепления файла SharePoint с использованием URL-адреса из Excel:
Шаг 1: Активация вашего потока
Выберите подходящий триггер для вашей ситуации (например, “Запустить поток вручную”, “При создании файла” и т.д.)
Шаг 2: Получение содержимого файла Excel
- Добавьте действие “Получить содержимое файла”
- Настройте сайт SharePoint и путь к файлу Excel
- Сохраните вывод в переменной или используйте его напрямую
Шаг 3: Извлечение URL-адреса из Excel
- Используйте действия “Разобрать JSON” или “Создать” для извлечения URL-адреса из содержимого Excel
- Сохраните этот URL-адрес в переменной (например,
fileUrl)
Шаг 4: Получение содержимого целевого файла
- Добавьте еще одно действие “Получить содержимое файла”
- Установите адрес сайта для вашего сайта SharePoint
- В поле “Файл” используйте вашу переменную
fileUrl
Шаг 5: Подготовка массива вложений
- Добавьте действие “Инициализировать переменную”
- Имя:
attachments - Тип: Массив
- Значение: Используйте структуру JSON:
[
{
"Name": "@{last(split(body('Get_file_content')?['@{odata.type}'], '.'))}",
"ContentBytes": "@{body('Get_file_content')?['body']}"
}
]
Шаг 6: Отправка электронного письма
- Добавьте действие “Отправить электронное письмо (V2)”
- В поле “Вложения” используйте вашу переменную
attachments
Альтернативные подходы
Метод 2: Использование SharePoint REST API
Если стандартное действие “Получить содержимое файла” не работает с вашим URL-адресом, вы можете использовать SharePoint REST API:
- Добавьте действие “HTTP”
- Установите метод GET
- Используйте ваш URL-адрес SharePoint с правильной аутентификацией
- Обработайте двоичный ответ в вашем вложении
Метод 3: Преобразование Excel в список SharePoint
Если вы открыты для изменения подхода, преобразование Excel в список SharePoint значительно упростит этот процесс:
- Загрузите Excel в SharePoint
- Используйте соединитель “Excel Online (Business)” для чтения таблицы
- Извлекайте URL-адреса непосредственно из элементов списка
Устранение распространенных проблем
Проблема: Пустые вложения
Если вложения приходят пустыми, наиболее распространенные причины:
-
Неправильный формат ContentBytes: Убедитесь, что вы используете
body('Get_file_content')?['body'], а не простоbody('Get_file_content') -
Путаница между Base64 и Binary: Как отмечено в этом техническом блоге, разные действия возвращают разные форматы. При необходимости используйте соответствующее преобразование.
-
Проблемы с кодированием URL-адресов: Убедитесь, что ваши URL-адреса в Excel правильно отформатированы и доступны.
Проблема: Поврежденные файлы
Пользователи сообщают о получении поврежденных файлов (4 байта) при обработке вложений Excel. Это обычно происходит, когда:
- байты содержимого неправильно преобразуются из base64 в двоичный формат
- существуют проблемы аутентификации с URL-адресом SharePoint
- файл недоступен для потока
Решение для поврежденных файлов
Используйте функцию base64ToBinary():
base64ToBinary(body('Get_file_content')?['body'])
Лучшие практики
Работа с файлами
- Всегда тестируйте с небольшими файлами сначала, чтобы убедиться, что ваш поток работает правильно
- Учитывайте ограничения размера вложений (в Power Automate есть ограничения размера вложений)
- Рассмотрите обработку ошибок для отсутствующих или недоступных файлов
Оптимизация производительности
- Эффективно используйте циклы “Применить к каждому” при обработке нескольких файлов
- Минимизируйте количество действий “Получить содержимое файла”, выполняемых параллельно
- Используйте переменные для хранения промежуточных результатов
Вопросы безопасности
- Обеспечьте правильные разрешения для доступа к файлам SharePoint
- Используйте безопасные методы для хранения чувствительных URL-адресов
- Рассмотрите возможность использования функций общего доступа SharePoint вместо прямого доступа к файлам
Следуя этому комплексному подходу, вы должны успешно прикреплять файлы SharePoint к электронным письмам, используя URL-адреса, хранящиеся в файлах Excel. Ключевым моментом является правильное извлечение содержимого и правильное форматирование вложений с использованием структуры Name/ContentBytes, рекомендованной Microsoft.
Источники
- Microsoft Learn - Power Automate Send SharePoint files as attachments
- Manuel T. Gomes - Power Automate Add attachment to e-mail dynamically
- Power Tech Tips - 2 Ways to Attach Files to an Email in Power Automate
- Enterprise DNA Forum - Power Automate Flow Excel Attachment from Outlook to Sharepoint List
- Matthew Devaney - Power Automate Save Email Attachments To SharePoint Library
- Cloudmersive Medium - How to Convert SharePoint List Attachments to PDF in Power Automate
- Linz Zaw Win Blog - Handle Base64 and Binary File Content Types in Power Automate
Заключение
Успешное прикрепление файлов SharePoint к электронным письмам с использованием URL-адресов из Excel в Power Automate требует системного подхода:
- Правильно извлекайте URL-адреса из вашего файла Excel с помощью действий “Получить содержимое файла” и разбора
- Используйте правильное действие SharePoint для получения содержимого файла из URL-адресов
- Правильно форматируйте вложения с помощью структуры JSON как Name, так и ContentBytes
- Решайте распространенные проблемы, такие как поврежденные файлы, с помощью правильных двоичных преобразований
- Следуйте лучшим практикам для производительности и безопасности
Наиболее надежный метод включает использование действия SharePoint “Получить содержимое файла” дважды - сначала для чтения вашего файла Excel и извлечения URL-адреса, затем снова для получения содержимого целевого файла для вложения. Следуя этому подходу и устраняя распространенные проблемы, вы можете создать надежный поток, который динамически прикрепляет разные файлы на основе URL-адресов, хранящихся в ваших электронных таблицах Excel.