Bagikan melalui


Menyambungkan Tugas Secara Terprogram

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Batasan prioritas, yang diwakili dalam model objek oleh PrecedenceConstraint kelas, menetapkan urutan di mana Executable objek berjalan dalam paket. Batasan prioritas memungkinkan eksekusi kontainer dan tugas dalam paket bergantung pada hasil eksekusi tugas atau kontainer sebelumnya. Batasan prioritas ditetapkan di antara pasangan Executable objek dengan memanggil Add metode pengumpulan PrecedenceConstraints pada objek kontainer. Setelah Anda membuat batasan antara dua objek yang dapat dieksekusi, Anda mengatur Value properti untuk menetapkan kriteria untuk menjalankan executable kedua yang ditentukan dalam batasan.

Anda dapat menggunakan batasan dan ekspresi dalam batasan prioritas tunggal, tergantung pada nilai yang Anda tentukan untuk EvalOp properti, seperti yang dijelaskan dalam tabel berikut:

Nilai properti EvalOp Deskripsi
Constraint Menentukan bahwa hasil eksekusi menentukan apakah kontainer atau tugas yang dibatasi berjalan. Atur Value properti ke nilai yang PrecedenceConstraint diinginkan dari DTSExecResult enumerasi.
Expression Menentukan bahwa nilai ekspresi menentukan apakah kontainer atau tugas yang dibatasi berjalan. Atur Expression properti dari PrecedenceConstraint.
ExpressionAndConstraint Menentukan bahwa hasil batasan harus terjadi dan ekspresi harus mengevaluasi kontainer atau tugas yang dibatasi untuk dijalankan. Atur Value properti PrecedenceConstraintdan Expression , dan atur propertinya LogicalAnd ke true.
ExpressionOrConstraint Menentukan bahwa hasil batasan harus terjadi, atau ekspresi harus dievaluasi, agar kontainer atau tugas yang dibatasi dijalankan. Atur Value properti PrecedenceConstraintdan Expression , dan atur propertinya LogicalAnd ke false.

Sampel kode berikut menunjukkan penambahan dua tugas ke paket. PrecedenceConstraint Dibuat di antaranya yang mencegah tugas kedua berjalan hingga tugas pertama selesai.

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  

Lihat Juga

Menambahkan Tugas Aliran Data Secara Terprogram