События
Мощная конференция разработчиков и хак вместе
12 февр., 23 - 28 февр., 23
Присоединяйтесь к онлайн-конференции и 2-недельным хакатоном, чтобы изучить создание мощных решений с помощью Power Platform.
ЗарегистрироватьсяЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
По сути, опрашивающий триггер — это событие, которое периодически вызывает службу для получения новых данных. Опрашивающие триггеры отличаются от веб-перехватчиков тем, что для проверки наличия данных опрашивающие триггеры создают событие, а веб-перехватчики реагируют на принудительную отправку новых данных из службы. Когда поток обнаружит наличие новых данных, с ними можно будет выполнять определенные действия. В этом руководстве показано, как использовать опрашивающий триггер для упреждающего получения новых данных.
Опрашивающий триггер в начале работы устанавливает состояния, а затем через определенные интервалы проверяет, есть ли обновления. Триггер запрашивает все данные, созданные с момента последнего обновления состояния. Кроме того, триггер поддерживает контекст состояния между запросами.
В следующем примере в общих чертах показано, как триггер опроса получает новые данные.
В этом разделе показано, как создать опрашивающий триггер в пользовательском интерфейсе Power Automate. В качестве примера для нашей процедуры используется служба TripPin. Служба TripPin — это очень простой интерфейс REST API, который предоставляет список людей и сведения об их путешествиях.
Чтобы использовать службу TripPin, нужно динамически создать для нее URL-адреса. Введите значение https://services.odata.org/TripPinRESTierService в адресную строку браузера. Этот запрос возвращает метаданные, необходимые для демонстрации. Скопируйте эти метаданные и сохраните их в файл для последующего использования.
Чтобы настроить службу TripPin и создать опрашивающий триггер, выполните следующие действия:
В Power Automate выберите вкладку Данные > Пользовательские соединители.
На панели Пользовательские соединители щелкните Создать пользовательский соединитель, а затем выберите Создать с нуля.
В диалоговом окне создания пользовательского соединителя введите для него имя (в нашем примере это Тест опроса), затем щелкните Продолжить.
На странице Общие предоставьте описание и имя узла. В этом примере вы будете использовать URL-адрес services.odata.org, который был получен как значение узла в метаданных TripPin.
Параметр | Value |
---|---|
Описание | "TripPin — пример веб-сайта путешествий" |
Узел | "services.odata.org" |
На странице Безопасность выберите значение Без проверки подлинности для проверки подлинности.
На странице Определение выберите + Создать триггер и заполните описание вашего триггера. В этом примере создается триггер, который срабатывает при добавлении нового путешествия в список маршрутов определенного человека.
Параметр | Value |
---|---|
Сводка | "Активируется при добавлении путешествия" |
Описание | "Активируется при добавлении путешествия" |
Идентификатор операции | "OnNewTrip" |
Видимость | "нет" (дополнительные сведения см. в списке ниже) |
Тип триггера | "Опрос" |
Свойство Видимость для операций и параметров в потоке имеет следующие параметры:
Область Запрос отображает информацию на основе HTTP-запроса на действие. Выберите Импорт из примера.
На панели Импорт из примера вы определите запрос для триггера опроса. В качестве типа команды выберите значение GET. Из метаданных, которые вы получили при динамическом создании URL-адресов для службы, скопируйте URL-адрес в поле URL-адрес на панели Импорт из примера. После этого адреса добавьте строку /People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc
. Например:
https://services.odata.org/TripPinRESTierService/(S(<service number>))/People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc
Примечание
Не забудьте указать реальное число из метаданных вместо заполнителя <service number> в URL-адресе.
В этом примере URL-адреса вы создаете запрос для отдельного лица, а {Person}
— это переменная среды выполнения, которую пользователь может указать в потоке. Далее вы указываете, что хотите получить сведения о поездках конкретного человека, которого укажет пользователь.
Но вам нужны не все поездки, а только новые, которые добавились после последнего опроса. Выражение $filter=TripId gt 0
позволяет получить новые поездки, возвращая значение TripId для всех поездок, у которых оно превышает ранее полученный идентификатор TripId. Число 0
, которое здесь используется, автоматически обновляется при каждом выполнении опрашивающего триггера.
Также выражение $orderby=TripId desc
указывает, что данные возвращаются в порядке убывания значений TripId. Получение данных в порядке убывания — обязательное требование для триггера. Это означает, что возвращаемые внутренней службой результаты нужно отсортировать по параметру триггера таким образом, чтобы первым в массиве данных располагался самый последний элемент данных (в нашем примере — с максимальным значением TripId).
Нажмите кнопку Импорт, чтобы импортировать данные примера. Теперь в области запроса отобразятся команда, URL-адрес, путь и параметры запроса.
Выберите в области запроса параметр запроса $filter, а затем щелкните Изменить, чтобы перейти к диалоговому окну Параметры.
В диалоговом окне Параметр для $filter
выберите для параметра Видимость значение внутренняя. Такой параметр используется только соединителем для внутренних операций, что не позволяет пользователю вносить изменения. Дополнительные сведения о параметрах видимости см. в описании расширения OpenAPI x-ms-visibility.
Выберите Назад, чтобы вернуться на страницу запроса.
Выберите в области запроса параметр запроса $orderby, а затем щелкните Изменить, чтобы перейти к диалоговому окну Параметры.
В диалоговом окне Параметр для $orderby
выберите для параметра Это обязательное значение? значение Да, а для параметра Видимость значение внутренняя. Как и в предыдущем случае, эти настройки не позволят пользователю вносить изменения в параметр.
Кроме того, введите значение Описание идентификатора путешествия в поле Значение по умолчанию. Эти настройки обеспечат вывод результатов в обратном порядке.
Выберите Назад, чтобы вернуться в предыдущую зону.
Область Ответ отображает информацию на основе HTTP-ответа для действия. Щелкните Добавить ответ по умолчанию.
Определите ответ для опрашивающего триггера и выберите действие Импорт. Используйте в качестве текста ответа приведенный ниже пример. Будет автоматически создана схема для ответа.
{
"@odata.context":"https://services.odata.org/TripPinRESTierService/(S(<service number>))/$metadata#Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)",
"value":[
{
"TripId":2,
"ShareId":"9ce142c3-5fd6-4a71-848e-220ebf1e9f3",
"Name":"Honeymoon",
"Budget":2650,
"Description":"Happy honeymoon trip",
"Tags":[
"Travel",
"honeymoon"
],
"StartsAt":"2014-02-01T00:00:00Z",
"EndsAt":"2014-02-04T00:00:00Z"
},
{
"TripId":1,
"ShareId":"f94e9116-8bdd-4dac-ab61-08438d0d9a71",
"Name":"Trip in Beijing",
"Budget":2000,
"Description":"Trip from Shanghai to Beijing",
"Tags":[
"Travel",
"Beijing"
],
"StartsAt":"2014-02-01T00:00:00Z",
"EndsAt":"2014-02-04T00:00:00Z"
}
]
}
Примечание
Не забудьте указать реальное число из метаданных вместо заполнителя <service number> в URL-адресе.
В области Конфигурация триггера выберите параметр, который используется для отслеживания изменений состояния, полученных от TripPin. В нашем примере нужно ввести параметр $filter
.
Для этого примера укажите следующее выражение в поле Укажите значение для передачи в выбранный параметр запроса.
TripId gt @{triggerBody().value[0].TripId}
Это выражение позволяет получить последние результаты при запуске триггера. Приведенное здесь выражение означает, что триггер выполняется, когда значение TripId
больше значения, возвращаемого остальной частью выражения. Если значение TripId
не превышает значение, возвращаемое остальной частью выражения, триггер не срабатывает.
В поле Выберите коллекцию, содержащую данные триггеров выберите @triggerBody().value. Это массив, который содержит данные триггера, возвращаемые внутренней службой.
В верхней части мастера щелкните Создать соединитель.
Теперь, когда вы все настроили, можно применить опрашивающий триггер в потоке. В рамках этого раздела вы создадите поток для запрашивания изменений из серверной службы при каждой регистрации нового обращения для определенного человека.
В левой части страницы flow.microsoft.com выберите Создать.
В поле Начать с нуля выберите Мгновенный поток.
В диалоговом окне Создать мгновенный поток нажмите кнопку Пропустить.
В поле поиска введите Активируется при добавлении путешествия.
Выберите элемент в списке, чтобы использовать его в качестве триггера.
В поле для сведений о лице в свойствах потока введите russellwhyte, чтобы выбрать человека для изучения поездок, а затем щелкните + Новый шаг.
В диалоговом окне Выберите действие щелкните вкладку Встроенное, а затем выберите Дата и время.
В области Дата и время выберите Текущее время.
Выберите Сохранить, чтобы сохранить новый поток.
Чтобы проверить правильность настройки, выберите Мои потоки, затем выберите поток Активируется при добавлении путешествия -> Текущее время. Так как этот поток еще не выполнялся, сейчас в журнале ничего не отображается.
Чтобы протестировать поток, откройте приложение Postman, в котором вы добавите данные в TripPin.
В окне Postman выберите значок + рядом с вкладкой Панель запуска.
Для запроса без заголовка выберите POST в раскрывающемся списке слева. Затем введите указанный ниже адрес в поле Введите URL-адрес запроса.
https://services.odata.org/TripPinRESTierService/(S(<Service number))/People('russellwhyte')/Trips
Примечание
Не забудьте указать реальное число из метаданных вместо заполнителя <service number> в URL-адресе.
В запросе POST выберите вкладку Текст, а затем выберите необработанный. В раскрывающемся списке справа от значения необработанный выберите JSON.
Введите в текстовом поле следующий текст:
{
"TripId": 190,
"ShareId": "9d9b2fa0-efbf-490e-a5e3-bac8f7d47354",
"Name": "Trip in US",
"Budget": 5000,
"Description": "Trip from San Francisco to New York City",
"Tags": [
"business",
"New York meeting"
],
"StartsAt": "2014-01-01T00:00:00Z",
"EndsAt": "2014-01-04T00:00:00Z"
}
Щелкните Отправить, чтобы отправить сообщение POST на сайт TripPin.
В ответе должно быть указано состояние 201 Created
.
Теперь, когда вы выберете Мои потоки и щелкнете поток Активируется при добавлении путешествия -> Текущее время, отобразится журнал выполнения для триггера.
Примечание
Если вы будете выполнять в Postman новый запрос POST для того же человека, измените значение TripId в тексте JSON. Иначе возникнет ошибка "409 Conflict" (конфликт).
Если все настроено правильно, вы будете получать уведомления в Microsoft Power Automate при каждом добавлении новой поездки в TripPin.
Для нас очень важны отзывы о проблемах с нашей платформой соединителей и новые идеи о функциях. Чтобы оставить отзыв, выберите пункт Сообщить о проблемах или получить помощь с соединителями и выберите тип отзыва.
События
Мощная конференция разработчиков и хак вместе
12 февр., 23 - 28 февр., 23
Присоединяйтесь к онлайн-конференции и 2-недельным хакатоном, чтобы изучить создание мощных решений с помощью Power Platform.
ЗарегистрироватьсяОбучение
Модуль
Create triggers for custom connectors for Microsoft Power Platform - Training
Unlock the power of the Dataverse Web API by mastering OAuth authorization and harnessing OData for seamless data querying.
Сертификация
Microsoft Certified: Power Automate RPA Developer Associate - Certifications
Узнайте, как улучшить и автоматизировать рабочие процессы с помощью разработчика RPA Microsoft Power Automate.
Документация
Использование веб-перехватчика в качестве триггера для Azure Logic Apps и Power Automate
Узнайте, как создавать потоки, которые взаимодействуют с веб-перехватчиками в Azure Logic Apps и Power Automate.
Добавление аутентификации OAuth для триггеров на основе HTTP-запросов - Power Automate
Узнайте о параметрах аутентификации для триггеров HTTP-запросов.
Отправка шаблона облачного потока в коллекцию Power Automate - Power Automate
Передайте свой поток в виде шаблона, чтобы другие организации могли найти его в коллекции шаблонов и использовать созданный вами поток.