다음을 통해 공유


프로그래밍 방식으로 작업 연결

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

클래스가 개체 모델에 PrecedenceConstraint 나타내는 선행 제약 조건은 패키지에서 Executable 개체가 실행되는 순서를 설정합니다. 선행 제약 조건을 사용하면 패키지의 컨테이너 및 태스크를 이전 태스크 또는 컨테이너 실행 결과에 따라 실행할 수 있습니다. 컨테이너 개체에서 컬렉션의 Executable 메서드 PrecedenceConstraints 를 호출 Add 하여 개체 쌍 간에 선행 제약 조건이 설정됩니다. 두 실행 개체 간에 제약 조건을 만든 후 제약 조건에 정의된 두 번째 실행 파일을 실행하기 위한 조건을 설정하도록 속성을 설정합니다 Value .

다음 표에 설명된 대로 속성에 대해 지정 EvalOp 한 값에 따라 단일 선행 제약 조건에서 제약 조건과 식을 모두 사용할 수 있습니다.

EvalOp 속성의 값 설명
Constraint 실행 결과가 제한된 컨테이너 또는 태스크가 실행되는지 여부를 결정하게 지정합니다. Value 열거형에서 DTSExecResult 원하는 값으로 속성을 PrecedenceConstraint 설정합니다.
Expression 식 값이 제한된 컨테이너 또는 태스크가 실행되는지 여부를 결정하게 지정합니다. 의 Expression 속성을 PrecedenceConstraint설정합니다.
ExpressionAndConstraint 제약 조건 결과가 발생해야 하며 제약 조건이 지정된 컨테이너 또는 태스크가 실행될 수 있도록 식이 평가되도록 지정합니다. 의 Value 속성과 Expression 속성을 PrecedenceConstraint모두 설정하고 해당 LogicalAnd 속성을 true설정합니다.
ExpressionOrConstraint 제약 조건 결과가 발생하거나 제약 조건이 지정된 컨테이너 또는 태스크를 실행하기 위해 식이 평가되어야 하도록 지정합니다. 의 Value 속성과 Expression 속성을 PrecedenceConstraint모두 설정하고 해당 LogicalAnd 속성을 false설정합니다.

다음 코드 샘플에서는 패키지에 두 개의 작업을 추가하는 방법을 보여 줍니다. PrecedenceConstraint 첫 번째 작업이 완료될 때까지 두 번째 작업이 실행되지 않도록 하는 A가 생성됩니다.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
  
namespace Microsoft.SqlServer.Dts.Samples  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      Package p = new Package();  
  
      // Add a File System task.  
      Executable eFileTask1 = p.Executables.Add("STOCK:FileSystemTask");  
      TaskHost thFileHost1 = eFileTask1 as TaskHost;  
  
      // Add a second File System task.  
      Executable eFileTask2 = p.Executables.Add("STOCK:FileSystemTask");  
      TaskHost thFileHost2 = eFileTask2 as TaskHost;  
  
      // Put a precedence constraint between the tasks.  
      // Set the constraint to specify that the second File System task cannot run  
      // until the first File System task finishes.  
      PrecedenceConstraint pcFileTasks =   
        p.PrecedenceConstraints.Add((Executable)thFileHost1, (Executable)thFileHost2);  
      pcFileTasks.Value = DTSExecResult.Completion;  
    }  
  }  
}  
Imports Microsoft.SqlServer.Dts.Runtime  
  
Module Module1  
  
  Sub Main()  
  
    Dim p As Package = New Package()  
    ' Add a File System task.  
    Dim eFileTask1 As Executable = p.Executables.Add("STOCK:FileSystemTask")  
    Dim thFileHost1 As TaskHost = CType(eFileTask1, TaskHost)  
  
    ' Add a second File System task.  
    Dim eFileTask2 As Executable = p.Executables.Add("STOCK:FileSystemTask")  
    Dim thFileHost2 As TaskHost = CType(eFileTask2, TaskHost)  
  
    ' Put a precedence constraint between the tasks.  
    ' Set the constraint to specify that the second File System task cannot run  
    ' until the first File System task finishes.  
    Dim pcFileTasks As PrecedenceConstraint = _  
      p.PrecedenceConstraints.Add(CType(thFileHost1, Executable), CType(thFileHost2, Executable))  
    pcFileTasks.Value = DTSExecResult.Completion  
  
  End Sub  
  
End Module  

참고 항목

프로그래밍 방식으로 데이터 흐름 태스크 추가