프로그래밍 방식으로 작업 연결
적용 대상: 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