Другое

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-адрес из вашего файла Excel, хранящегося в SharePoint. Поскольку вы предпочитаете не преобразовывать файл Excel в список SharePoint, вам нужно использовать действие “Получить содержимое файла” для чтения файла Excel.

Шаг 1: Чтение файла Excel

Используйте действие “Получить содержимое файла” для извлечения вашего файла Excel из SharePoint. Вам нужно указать:

  • адрес сайта SharePoint
  • путь к библиотеке/папке
  • идентификатор файла

Шаг 2: Разбор содержимого Excel

После получения содержимого Excel вам нужно разобрать его, чтобы извлечь URL-адрес. Для этого можно использовать действие “Разобрать JSON” или действия “Создать” с выражениями для извлечения конкретной ячейки, содержащей ваш URL-адрес.

javascript
// Пример выражения для извлечения URL-адреса из содержимого Excel
// Вам нужно будет адаптировать это в зависимости от структуры вашего Excel
outputs('Get_file_content')?['body']

Получение содержимого файла из URL-адресов SharePoint

После получения URL-адреса из вашего файла Excel вам нужно использовать его для получения фактического содержимого файла для вложения.

Шаг 1: Использование “Получить содержимое файла” с URL-адресом

Наиболее надежный подход - использовать действие SharePoint “Получить содержимое файла” с URL-адресом, извлеченным из Excel:

  1. Добавьте действие “Получить содержимое файла”
  2. Установите “Адрес сайта” для вашего сайта SharePoint
  3. Используйте поле “Файл” и введите URL-адрес из Excel (убедитесь, что правильно обрабатываете любое динамическое содержимое)

Согласно документации Microsoft, действие “Получить содержимое файла” возвращает двоичные данные файла, которые можно использовать для вложений.

Шаг 2: Работа с разными типами файлов

Для файлов PDF процесс особенно прост, поскольку PDF-файлы не требуют специального форматирования, как некоторые двоичные файлы. Действие “Получить содержимое файла” вернет PDF в правильном двоичном формате.


Форматирование вложений для электронной почты

Здесь многие пользователи сталкиваются с проблемами. Простого получения содержимого файла недостаточно - нужно правильно его форматировать для вложений в электронное письмо.

Правильная структура вложения

Документация Microsoft показывает правильный формат для добавления файлов SharePoint в качестве вложений в электронное письмо:

json
{
  "Name": "@{items('Apply_to_each')?['{FilenameWithExtension}']}",
  "ContentBytes": "@{body('Get_file_content')?['body']}"
}

Как объясняет Мануэл Т. Гомес, эта структура создает массив, в котором каждое вложение содержит как имя файла, так и двоичное содержимое.

Шаг 3: Создание массива вложений

  1. Добавьте действие “Инициализировать переменную” для создания массива вложений
  2. Используйте структуру JSON выше, заменяя ссылки на динамическое содержимое на ваши фактические значения
  3. Убедитесь, что вы используете поле “ContentBytes”, а не “Content” или другие вариации

Полное пошаговое решение

Вот полный процесс для прикрепления файла SharePoint с использованием URL-адреса из Excel:

Шаг 1: Активация вашего потока

Выберите подходящий триггер для вашей ситуации (например, “Запустить поток вручную”, “При создании файла” и т.д.)

Шаг 2: Получение содержимого файла Excel

  • Добавьте действие “Получить содержимое файла”
  • Настройте сайт SharePoint и путь к файлу Excel
  • Сохраните вывод в переменной или используйте его напрямую

Шаг 3: Извлечение URL-адреса из Excel

  • Используйте действия “Разобрать JSON” или “Создать” для извлечения URL-адреса из содержимого Excel
  • Сохраните этот URL-адрес в переменной (например, fileUrl)

Шаг 4: Получение содержимого целевого файла

  • Добавьте еще одно действие “Получить содержимое файла”
  • Установите адрес сайта для вашего сайта SharePoint
  • В поле “Файл” используйте вашу переменную fileUrl

Шаг 5: Подготовка массива вложений

  • Добавьте действие “Инициализировать переменную”
  • Имя: attachments
  • Тип: Массив
  • Значение: Используйте структуру JSON:
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:

  1. Добавьте действие “HTTP”
  2. Установите метод GET
  3. Используйте ваш URL-адрес SharePoint с правильной аутентификацией
  4. Обработайте двоичный ответ в вашем вложении

