Как создавать настраиваемые действия в Power Automate для компьютеров
Повышайте производительность, возможность повторного использования и расширяемость с помощью настраиваемых действий в Power Automate для компьютеров. В этой статье обсуждается, как настраиваемые действия в Power Automate для компьютеров могут помочь создателям создавать собственные многократно используемые действия, которые можно использовать в нескольких потоках. Создатели создают настраиваемые действия, объединяя последовательность шагов или функций в новое действие. Настраиваемые действия создаются с использованием пакета SDK действий Power Automate для компьютеров, который предоставляет набор API-интерфейсов, позволяющих создателям создавать настраиваемые действия с использованием языка .NET C#. Пользовательскими действиями также можно поделиться с другими пользователями через раздел пользовательских действий в Power Automate (make.powerautomate.com). В этой статье вы найдете подробные пошаговые инструкции по созданию, сборке, развертыванию, использованию и обновлению настраиваемых действий.
Внимание
Хотя основные функции, используемые при создании настраиваемых действий, поддерживаются, предоставленные решения, ресурсы и примеры сценариев, упомянутые здесь, служат примером реализации этих функций и не включают поддержку.
Обзор
Возможность пользовательских действий в Power Automate для компьютеров позволяет создавать собственные многократно используемые действия, которые можно использовать в нескольких классических потоках. Настраиваемые действия экономят ваше время и усилия, позволяя повторно использовать сложные или часто используемые действия без необходимости создавать их заново каждый раз при создании нового потока. Создатели могут применять свои существующие навыки и знания для создания настраиваемых действий, которые интегрируются с другими системами и сервисами. Кроме того, профессиональные разработчики могут поместить существующие функции или библиотеки кода в оболочку для создания нового настраиваемого действия, что приведет к увеличению возможности повторного использования ресурсов организации.
Вы создаете настраиваемые действия, объединяя последовательность методов или функций в новое действие. Создав настраиваемое действие, используйте его в любом классическом потоке, перетащив его на холст конструктора Power Automate для компьютеров.
Пользовательскими действиями можно поделиться с другими пользователями через раздел «Настраиваемые действия» в Power Automate, что предоставляет центральный репозиторий для совместного использования и обнаружения пользовательских действий. Это означает, что пользователи могут извлечь выгоду из опыта и знаний других сотрудников организации и могут легко находить и использовать настраиваемые действия, созданные другими создателями.
В целом пользовательские действия в Power Automate для компьютеров предоставляют мощный способ расширить функциональность продукта, оптимизировать процесс построения потоков и способствовать сотрудничеству и инновациям внутри организации.
Предварительные условия
- Последняя версия Power Automate для компьютеров — Установка Power Automate
- Инструмент разработки C#, такой как Visual Studio Community/Professional/Enterprise 2022 с рабочей нагрузкой разработки классических приложений .NET
- SDK пользовательских действий — Галерея NuGet | Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
- Цифровой сертификат:
- Создание самозаверяющего сертификата — Обзор создания самозаверяющих сертификатов — .NET
- Корпоративное развертывание — доверенный сертификат вашей организации от центра сертификации — Цифровые подписи и сертификаты — Поддержка Office
- SignTool:
- Сценарий Windows PowerShell (.ps1) — Создание настраиваемых действий — Power Automate
Создание собственного пользовательского действия
Откройте Visual Studio, чтобы создать новый проект, используя шаблон Библиотека классов (.NET Framework).
Настройте новый проект, указав имя проекта, расположение файлов и задайте Framework как .NET Framework 4.7.2.
Заметка
Убедитесь, что вы соблюдаете соглашение об именовании. Дополнительная информация: Соглашения об именах пользовательских модулей
В Visual Studio выберите Сервис>Диспетчер пакетов NuGet>Консоль диспетчера пакетов.
Откройте окно PowerShell и установите пакет NuGet PowerAutomate.Desktop.Actions.SDK с помощью этой команды PowerShell.
Find-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK NuGet\Install-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
Следуйте инструкциям в разделе Создание настраиваемых действий, чтобы создать файл класса для настраиваемого действия.
Информация, которую вы можете использовать для справки для своих действий
Архив эталонного решения: Модульное решение .NET
Действие: запись сообщения в локальный файл.
Входные параметры: имя файла, сообщение для записи в файл.
Выходные параметры: код состояния — true в случае успеха и false в случае неудачи.
Определение класса:
using System;
using System.IO;
using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK;
using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK.Attributes;
namespace ModulesLogEvent
{
[Action(Id = "LogEventToFile" , Order = 1, Category = "Logging")]
[Throws("LogEventError")]
public class LogEventToFile : ActionBase
{
[InputArgument]
public string LogFileName { get; set; }
[InputArgument]
public string LogMessage { get; set; }
[OutputArgument]
public bool StatusCode { get; set; }
public override void Execute(ActionContext context)
{
try
{
// To append all of the text to the file
File.AppendAllText(LogFileName, LogMessage);
StatusCode = true;
}
catch (Exception e)
{
if (e is ActionException) throw;
throw new ActionException("LogEventError", e.Message, e.InnerException);
}
}
}
}
Ресурсы
В этой таблице перечислены описания и понятные имена параметров в файле Resources.resx.
Полное имя | Стоимость | Comment |
---|---|---|
LogEventToFile_Description | Пользовательское действие для регистрации сообщения в предоставленном файле | Описание действия |
LogEventToFile_FriendlyName | LogEventToFile | Имя действия |
LogEventToFile_LogFileName_Description | Входной параметр текстового типа | Описание входных данных действия |
LogEventToFile_LogFileName_FriendlyName | LogFileName | Имя входных данных действия |
LogEventToFile_LogMessage_Description | Входной параметр текстового типа | Описание входных данных действия |
LogEventToFile_LogMessage_FriendlyName | LogMessage | Имя входных данных действия |
LogEventToFile_StatusCode_Description | Выходной параметр логического типа | Описание выходных данных действия |
LogEventToFile_StatusCode_FriendlyName | LogMessage | Имя выходных данных действия |
ModulesLogEvent_Description | Модуль для управления событиями журнала | Описание модуля |
ModulesLogEvent_FriendlyName | LogEvent | Имя модуля |
Создание пакета и развертывание настраиваемого действия
Создайте пакет и разверните его в Power Automate.
Получите цифровой сертификат, чтобы можно было подписать файл DLL пользовательского действия.
Внимание
Самозаверяющие сертификаты предназначены только для тестовых целей и не рекомендуются для использования в рабочей среде. Для организационного развертывания настраиваемых действий в вашей среде мы рекомендуем использовать доверенный цифровой сертификат, соответствующий рекомендациям вашей организации.
Совет
Чтобы упростить процесс разработки и использования настраиваемых действий для Power Automate для компьютеров в вашей организации, вы можете связать доверенный цифровой сертификат с установщиком Power Automate для компьютеров, который распространяется через SCCM/Appstore. > Это позволит автоматически устанавливать сертификат как на компьютеры создателей, так и на автоматических компьютерах среды выполнения, которым требуется Power Automate для компьютеров, без каких-либо дополнительных действий.
В этом примере используется самозаверяющий сертификат.
Создайте самозаверяющий сертификат с помощью этого скрипта.
$certPFXFileName="C:\PADCustomAction\PADCustomActionCert.pfx"; $certCERFileName="C:\PADCustomAction\PADCustomActionCert.cer"; $certStoreLocation="Cert:\LocalMachine\AuthRoot"; $certname = "PADCustomActionSelfSignCert" ##Create certificate $cert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Type CodeSigningCert -Subject "CN=$certname" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 $mypwd = ConvertTo-SecureString -String <YOUR CERT PASSWORD GOES HERE> -Force -AsPlainText ##Export certificate $certPFXFile = Export-PfxCertificate -Cert $cert -FilePath $certPFXFileName -Password $mypwd $certCERFile = Export-Certificate -Cert $cert -FilePath $certCERFileName -Type CERT -Verbose -Force
Импортируйте сертификат в хранилище сертификатов с помощью этой команды.
##Import certificate Import-Certificate -CertStoreLocation $certStoreLocation -FilePath $certCERFile
Убедитесь, что импортированный сертификат отображается в разделе Доверенные корневые центры сертификации>Сертификаты оснастки «Сертификаты» консоли Microsoft Manager Console (MMC).
Завершите создание пользовательского модуля, подписав файл DLL с помощью доверенного сертификата. Используйте командную строку разработчика Visual Studio, чтобы использовать SignTool для этого действия.
Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/Modules.LogEvent.dll"
Чтобы развернуть настраиваемое действие, выполните сборку содержимого пакета в CAB-файл (.cab) с помощью этого сценария PowerShell.
.\BuildCAB.ps1 "C:/PADActions/PADCustomActionEventLog" "C:/PADActions/PADCustomActionEventLog" PADCustomActionEventLog.cab
Подпишите созданный CAB-файл с помощью SignTool.
Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
Перейдите в раздел настраиваемых действий Power Automate, чтобы загрузить созданное вами настраиваемое действие. Укажите имя, описание и CAB-файл, затем выберите Отправить.
Когда действие будет успешно отправлено, вы получите уведомление.
После этих шагов модуль настраиваемого действия упаковывается в CAB-файл и подписывается доверенным сертификатом. Кроме того, CAB-файл настраиваемого действия загружается в библиотеку настраиваемых действий в Power Automate.
Дополнительная информация: Отправка настраиваемых действий
Использование действия настраиваемых действий в рабочем процессе с помощью Power Automate для компьютеров
Создайте классический поток, затем выберите Библиотека ресурсов в конструкторе.
Проверьте настраиваемое действие, доступное в библиотеке ресурсов. Обратите внимание на действие, ранее созданное и отправленное в раздел настраиваемых действий Power Automate.
Выберите Добавить, чтобы добавить это настраиваемое действие в раздел Действия конструктора.
Убедитесь, что настраиваемое действие добавлено успешно. Найдите его в строке поиска Действия в конструкторе Power Automate для компьютеров.
Перетащите настраиваемое действие или дважды щелкните его, чтобы добавить в классический поток.
Укажите входные параметры и дополнительные действия для проверки настраиваемого действия.
Пример классического потока с использованием настраиваемого действия.
Протестируйте поток, чтобы увидеть, как настраиваемое действие работает в режиме реального времени.
Заметка
Импортируйте сертификат, использованный для подписи CAB-файла, на компьютер, используемый для создания классических потоков с настраиваемыми действиями, и на каждый из компьютеров среды выполнения, на которых будут выполняться классические потоки.
После этих шагов было создано настраиваемое действие, модуль упакован в CAB-файл, подписан доверенным сертификатом, отправлен в библиотеку настраиваемых действий в формате Power Automate, классический поток для использования настраиваемого действия был создан и протестирован для успешного запуска.
Обновление и повторное развертывание настраиваемого действия
Обновите функциональность настраиваемого действия, чтобы отразить обновленную возможность, выполнив следующие действия.
Обновите файл класса в решении Visual Studio с новой функциональностью действий. Больше информации: Обновленное решение модуля .NET
Измените подпись файла класса, чтобы она включала третий входной параметр, как показано.
using System; using System.IO; using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK; using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK.Attributes; namespace ModulesLogEvent { [Action(Id = "LogEventToFile" , Order = 1, Category = "Logging")] [Throws("LogEventError")] public class LogEventToFile : ActionBase { [InputArgument] public string LogFileName { get; set; } [InputArgument] public string LogMessage { get; set; } [InputArgument] public string LogLevel { get; set; } [OutputArgument] public bool StatusCode { get; set; } public override void Execute(ActionContext context) { try { // To append all of the text to the file File.AppendAllText(LogFileName, LogLevel + ": " + LogMessage); StatusCode = true; } catch (Exception e) { if (e is ActionException) throw; throw new ActionException("LogEventError", e.Message, e.InnerException); } } } }
Используйте аналогичные шаги, описанные ранее, где вы подписывали файл DLL, создавали CAB-файл, подписывали CAB-файл и отправляли CAB-файл в раздел настраиваемых действий на странице Power Automate. Больше информации: Создание пакета и развертывание настраиваемого действия
Заметка
Прежде чем отправлять обновленный CAB-файл настраиваемого действия, обязательно проанализируйте влияние этого изменения, поскольку классические потоки с этим действием будут обновлены новыми возможностями.
Внесите требуемые обновления в классический поток.
Чтобы проверить возможность обновления, мы добавили третий входной параметр в настраиваемое действие. Обратите внимание, что действие настраиваемого действия помечено в конструкторе как "Ошибка", и его необходимо обновить, добавив новый входной параметр.
Протестируйте поток, чтобы увидеть, как обновленное настраиваемое действие работает в режиме реального времени.
В этом разделе вы обновили базовую функциональность настраиваемого действия, создали пакет, развернули его в Power Automate, провели рефакторинг классического потока и проверили функциональность, запустив классический поток с обновленными возможностями настраиваемого действия в Power Automate для компьютеров.