แชร์ผ่าน


วิธีการสร้างแอคชันแบบกำหนดเองใน 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 สำหรับเดสก์ท็อปเป็นวิธีที่มีประสิทธิภาพในการขยายฟังก์ชันการทำงานของผลิตภัณฑ์ ปรับปรุงกระบวนการสร้างโฟลว์ ส่งเสริมการทำงานร่วมกันและนวัตกรรมภายในองค์กร

ข้อกำหนดเบื้องต้น

สร้างแอคชันแบบกำหนดเองของคุณเอง

  1. เปิด Visual Studio เพื่อสร้างโครงการใหม่โดยใช้เทมเพลตของ Class Library (.NET Framework) สกรีนช็อตของกล่องโต้ตอบ สร้างโครงการ C#

  2. กำหนดค่าโครงการใหม่ของคุณด้วยชื่อโครงการ ตำแหน่งไฟล์ และตั้งค่า Framework เป็น .NET Framework 4.7.2

    หมายเหตุ

    ตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามข้อตกลงในการตั้งชื่อ ข้อมูลเพิ่มเติม: ข้อตกลงในการตั้งชื่อโมดูลแบบกำหนดเอง

    สกรีนช็อตของรายละเอียดไลบรารี สร้างคลาส C#

  3. ใน Visual Studio ให้เลือก เครื่องมือ>NuGet Package Manager>คอนโซล Package Manager

    สกรีนช็อตของ .NET Package Manager

  4. เปิดหน้าต่าง PowerShell และติดตั้งแพ็คเกจ NuGet PowerAutomate.Desktop.Actions.SDK โดยใช้คำสั่ง PowerShell นี้

    Find-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    NuGet\Install-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    
  5. ทำตามขั้นตอนใน สร้างแอคชันแบบกำหนดเอง เพื่อสร้างไฟล์ Class สำหรับแอคชันแบบกำหนดเองของคุณ

ข้อมูลที่คุณสามารถใช้เป็นข้อมูลอ้างอิงสำหรับแอคชันของคุณได้

ไฟล์เก็บถาวรโซลูชันอ้างอิง: .NET Module Solution

แอคชัน: เขียนข้อความลงในไฟล์ที่อยู่ในเครื่อง

พารามิเตอร์อินพุต: ชื่อไฟล์ ข้อความที่จะเขียนลงในไฟล์

พารามิเตอร์เอาต์พุต: โค้ดสถานะ – true หากสำเร็จและ false หากไม่สำเร็จ

คำนิยามของ Class:

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

  1. รับใบรับรองดิจิทัลเพื่อให้สามารถลงนามในไฟล์ DLL แอคชันแบบกำหนดเองได้

    สำคัญ

    ใบรับรองที่ลงนามด้วยตนเองมีไว้เพื่อการทดสอบเท่านั้น และไม่แนะนำให้ใช้ในการใช้งานจริง สำหรับการปรับใช้แอคชันแบบกำหนดเองระดับองค์กรในสภาพแวดล้อมของคุณ เราขอแนะนำให้คุณใช้ใบรับรองดิจิทัลที่เชื่อถือได้ซึ่งเป็นไปตามแนวทางองค์กรของคุณ

    เคล็ดลับ

    หากต้องการปรับปรุงกระบวนการพัฒนาและการใช้แอคชันแบบกำหนดเองใน Power Automate สำหรับเดสก์ท็อปทั่วทั้งองค์กรของคุณ คุณสามารถรวมใบรับรองดิจิทัลที่เชื่อถือได้เข้ากับโปรแกรมติดตั้ง Power Automate สำหรับเดสก์ท็อปที่เผยแพร่ผ่าน SCCM/Appstore > ซึ่งจะทำให้สามารถติดตั้งใบรับรองได้โดยอัตโนมัติทั้งในผู้สร้างและเครื่องรันไทม์แบบอัตโนมัติซึ่งต้องใช้ Power Automate สำหรับเดสก์ท็อป โดยไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม

    สำหรับตัวอย่างนี้ จะใช้ใบรับรองที่ลงนามด้วยตนเอง

    1. สร้างใบรับรองที่ลงนามด้วยตนเองโดยใช้สคริปต์นี้

      $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
      
    2. นำเข้าใบรับรองไปยังพื้นที่เก็บใบรับรองโดยใช้คำสั่งนี้

      ##Import certificate
      Import-Certificate -CertStoreLocation $certStoreLocation -FilePath $certCERFile
      
    3. ตรวจสอบว่าใบรับรองที่นำเข้าปรากฏภายใต้ Trusted Root Certification Authoritues>ใบรับรอง ในสแนปอิน Certificates Microsoft Manager Console (MMC) หรือไม่

      ภาพหน้าจอของการตรวจสอบใบรับรองใน Certificate Manager

  2. จบมอดูลแบบกำหนดเองที่สร้างขึ้นจากการลงนามไฟล์ DLL โดยใช้ใบรับรองที่เชื่อถือได้ ใช้พรอมต์คำสั่งนักพัฒนาของ Visual Studio เพื่อใช้ SignTool สำหรับกิจกรรมนี้

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/Modules.LogEvent.dll"
    
  3. หากต้องการปรับใช้แอคชันแบบกำหนดเอง ให้สร้างแพ็คเกจเนื้อหาลงในไฟล์ cabinet (.cab) โดยใช้สคริปต์ PowerShell นี้

    .\BuildCAB.ps1 "C:/PADActions/PADCustomActionEventLog" "C:/PADActions/PADCustomActionEventLog" PADCustomActionEventLog.cab
    

    ไปที่ไฟล์สคริปต์ตัวอย่าง BuildCAB.ps1

  4. ลงนามไฟล์ cabinet ที่สร้างขึ้นโดยใช้ SignTool

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
    
  5. ไปที่ส่วนแอคชันแบบกำหนดเองของ Power Automate เพื่ออัปโหลดแอคชันแบบกำหนดเองที่คุณสร้างขึ้น ระบุชื่อ คำอธิบาย และไฟล์ cabinet จากนั้นเลือก อัปโหลด

    ภาพหน้าจอแสดงการนำเข้าแพ็คเกจแอคชันแบบกำหนดเอง (ไฟล์ CAB) ในพอร์ทัล Power Automate

    คุณจะได้รับการแจ้งเตือนเมื่อมีการอัปโหลดแอคชันเสร็จสมบูรณ์

