사용자 지정 태스크 만들기

적용 대상: Azure Data Factory SSIS Integration Runtime SQL Server

사용자 지정 태스크를 만드는 단계는 Integration Services의 다른 사용자 지정 개체를 만드는 단계와 비슷합니다.

  • 기본 클래스에서 상속되는 새 클래스를 만듭니다. 태스크의 경우 기본 클래스는 Microsoft.SqlServer.Dts.Runtime.Task입니다.

  • 개체 유형을 식별하는 특성을 클래스에 적용합니다. 태스크의 경우 이 특성은 DtsTaskAttribute입니다.

  • 기본 클래스의 메서드 및 속성 구현을 재정의합니다. 태스크의 경우 이러한 메서드로는 ValidateExecute 메서드가 포함됩니다.

  • 필요한 경우 사용자 지정 사용자 인터페이스를 개발합니다. 태스크의 경우 사용자 지정 사용자 인터페이스를 개발하려면 IDtsTaskUI 인터페이스를 구현하는 클래스가 필요합니다.

사용자 지정 태스크 시작

프로젝트 및 클래스 만들기

관리되는 태스크는 모두 Microsoft.SqlServer.Dts.Runtime.Task 기본 클래스에서 파생되므로 사용자 지정 태스크를 만들려면 먼저 관리되는 프로그래밍 언어로 클래스 라이브러리 프로젝트를 만들고 기본 클래스에서 상속되는 클래스를 만들어야 합니다. 이 파생 클래스에서 기본 클래스의 메서드 및 속성을 재정의하여 사용자 지정 기능을 구현합니다.

동일한 솔루션에서 사용자 지정 사용자 인터페이스에 대한 두 번째 클래스 라이브러리 프로젝트를 만듭니다. 배포를 쉽게 하려면 사용자 인터페이스에 대한 별도의 어셈블리를 만드는 것이 좋습니다. 이렇게 하면 연결 관리자 또는 해당 사용자 인터페이스를 독립적으로 업데이트하거나 다시 배포할 수 있기 때문입니다.

강력한 이름 키 파일을 사용하여 빌드 시 생성될 어셈블리에 서명하도록 두 프로젝트를 구성합니다.

DtsTask 특성 적용

앞에서 만든 클래스에 DtsTaskAttribute 특성을 적용하여 해당 클래스를 태스크로 식별합니다. 이 특성은 태스크의 이름, 설명 및 태스크 유형 같은 디자인 타임 정보를 제공합니다.

UITypeName 속성을 사용하여 태스크를 사용자 지정 사용자 인터페이스에 연결합니다. 이 속성에 필요한 공개 키 토큰을 가져오려면 sn.exe -t를 사용하여 사용자 인터페이스 어셈블리 서명에 사용할 키 쌍(.snk) 파일의 공개 키 토큰을 표시할 수 있습니다.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
namespace Microsoft.SSIS.Samples  
{  
  [DtsTask  
  (  
   DisplayName = "MyTask",  
   IconResource = "MyTask.MyTaskIcon.ico",  
   UITypeName = "My Custom Task," +  
   "Version=1.0.0.0," +  
   "Culture = Neutral," +  
   "PublicKeyToken = 12345abc6789de01",  
   TaskType = "PackageMaintenance",  
   TaskContact = "MyTask; company name; any other information",  
   RequiredProductLevel = DTSProductLevel.None  
   )]  
  public class MyTask : Task  
  {  
    // Your code here.  
  }  
}  
Imports System  
Imports Microsoft.SqlServer.Dts.Runtime  
  
<DtsTask(DisplayName:="MyTask", _  
 IconResource:="MyTask.MyTaskIcon.ico", _  
 UITypeName:="My Custom Task," & _  
 "Version=1.0.0.0,Culture=Neutral," & _  
 "PublicKeyToken=12345abc6789de01", _  
 TaskType:="PackageMaintenance", _  
 TaskContact:="MyTask; company name; any other information", _  
 RequiredProductLevel:=DTSProductLevel.None)> _  
Public Class MyTask  
  Inherits Task  
  
  ' Your code here.  
  
End Class 'MyTask  

사용자 지정 태스크 빌드, 배포 및 디버깅

Integration Services에서 사용자 지정 태스크의 빌드, 배포 및 디버깅 단계는 다른 형식의 사용자 지정 개체에 대해 필요한 단계와 비슷합니다. 자세한 내용은 사용자 지정 개체 빌드, 배포 및 디버그를 참조하세요.

참고 항목

사용자 지정 태스크 만들기
사용자 지정 태스크 코딩
사용자 지정 태스크의 사용자 인터페이스 개발