다음을 통해 공유


데스크톱용 Power Automate에서 사용자 지정 작업 빌드 방법

데스크톱용 Power Automate의 사용자 지정 작업을 통해 생산성, 재사용성 및 확장성을 향상하세요. 이 문서에서는 데스크톱용 Power Automate 의 사용자 지정 작업이 제작자가 여러 흐름에서 사용할 수 있는 재사용 가능한 작업을 만드는 데 어떻게 도움이 될 수 있는지 설명합니다. 제작자는 일련의 단계나 기능을 새로운 작업으로 구성하여 사용자 지정 작업을 만듭니다. 사용자 지정 작업은 제작자가 .NET 언어 C#을 사용하여 사용자 지정 작업을 만들 수 있는 API 세트를 제공하는 데스크톱용 Power Automate 작업 SDK를 사용하여 생성됩니다. 사용자 지정 작업은 Power Automate(make.powerautomate.com)의 사용자 지정 작업 섹션을 통해 다른 사용자와 공유할 수도 있습니다. 이 문서에서는 사용자 지정 작업을 생성, 구축, 배포, 사용 및 업데이트하는 방법에 대한 자세한 연습을 찾아보세요.

중요

사용자 지정 작업을 만드는 데 사용되는 필수 기능은 지원되지만 여기에 언급된 제공된 솔루션, 자산 및 샘플 스크립트는 이러한 기능의 구현 예 역할을 하며 지원은 포함되지 않습니다.

개요

데스크톱용 Power Automate의 사용자 지정 작업 기능을 사용하면 여러 데스크톱 흐름에서 사용할 수 있는 재사용 가능한 작업을 직접 만들 수 있습니다. 사용자 지정 작업은 새 흐름을 구축할 때마다 다시 만들지 않고도 복잡하거나 자주 사용하는 작업을 재사용할 수 있으므로 시간과 노력을 절약할 수 있습니다. 제작자는 기존 기술과 지식을 적용하여 다른 시스템 및 서비스와 통합되는 맞춤형 작업을 만들 수 있습니다. 또한 전문 개발자는 기존 기능이나 코드 라이브러리를 래핑하여 조직 자산의 재사용성을 높이는 새로운 사용자 지정 작업을 만들 수 있습니다.

일련의 메서드나 함수를 새로운 작업으로 구성하여 사용자 지정 작업을 만듭니다. 사용자 지정 작업을 만든 후에는 Power Automate 데스크톱 디자이너 캔버스로 끌어서 놓아 모든 데스크톱 흐름에서 사용하세요.

사용자 지정 작업은 사용자 지정 작업을 공유하고 검색하기 위한 중앙 저장소를 제공하는 Power Automate의 사용자 지정 작업 섹션을 통해 다른 사용자와 공유할 수 있습니다. 이는 사용자가 조직 내 다른 사람의 전문 지식과 지식을 활용할 수 있고 다른 제작자가 만든 사용자 지정 작업을 쉽게 찾아서 사용할 수 있음을 의미합니다.

전반적으로 데스크톱용 Power Automate의 사용자 지정 작업은 제품 기능을 확장하고 흐름 구축 프로세스를 간소화하며 조직 내 협업과 혁신을 촉진하는 강력한 방법을 제공합니다.

전제 조건

자신만의 사용자 지정 작업 만들기

  1. Visual Studio를 열고 클래스 라이브러리(.NET Framework)의 템플릿을 사용하여 새 프로젝트를 생성합니다. C# 프로젝트 만들기 대화 상자의 스크린샷.

  2. 프로젝트 이름, 파일 위치로 새 프로젝트를 구성하고 프레임워크.NET Framework 4.7.2로 설정합니다.

    노트

    명명 규칙을 따르십시오. 추가 정보: 사용자 지정 모듈 이름 규칙

    C# 클래스 라이브러리 만들기 세부 정보 스크린샷.

  3. Visual Studio에서 도구>NuGet 패키지 관리자>패키지 관리자 콘솔을 선택합니다.

    .NET 패키지 관리자의 스크린샷.

  4. PowerShell 창을 열고 이 PowerShell 명령을 사용하여 NuGet 패키지 PowerAutomate.Desktop.Actions.SDK를 설치합니다.

    Find-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    NuGet\Install-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    
  5. 사용자 지정 작업 만들기의 단계에 따라 사용자 지정 작업에 대한 클래스 파일을 만듭니다.

작업에 대한 참조로 사용할 수 있는 정보

참조 솔루션 아카이브: .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에 배포합니다.

  1. 사용자 지정 작업 DLL 파일에 서명할 수 있도록 디지털 인증서를 획득하세요.

    중요

    자체 서명된 인증서는 테스트 목적으로만 사용되며 프로덕션 용도로는 권장되지 않습니다. 사용자 환경에 사용자 지정 작업을 조직적으로 배포하려면 조직 지침을 따르는 신뢰할 수 있는 디지털 인증서를 사용하는 것이 좋습니다.

    조직 전체에서 데스크톱용 Power Automate에 대한 사용자 지정 작업을 개발하고 사용하는 프로세스를 간소화하려면 SCCM/Appstore를 통해 배포되는 데스크톱용 Power Automate 설치 프로그램과 함께 신뢰할 수 있는 디지털 인증서를 번들로 묶을 수 있습니다. > 이렇게 하면 추가 작업 없이 데스크톱용 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. 가져온 인증서가 인증서 Microsoft 관리자 콘솔(MMC) 스냅인의 신뢰할 수 있는 루트 인증 기관>인증서 아래에 나타나는지 확인합니다.

      인증서 관리자에서 인증서 유효성 검사 스크린샷

  2. 신뢰할 수 있는 인증서를 사용하여 DLL 파일에 서명하여 생성된 사용자 지정 모듈을 마무리합니다. 이 활동에 Signtool을 사용하려면 Visual Studio의 개발자 명령 프롬프트를 사용하세요.

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/Modules.LogEvent.dll"
    
  3. 사용자 지정 작업을 배포하려면 이 PowerShell 스크립트를 사용하여 패키지 내용을 캐비닛 파일(.cab)로 빌드합니다.

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

    샘플 스크립트 파일 BuildCAB.ps1로 이동

  4. Signtool을 사용하여 생성된 캐비닛 파일에 서명합니다.

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
    
  5. Power Automate 사용자 지정 작업 섹션으로 이동하여 생성한 사용자 지정 작업을 업로드하세요. 이름, 설명, 캐비닛 파일을 입력한 후 업로드를 선택합니다.

    Power Automate 포털에서 사용자 지정 작업 패키지(CAB 파일) 가져오기 스크린샷

    작업이 성공적으로 업로드되면 알림을 받습니다.