ทำตามขั้นตอนเหล่านี้ มอดูลแอคชันแบบกำหนดเองจะถูกบรรจุเข้าไปในไฟล์ cabinet และลงนามด้วยใบรับรองที่เชื่อถือได้ นอกจากนี้ ไฟล์ cabinet แอคชันแบบกำหนดเองจะถูกอัปโหลดไปยังไลบรารีแอคชันแบบกำหนดเองใน Power Automate

ข้อมูลเพิ่มเติม: อัปโหลดแอคชันแบบกำหนดเอง

ใช้กิจกรรมแอคชันแบบกำหนดเองของคุณในโฟลว์เดสก์ท็อปโดยใช้ Power Automate สำหรับเดสก์ท็อป

  1. สร้างโฟลว์เดสก์ท็อป แลh;เลือก ไลบรารีแอสเซท ในตัวออกแบบ

    ภาพหน้าจอแสดงการนำทางไปยังไลบรารีแอสเซทใน Power Automate สำหรับเดสก์ท็อป

  2. ตรวจสอบแอคชันแบบกำหนดเองที่มีอยู่ในไลบรารีแอสเซท สังเกตแอคชันที่สร้างไว้ก่อนหน้านี้และอัปโหลดไปยังส่วนแอคชันแบบกำหนดเองของ Power Automate

    เลือก เพิ่ม เพื่อเพิ่มแอคชันแบบกำหนดเองนี้ไปยังส่วน แอคชัน ของตัวออกแบบ

    ภาพหน้าจอแสดงการเพิ่มแอคชันแบบกำหนดเองจากไลบรารีแอสเซท

  3. ตรวจสอบว่ามีการเพิ่มแอคชันแบบกำหนดเองสำเร็จแล้ว ค้นหาได้ที่แถบค้นหา แอคชัน ในตัวออกแบบของ Power Automate สำหรับเดสก์ท็อป

    ภาพหน้าจอแสดงการค้นหาแอคชันแบบกำหนดเองใน Power Automate สำหรับเดสก์ท็อป

  4. ลากแอคชันแบบกำหนดเองหรือดับเบิลคลิกเพื่อเพิ่มลงในโฟลว์เดสก์ท็อป

  5. ระบุพารามิเตอร์อินพุตและขั้นตอนเพิ่มเติมต่างๆ เพื่อทดสอบแอคชันแบบกำหนดเอง

    ภาพหน้าจอแสดงพารามิเตอร์อินพุตสำหรับแอคชันแบบกำหนดเอง

    ตัวอย่างโฟลว์เดสก์ท็อปโดยใช้แอคชันแบบกำหนดเอง

    ภาพหน้าจอแสดงการใช้แอคชันแบบกำหนดเองในโฟลว์เดสก์ท็อป

  6. ทดสอบโฟลว์เพื่อดูการทำงานแบบเรียลไทม์ของแอคชันแบบกำหนดเอง

    ทดสอบแอคชันแบบกำหนดเองในโฟลว์เดสก์ท็อป

