如何在桌面版 Power Automate 中建置自訂動作
透過桌面版 Power Automate 中的自訂動作提高工作效率、可重複使用性和可擴充性。 本文討論桌面版 Power Automate 中的自訂動作如何幫助開發者建立專屬可在多個流程中使用的可重複使用動作。 製作者透過將一系列步驟或功能組合成一個新動作來建立自訂動作。 自訂動作是使用桌面版 Power Automate 動作 SDK 建立的,該 SDK 提供了一組 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
建立專屬自訂動作
使用專案名稱、檔案位置設定新項目,並將框架設定為 .NET Framework 4.7.2。
注意
請務必遵循命名規範進行。 更多資訊:自訂模組名稱約定
在 Visual Studio 中,選取工具>NuGet 套件管理員>套件管理器主控台。
開啟 PowerShell 視窗並使用此 PowerShell 指令安裝 NuGet 軟體套件 PowerAutomate.Desktop.Actions.SDK 。
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 | Action outputName |
ModulesLogEvent_Description | 管理紀錄事件的模組 | 模組描述 |
ModulesLogEvent_FriendlyName | LogEvent | 模組名稱 |
建置套件並部署您的自訂動作
建立套件並部署到 Power Automate。
取得數位憑證,以便可以對自訂動作 DLL 檔案進行簽署。
重要
自我簽署憑證僅用於測試目的,不建議用於生產用途。 對於在您的環境中組織部署自訂動作,我們建議您使用遵循組織準則的受信任數位憑證。
提示
為了簡化在整個組織內開發和使用桌面版 Power Automate 自訂動作的流程,您可以將受信任的數位憑證與透過 SCCM/Appstore 指派的 Power Automate 桌面版安裝程序捆綁在一起。 > 這將使憑證能夠自動安裝在需要桌面版 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 管理器控制台 (MMC) 管理單元中的受信任的根憑證授權單位>憑證下。
透過使用受信任的憑證對 DLL 檔案進行簽署,完成建立的自訂模組。 使用 Visual Studio 的開發人員命令提示字元,使用 Signtool 來執行此活動。
Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/Modules.LogEvent.dll"
若要部署自訂操作,請使用此 PowerShell 指令碼將套件內容建置到壓縮套件檔案 (.cab) 中。
.\BuildCAB.ps1 "C:/PADActions/PADCustomActionEventLog" "C:/PADActions/PADCustomActionEventLog" PADCustomActionEventLog.cab
使用 Signtool 對產生的 Cabinet 檔案進行簽署。
Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
前往 Power Automate 自訂動作部分,上傳您建立的自訂。 提供名稱、描述和封包檔,然後選擇上傳。
動作成功上傳後,您會收到通知。
按照這些步驟,自訂動作模組將打包到壓縮檔案中,並使用受信任的憑證進行簽署。 此外,自訂動作封包檔會上傳至 Power Automate 中的自訂動作庫。
更多資訊:上傳自訂動作
使用桌面版 Power Automate 在桌面流程中使用自訂動作活動
請建立新的桌面流程,然後在設計工具中選取資產庫。
檢查資產庫中可用的自訂動作。 請注意先前建立並上傳到 Power Automate 的自訂動作部分的動作。
選擇新增將此自訂動作新增至設計程式的動作部分。
驗證自訂動作是否已成功新增。 在 Power Automate 桌面版設計器的動作搜尋列中搜尋。
拖曳自訂動作或雙擊以新增至桌面流程。
提供輸入參數和其他步驟來測試自訂動作。
使用自訂動作的範例桌面流程。
測試流程以查看自訂動作即時執行。
注意
將用於對封包檔進行簽署的憑證,匯入到用於透過自訂動作建立桌面串流的電腦,並且將執行桌面流程的每台執行時間電腦。
按照這些步驟,建立一個自訂動作,將模組打包成一個封包檔,使用可信任憑證進行簽名,上傳到 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 檔案進行簽名,建立封包檔對封包檔進行簽名,然後將封包檔上傳到 Power Automate 中的自訂動作部分。 更多資訊:建置套件並部署您的自訂動作
注意
在上傳更新的自訂動作封包檔前,請務必分析此變更的影響,因為包含此動作的桌面流程將更新為新功能。
根據需要更新桌面流程。
為了驗證更新功能,我們為自訂動作新增了第三個輸入參數。 請注意,自訂動作活動在設計器中被標記為錯誤,並且需要使用新的輸入參數進行更新。
測試流程以查看更新自訂動作即時執行。
在本部分中,您更新了自訂動作的基礎功能、建置套件、部署到 Power Automate、重構了桌面流程,並透過使用適用於桌面的 Power Automate 中的自訂動作更新功能來執行桌面流程來驗證功能。