Метод 3: Преобразование Excel в список SharePoint

Если вы открыты для изменения подхода, преобразование Excel в список SharePoint значительно упростит этот процесс:

  1. Загрузите Excel в SharePoint
  2. Используйте соединитель “Excel Online (Business)” для чтения таблицы
  3. Извлекайте URL-адреса непосредственно из элементов списка

Устранение распространенных проблем

Проблема: Пустые вложения

Если вложения приходят пустыми, наиболее распространенные причины:

  1. Неправильный формат ContentBytes: Убедитесь, что вы используете body('Get_file_content')?['body'], а не просто body('Get_file_content')

  2. Путаница между Base64 и Binary: Как отмечено в этом техническом блоге, разные действия возвращают разные форматы. При необходимости используйте соответствующее преобразование.

  3. Проблемы с кодированием URL-адресов: Убедитесь, что ваши URL-адреса в Excel правильно отформатированы и доступны.

Проблема: Поврежденные файлы

Пользователи сообщают о получении поврежденных файлов (4 байта) при обработке вложений Excel. Это обычно происходит, когда:

  • байты содержимого неправильно преобразуются из base64 в двоичный формат
  • существуют проблемы аутентификации с URL-адресом SharePoint
  • файл недоступен для потока

Решение для поврежденных файлов

Используйте функцию base64ToBinary():

javascript
base64ToBinary(body('Get_file_content')?['body'])

Лучшие практики

Работа с файлами

  • Всегда тестируйте с небольшими файлами сначала, чтобы убедиться, что ваш поток работает правильно
  • Учитывайте ограничения размера вложений (в Power Automate есть ограничения размера вложений)
  • Рассмотрите обработку ошибок для отсутствующих или недоступных файлов

Оптимизация производительности

  • Эффективно используйте циклы “Применить к каждому” при обработке нескольких файлов
  • Минимизируйте количество действий “Получить содержимое файла”, выполняемых параллельно
  • Используйте переменные для хранения промежуточных результатов

Вопросы безопасности

  • Обеспечьте правильные разрешения для доступа к файлам SharePoint
  • Используйте безопасные методы для хранения чувствительных URL-адресов
  • Рассмотрите возможность использования функций общего доступа SharePoint вместо прямого доступа к файлам

Следуя этому комплексному подходу, вы должны успешно прикреплять файлы SharePoint к электронным письмам, используя URL-адреса, хранящиеся в файлах Excel. Ключевым моментом является правильное извлечение содержимого и правильное форматирование вложений с использованием структуры Name/ContentBytes, рекомендованной Microsoft.

Источники

  1. Microsoft Learn - Power Automate Send SharePoint files as attachments
  2. Manuel T. Gomes - Power Automate Add attachment to e-mail dynamically
  3. Power Tech Tips - 2 Ways to Attach Files to an Email in Power Automate
  4. Enterprise DNA Forum - Power Automate Flow Excel Attachment from Outlook to Sharepoint List
  5. Matthew Devaney - Power Automate Save Email Attachments To SharePoint Library
  6. Cloudmersive Medium - How to Convert SharePoint List Attachments to PDF in Power Automate
  7. Linz Zaw Win Blog - Handle Base64 and Binary File Content Types in Power Automate

Заключение

Успешное прикрепление файлов SharePoint к электронным письмам с использованием URL-адресов из Excel в Power Automate требует системного подхода:

  1. Правильно извлекайте URL-адреса из вашего файла Excel с помощью действий “Получить содержимое файла” и разбора
  2. Используйте правильное действие SharePoint для получения содержимого файла из URL-адресов
  3. Правильно форматируйте вложения с помощью структуры JSON как Name, так и ContentBytes
  4. Решайте распространенные проблемы, такие как поврежденные файлы, с помощью правильных двоичных преобразований
  5. Следуйте лучшим практикам для производительности и безопасности

Наиболее надежный метод включает использование действия SharePoint “Получить содержимое файла” дважды - сначала для чтения вашего файла Excel и извлечения URL-адреса, затем снова для получения содержимого целевого файла для вложения. Следуя этому подходу и устраняя распространенные проблемы, вы можете создать надежный поток, который динамически прикрепляет разные файлы на основе URL-адресов, хранящихся в ваших электронных таблицах Excel.

Авторы
Проверено модерацией
Модерация