Понимание динамического содержимого в Power Automate
Что такое динамическое содержимое в Power Automate, как его вставлять и где новички обычно допускают типичные ошибки.
Когда ты создаёшь свой первый поток Power Automate, довольно быстро сталкиваешься с термином, который поначалу звучит абстрактно: динамическое содержимое. На самом деле за ним не стоит ничего сложного: это именно тот механизм, который вообще делает поток осмысленным, а именно передача реальных данных от одного шага к следующему вместо отправки только фиксированного текста.
Официальное объяснение в конструкторе облачных потоков формулирует это точно: динамическое содержимое представляет собой переменные, которые создаются триггерами и действиями внутри диаграммы потока, и они позволяют тебе выбирать ссылки на поля из предыдущих шагов и на их основе писать выражения, как описывает документация Microsoft о конструкторе облачных потоков. В этой статье на основе официальной документации Power Automate показано, что такое динамическое содержимое на самом деле, как вставлять его в конструкторе и где новички обычно допускают ошибки.
Что такое динамическое содержимое на самом деле
Каждый триггер и каждое действие в потоке в конце своего выполнения выдаёт результат, так называемый вывод. Например, триггер для новой отправки формы предоставляет имя, адрес электронной почты и отдельные поля ответа. Действие, которое получает файл из SharePoint, предоставляет имя файла, содержимое и дату изменения. Эти выходные данные доступны всем последующим шагам потока, тебе не нужно вводить их вручную или сохранять самостоятельно.
Именно эти доступные выходные данные Power Automate называет динамическим содержимым. Вместо того чтобы жёстко вписывать в текстовое поле "Новый твит от Max Mustermann", ты выбираешь в поле заполнитель, который во время выполнения автоматически заменяется реальным именем из триггера. Официальный учебник по первому облачному потоку наглядно показывает этот принцип: при отправке уведомления по электронной почте заполнители Автор твита и Текст твита вставляются прямо из триггера в поля Тема и Текст, как описано в руководстве "Создание облачного потока". Когда поток выполняется, там отображается уже не заполнитель, а реальное содержимое соответствующего твита.
Как вставить динамическое содержимое в конструкторе
В новом конструкторе облачных потоков ты открываешь выбор динамического содержимого через значок молнии рядом с полем ввода. Клик открывает всплывающее окно, в котором можно искать или прокручивать значения из предыдущих шагов. Также можно просто набрать косую черту (/) в поле, чтобы открыть тот же выбор. Поиск автоматически фильтрует подходящие поля, поэтому в длинных потоках не нужно просматривать каждую карточку по отдельности.
- Выбрать значок молнии: сразу открывает список динамического содержимого из всех предыдущих шагов.
- Выбрать кнопку fx: вместо этого открывает редактор выражений, в котором функции сочетаются с динамическим содержимым.
- Набрать косую черту (/): открывает тот же выбор прямо в текстовом поле, без использования мыши.
Редактор выражений и динамического содержимого в конструкторе к тому же многострочный и при необходимости может разворачиваться на весь экран, что особенно полезно для более сложных выражений с несколькими вложенными функциями, как указано в документации по конструктору облачных потоков.
Динамическое содержимое в выражениях
Динамическое содержимое можно не только вставлять напрямую, но и оборачивать в функции. Частый пример: форматирование даты. С помощью функции `formatDateTime` ты объединяешь дату из триггера с нужным форматом вывода, например `formatDateTime(triggerBody()?['date'], 'MM/dd/yyyy')`. Динамическое содержимое при этом предоставляет исходное значение, а функция определяет, как оно будет выглядеть в итоге. Такое взаимодействие динамического содержимого и функций лежит в основе практически любого более сложного потока, независимо от того, преобразуешь ли ты числа, собираешь тексты или проверяешь условия.
Когда динамическое содержимое не отображается
Особенно в начале часто случается, что ожидаемое значение просто отсутствует в списке. Официальное руководство по устранению неполадок называет две типичные причины:
- Включена опция Split On. Триггеры, способные одновременно возвращать несколько записей, например "Когда отправлен новый ответ", предлагают настройку Split On. Если она включена, поля этого триггера могут быть недоступны в выборе динамического содержимого. Решением является отключение этой опции в настройках триггера.
- Тип данных не соответствует полю. Выбор по умолчанию фильтрует по типу данных, поэтому текстовое поле в первую очередь показывает текстовые значения. Числовое значение при этом автоматически не появляется. Либо ты ищешь его целенаправленно, что отменяет фильтрацию, либо используешь действие Составить (Compose) в качестве промежуточного шага, вывод которого отображается как тип "любой" в любом выборе.
Подробности об обеих причинах и соответствующих шагах решения ты найдёшь в документации о пропавшем выборе динамического содержимого.
Действие "Составить" как промежуточное хранилище
Если тебе нужно значение несколько раз в потоке или ты хочешь упростить выражение, стоит использовать действие операций с данными Составить (Compose). Оно принимает входные данные, например составное выражение или массив, а затем предоставляет результат в виде собственного вывода Outputs. Этот вывод после этого появляется в списке динамического содержимого как обычно и может использоваться повторно сколько угодно раз, как показывает документация по операциям с данными. Это особенно удобно, если ты не хочешь повторять сложное выражение в трёх разных действиях, а вместо этого вычисляешь его один раз и затем везде ссылаешься на него как на готовое динамическое содержимое.
Практический пример вкратце
- Триггер Когда отправлен новый ответ предоставляет идентификатор ответа.
- Действие Получить сведения об ответе использует этот идентификатор и затем предоставляет имя, адрес электронной почты и все поля формы как собственное динамическое содержимое.
- Действие Отправить электронное письмо обращается именно к этим полям, без того чтобы тебе приходилось копировать их куда-либо вручную.
- Действие Составить объединяет два или три поля в единый текст, который затем сам становится доступен как динамическое содержимое.
Так и возникает настоящая сила потока: каждый шаг структурированно передаёт свои результаты следующему, а ты сохраняешь контроль над тем, куда попадает каждое значение, без копирования и вставки между системами.
Если при создании собственных потоков ты застреваешь именно на этих моментах, будь то отсутствие динамического содержимого, вложенные выражения или вопрос о том, как вообще должен быть структурирован поток, консультации по Power Automate от NordFlux помогают один раз аккуратно выстроить базовый принцип, вместо того чтобы каждый раз заново его угадывать.
Часто задаваемые вопросы
В чём разница между динамическим содержимым и переменной?
Динамическое содержимое представляет собой вывод конкретного триггера или конкретного действия и существует автоматически, как только этот шаг присутствует в потоке. Переменную же нужно явно создавать с помощью действия Инициализировать переменную, и её можно многократно изменять в дальнейшем ходе потока, тогда как динамическое содержимое из шага всегда предоставляет значение именно этого одного выполнения.
Почему я не вижу в списке динамическое содержимое из предыдущего шага?
Чаще всего это связано либо с включённой опцией Split On у триггера, либо с тем, что тип данных поля не соответствует целевому типу и поэтому отфильтровывается. Целенаправленный поиск в окне выбора отменяет эту фильтрацию, а также может помочь промежуточное действие Составить.
Можно ли одновременно комбинировать динамическое содержимое из нескольких шагов?
Да. Ты можешь использовать несколько значений из разных предыдущих шагов в одном поле, либо напрямую одно за другим, либо встроенными в функцию вроде `concat()`. Редактор выражений при этом по-прежнему даёт доступ к полному списку динамического содержимого независимо от того, из какого шага оно происходит.
Работает ли динамическое содержимое также в потоках рабочего стола?
В классическом понимании облачного потока не напрямую: потоки рабочего стола с Power Fx вместо этого работают с типизированными и динамическими значениями, которые функционируют похожим образом, но имеют собственные правила преобразования. Для облачных потоков, то есть классических цепочек триггер-действие, описанный здесь принцип применяется без ограничений.
Нужно ли всегда выбирать динамическое содержимое вручную?
Нет. Copilot может генерировать выражения, включая подходящее динамическое содержимое, также на основе описания на естественном языке. Тем не менее для понимания того, почему поток вообще работает и как исправить его в случае ошибки, стоит хотя бы раз самостоятельно потренироваться во вставке вручную.
NordFlux UG (haftungsbeschränkt)
NordFlux создаёт цифровых сотрудников для организаций: автоматизации и КИ-агентов, которые берут на себя повторяющуюся работу. Вы сохраняете контроль.
Конкретные вопросы по автоматизации или КИ?
В рамках бесплатного первичного анализа мы напрямую обсудим Ваш случай. Без обязательств.