다음 단계에 따라 사용자 지정 작업 모듈이 캐비닛 파일로 패키지되고 신뢰할 수 있는 인증서로 서명됩니다. 또한 사용자 지정 작업 캐비닛 파일은 Power Automate의 사용자 지정 작업 라이브러리에 업로드됩니다.

추가 정보: 사용자 지정 작업 업로드

데스크톱용 Power Automate를 사용하여 데스크톱 흐름에서 사용자 지정 작업 활동을 사용하세요.

  1. 새 데스크탑 흐름을 생성한 다음 디자이너에서 자산 라이브러리를 선택합니다.

    데스크톱용 Power Automate의 자산 라이브러리 탐색 스크린샷

  2. 자산 라이브러리에서 사용할 수 있는 사용자 지정 작업을 검사합니다. 이전에 생성되어 Power Automate의 사용자 지정 작업 섹션에 업로드된 작업을 확인하세요.

    디자이너의 작업 섹션에 이 사용자 지정 작업을 추가하려면 추가를 선택합니다.

    자산 라이브러리에서 사용자 지정 작업 추가 스크린샷

  3. 사용자 지정 작업이 성공적으로 추가되었는지 확인합니다. 데스크톱용 Power Automate 디자이너의 작업 검색 표시줄에서 검색하세요.

    데스크톱용 Power Automate에서 사용자 지정 작업 검색 스크린샷

  4. 사용자 지정 작업을 드래그하거나 두 번 클릭하여 데스크탑 흐름에 추가합니다.

  5. 사용자 지정 작업을 테스트하기 위한 입력 매개 변수와 추가 단계를 제공합니다.

    사용자 지정 작업에 대한 입력 매개 변수 스크린샷

    사용자 지정 작업을 사용하는 샘플 데스크탑 흐름.

    Desktop 흐름에서 사용자 지정 작업 사용 스크린샷

  6. 흐름을 테스트하여 실시간으로 작동하는 사용자 지정 작업을 확인하세요.

    데스크톱 흐름에서 사용자 지정 작업 테스트

노트

캐비닛 파일에 서명하는 데 사용되는 인증서를 사용자 지정 작업으로 데스크톱 흐름을 구축하는 데 사용되는 컴퓨터와 데스크톱 흐름을 실행할 각 런타임 컴퓨터로 가져옵니다.

이러한 단계에 따라 사용자 지정 작업이 생성되었고, 캐비닛 파일에 패키지된 모듈이 신뢰할 수 있는 인증서로 서명되었으며, 성공적인 실행을 위해 생성 및 테스트된 사용자 지정 작업을 사용하기 위한 데스크톱 흐름인 Power Automate의 사용자 지정 작업 라이브러리에 업로드되었습니다.

사용자 지정 작업 업데이트 및 재배포

다음 단계에 따라 업데이트된 기능을 반영하도록 사용자 지정 작업의 기능을 업데이트하세요.

  1. 새로운 작업 기능으로 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);
             }
         }
      }
    }
    
  2. DLL 파일에 서명하고, 캐비닛 파일을 만들고, 캐비닛 파일에 서명하고, Power Automate의 사용자 지정 작업 섹션에 캐비닛 파일을 업로드하는 앞에서 설명한 유사한 단계를 사용합니다. 추가 정보: 패키지 빌드 및 사용자 지정 작업 배포

    노트

    업데이트된 사용자 지정 작업 캐비닛 파일을 업로드하기 전에 이 작업이 포함된 데스크톱 흐름이 새로운 기능으로 업데이트되므로 이 변경이 미치는 영향을 분석하십시오.

    Power Automate 포털에서 사용자 지정 작업 업데이트 스크린샷

  3. 필요에 따라 데스크톱 흐름을 업데이트합니다.

    업데이트 기능을 검증하기 위해 사용자 지정 작업에 세 번째 입력 매개 변수를 추가했습니다. 사용자 지정 작업 활동은 디자이너에서 오류로 표시되며 새 입력 매개 변수로 업데이트해야 합니다.

    데스크톱 흐름 리팩터링 스크린샷

    추가 입력 매개 변수가 포함된 업데이트된 사용자 지정 작업 스크린샷

  4. 흐름을 테스트하여 실시간으로 작동하는 업데이트된 사용자 지정 작업을 확인하세요.

    데스크톱 흐름에서 업데이트된 사용자 지정 작업 다시 테스트

이 섹션에서는 사용자 지정 작업의 기본 기능을 업데이트하고, 패키지를 빌드하고, Power Automate에 배포하고, 데스크톱 흐름을 리팩터링하고, 데스크톱용 Power Automate에서 사용자 지정 작업의 업데이트된 기능으로 데스크톱 흐름을 실행하여 기능의 유효성을 검사했습니다.