หมายเหตุ

นำเข้าใบรับรองที่ใช้ในการลงนามไฟล์ cabinet ไปยังเครื่องที่ใช้สร้างโฟลว์เดสก์ท็อปที่มีแอคชันแบบกำหนดเอง และไปยังเครื่องรันไทม์แต่ละเครื่องที่จะเรียกใช้โฟลว์เดสก์ท็อป

เมื่อทำตามขั้นตอนเหล่านี้ แอคชันแบบกำหนดเองจะถูกสร้างขึ้น มอดูลที่บรรจุอยู่ในไฟล์ cabinet ที่ลงนามด้วยใบรับรองที่เชื่อถือได้ และอัปโหลดไปยังไลบรารีแอคชันแบบกำหนดเองใน Power Automate ซึ่งเป็นโฟลว์เดสก์ท็อปเพื่อใช้แอคชันแบบกำหนดเองที่สร้างขึ้นและทดสอบเพื่อให้การใช้งานสำเร็จ

อัปเดตและปรับใช้แอคชันแบบกำหนดเองอีกครั้ง

อัปเดตฟังก์ชันการทำงานของแอคชันแบบกำหนดเองเพื่อให้สะท้อนถึงความสามารถที่อัปเดตโดยทำตามขั้นตอนเหล่านี้

  1. อัปเดตไฟล์คลาสในโซลูชัน Visual Studio พร้อมฟังก์ชันการทำงานใหม่ ข้อมูลเพิ่มเติม: โซลูชัน .NET Module ที่อัปเดตแล้ว

    แก้ไขลายเซ็นของไฟล์คลาสเพื่อรับพารามิเตอร์อินพุตตัวที่สามดังที่แสดง

    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);
             }
         }
      }
    }
    
  2. ใช้ขั้นตอนที่คล้ายกันซึ่งได้มีการอธิบายไว้ก่อนหน้านี้ที่คุณลงนามในไฟล์ DLL จากนั้นสร้างไฟล์ cabinet แล้วลงนามในไฟล์ cabinet และอัปโหลดไฟล์ cabinet ไปยังส่วนแอคชันแบบกำหนดเองใน Power Automate ข้อมูลเพิ่มเติม: สร้างแพ็คเกจและปรับใช้แอคชันแบบกำหนดเองของคุณ

    หมายเหตุ

    ก่อนที่จะอัปโหลดไฟล์ cabinet แอคชันแบบกำหนดเองที่อัปเดตแล้ว อย่าลืมวิเคราะห์ผลกระทบของการเปลี่ยนแปลงนี้ เนื่องจากโฟลว์เดสก์ท็อปที่มีแอคชันนี้จะได้รับการอัปเดตด้วยความสามารถใหม่ๆ

    ภาพหน้าจอแสดงการอัปเดตแอคชันแบบกำหนดเองในพอร์ทัล Power Automate

  3. อัปเดตโฟลว์เดสก์ท็อปตามต้องการ

    เพื่อตรวจสอบความสามารถในการอัปเดต เราได้เพิ่มพารามิเตอร์อินพุตตัวที่สามให้กับแอคชันแบบกำหนดเอง โปรดสังเกตว่ากิจกรรมแอคชันแบบกำหนดเองถูกทำเครื่องหมายว่าเป็นข้อผิดพลาดในตัวออกแบบ และจำเป็นต้องได้รับการอัปเดตด้วยพารามิเตอร์อินพุตใหม่

    ภาพหน้าจอแสดงการปรับโครงสร้างโฟลว์เดสก์ท็อปใหม่

    ภาพหน้าจอแสดงแอคชันแบบกำหนดเองที่อัปเดตพร้อมพารามิเตอร์อินพุตเพิ่มเติม

  4. ทดสอบโฟลว์เพื่อดูการทำงานแบบเรียลไทม์ของแอคชันแบบกำหนดเองที่อัปเดตแล้ว

    ทดสอบแอคชันแบบกำหนดเองที่อัปเดตแล้วอีกครั้งในโฟลว์เดสก์ท็อป

ในส่วนนี้ คุณได้อัปเดตฟังก์ชันการทำงานพื้นฐานของแอคชันแบบกำหนดเอง สร้างแพ็คเกจ ปรับใช้กับ Power Automate ปรับโครงสร้างโฟลว์เดสก์ท็อปใหม่ และตรวจสอบฟังก์ชันการทำงานโดยการเรียกใช้โฟลว์เดสก์ท็อปที่มีความสามารถที่อัปเดตแล้วของแอคชันแบบกำหนดเองใน Power Automate สำหรับเดสก์ท็อป