Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı
Script görevini Script Görev Editörü'nde yapılandırdıktan sonra, Script görev geliştirme ortamında özel kodunuzu yazarsınız.
Script Görev Geliştirme Ortamı
Script görevi, scriptin kendisi için geliştirme ortamı olarak Microsoft Visual Studio Apps için Araçlar (VSTA) kullanır.
Script kodu Microsoft Visual Basic veya Microsoft Visual C# ile yazılır. Script Görev Düzenleyici'deScriptLanguage özelliğini ayarlayarak betik dilini belirlersiniz. Başka bir programlama dili kullanmayı tercih ederseniz, seçtiğiniz dilde özel bir assembly geliştirebilir ve Script görevindeki koddan işlevselliğini çağırabilirsiniz.
Script görevinde oluşturduğunuz betik, paket tanımında saklanır. Ayrı bir script dosyası yok. Bu nedenle, Script görevinin kullanımı paket dağıtımını etkilemez.
Note
Paketi tasarlayıp betiği hata ayıkladığınızda, script kodu geçici olarak bir proje dosyasına yazılır. Hassas bilgileri bir dosyada depolamak potansiyel bir güvenlik riski olduğundan, şifreler gibi hassas bilgileri script koduna dahil etmemenizi öneririz.
Varsayılan olarak, IDE'de Option Strict devre dışı bırakılmıştır.
Script Görev Project Yapısı
Script görevinde yer alan betikleri oluşturduğunuzda veya değiştirdiğinizde, VSTA boş yeni bir proje açar veya mevcut projeyi yeniden açar. Bu VSTA projesinin oluşturulması, paketin dağıtımını etkilemez, çünkü proje paket dosyasının içinde kaydedilir; Script görevi ek dosya oluşturmaz.
Script Task Project'te Project Öğeleri ve Sınıflar
Varsayılan olarak, VSTA Project Explorer penceresinde görüntülenen Script görev projesi tek bir öğe olan ScriptMain içerir. ScriptMain öğesi ise, ScriptMain olarak da adlandırılan tek bir sınıf içerir. Sınıftaki kod öğeleri, Script görevi için seçtiğiniz programlama diline bağlı olarak değişir:
Script görevi Visual Basic programlama dili için yapılandırıldığında, ScriptMain sınıfının genel bir alt programı olan Main'i vardır. ScriptMain.Main alt programı, Script görevinizi çalıştırdığınızda çalışma zamanının çağırdığı yöntemdir.
Varsayılan olarak, yeni bir betikin
Dts.TaskResult = ScriptResults.SuccessAna alt programındaki tek kod satırdır. Bu hat, görevin başarılı olduğunu çalışma zamanına bildirir. Dts.TaskResult özelliği, Script Görevinden Sonuçları Geri Döndürme bölümünde tartışılır.Script görevi Visual C# programlama dili için yapılandırıldığında, ScriptMain sınıfının genel bir metodu olan Main bulunur. Metod, Script görevi çalıştırıldığında çağrılır.
Varsayılan olarak, Ana yöntem satırı
Dts.TaskResult = (int)ScriptResults.Successiçerir. Bu hat, görevin başarılı olduğunu çalışma zamanına bildirir.
ScriptMain öğesi, ScriptMain sınıfı dışında sınıflar içerebilir. Sınıflar yalnızca bulundukları Script görevine açıktır.
Varsayılan olarak, ScriptMain proje öğesi aşağıdaki otomatik oluşturulan kodu içerir. Kod şablonu ayrıca Script görevine genel bir bakış ve değişkenler, olaylar ve bağlantılar gibi SSIS nesnelerinin nasıl alınacağı ve manipüle edileceği hakkında ek bilgiler sunar.
' Microsoft SQL Server Integration Services Script Task
' Write scripts using Microsoft Visual Basic 2008.
' The ScriptMain is the entry point class of the script.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime.VSTAProxy
<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
Partial Class ScriptMain
Private Sub ScriptMain_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
End Sub
Private Sub ScriptMain_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
Try
' Unlock variables from the read-only and read-write variable collection properties
If (Dts.Variables.Count <> 0) Then
Dts.Variables.Unlock()
End If
Catch ex As Exception
End Try
End Sub
Enum ScriptResults
Success = DTSExecResult.Success
Failure = DTSExecResult.Failure
End Enum
' The execution engine calls this method when the task executes.
' To access the object model, use the Dts property. Connections, variables, events,
' and logging features are available as members of the Dts property as shown in the following examples.
'
' To reference a variable, call Dts.Variables("MyCaseSensitiveVariableName").Value
' To post a log entry, call Dts.Log("This is my log text", 999, Nothing)
' To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, True)
'
' To use the connections collection use something like the following:
' ConnectionManager cm = Dts.Connections.Add("OLEDB")
' cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;"
'
' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
'
' To open Help, press F1.
Public Sub Main()
'
' Add your code here
'
Dts.TaskResult = ScriptResults.Success
End Sub
End Class
/*
Microsoft SQL Server Integration Services Script Task
Write scripts using Microsoft Visual C# 2008.
The ScriptMain is the entry point class of the script.
*/
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime.VSTAProxy;
using System.Windows.Forms;
namespace ST_1bcfdbad36d94f8ba9f23a10375abe53.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain
{
private void ScriptMain_Startup(object sender, EventArgs e)
{
}
private void ScriptMain_Shutdown(object sender, EventArgs e)
{
try
{
// Unlock variables from the read-only and read-write variable collection properties
if (Dts.Variables.Count != 0)
{
Dts.Variables.Unlock();
}
}
catch
{
}
}
#region VSTA generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(ScriptMain_Startup);
this.Shutdown += new System.EventHandler(ScriptMain_Shutdown);
}
enum ScriptResults
{
Success = DTSExecResult.Success,
Failure = DTSExecResult.Failure
};
#endregion
/*
The execution engine calls this method when the task executes.
To access the object model, use the Dts property. Connections, variables, events,
and logging features are available as members of the Dts property as shown in the following examples.
To reference a variable, call Dts.Variables["MyCaseSensitiveVariableName"].Value;
To post a log entry, call Dts.Log("This is my log text", 999, null);
To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, true);
To use the connections collection use something like the following:
ConnectionManager cm = Dts.Connections.Add("OLEDB");
cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;";
Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
To open Help, press F1.
*/
public void Main()
{
// TODO: Add your code here
Dts.TaskResult = (int)ScriptResults.Success;
}
}
Script Task Project'te Ek Project Öğeleri
Script görev projesi, varsayılan ScriptMain öğesi dışındaki öğeleri içerebilir. Projeye sınıflar, modüller ve kod dosyaları ekleyebilirsiniz. Ayrıca klasörleri kullanarak öğe gruplarını organize edebilirsiniz. Eklediğiniz tüm ürünler paketin içinde kalır.
Script Task Project'te referanslar
Yönetilen montajlara referansları ekleyerek Project Explorer'da Script görev project'e sağ tıklayıp ardından Referans Ekle seçeneğine tıklayabilirsiniz. Daha fazla bilgi için, Scripting Solutions'da Diğer Montajlara Referans Verme bölümüne bakınız.
Note
VSTA IDE'de Class View veya Project Explorer'da project referanslarını görebilirsiniz. Bu pencerelerden birini Görünüm menüsünden açıyorsunuz. Project menüsünden, Project Explorer'dan veya Class View'den yeni bir referans ekleyebilirsiniz.
Script Görevinde Paketle Etkileşim
Script görevi, sınıfın bir örneği ScriptObjectModel olan küresel Dts nesnesini ve üyelerini içeren paket ile ve Integration Services çalışma zamanıyla etkileşime girmek için kullanır.
Aşağıdaki tablo, sınıfın başlıca halka açık üyelerini ScriptObjectModel listeler; sınıf, küresel Dts nesnesi aracılığıyla Script görev koduna maruz kalmıştır. Bu bölümdeki konular bu üyelerin kullanımını daha ayrıntılı olarak tartışmaktadır.
| Üye | Purpose |
|---|---|
| Connections | Pakette tanımlanan bağlantı yöneticilerine erişim sağlar. |
| Events | Script görevinin hata, uyarı ve bilgilendirici mesajlar oluşturmasına olanak tanıyan bir olay arayüzü sağlar. |
| ExecutionValue | Çalışma zamanına tek bir nesneyi ( TaskResult'a ek olarak) geri göndermenin basit bir yolunu sunar ve bu da iş akışı dallanması için kullanılabilir. |
| Log | Görev ilerlemesi ve sonuçlar gibi bilgileri etkinleştirilmiş log sağlayıcılarına kaydeder. |
| TaskResult | Görevin başarısını veya başarısızlığını bildirir. |
| Transaction | Görevin konteynerinin çalıştığı işlem varsa, onu sağlar. |
| Variables | ReadOnlyVariables ve ReadWriteVariables görev özelliklerinde listelenen değişkenlere script içinde kullanılmak için erişim sağlar. |
Sınıfta ScriptObjectModel muhtemelen kullanmayacağınız bazı halka açık üyeler de var.
| Üye | Description |
|---|---|
| VariableDispenser | Bu özellik, Variables değişkenlere daha kolay erişim sağlar. Kullanabilirsiniz VariableDispenserancak , okuma ve yazma değişkenlerini kilitlemek ve açmak için açıkça yöntemleri çağırmalısınız. Script görevi, özelliği kullandığınızda Variables sizin için kilitleme semantiklerini yönetir. |
Script Görevini Hata Hata Alma
Script görevinizde kodu hata ayıklamak için kodda en az bir breakpoint belirleyin ve ardından VSTA IDE'yi kapatarak paketi SQL Server Veri Araçları'ta (SSDT) çalıştırın. Paket yürütme Script görevine girdiğinde, VSTA IDE yeniden açılır ve kodunuzu yalnızca okunur modunda gösterir. Uygulama kırılma noktanıza ulaştıktan sonra değişken değerlerini inceleyebilir ve kalan kodu adım adım adımla geçebilirsiniz.
Warning
Paketi 64-bit modunda çalıştırdığınızda Script görevini hata ayıklayamazsınız.
Note
Script görevinize hata ayıklamak için paketi çalıştırmalısınız. Sadece bireysel görevi çalıştırırsanız, Script görev kodundaki ara noktalar göz ardı edilir.
Note
Script görevini, Execute Package görevinden çalıştırılan bir alt paketin parçası olarak çalıştırdığınızda bir Script görevini hata ayıklayamazsınız. Child paketindeki Script görevinde belirlediğiniz breakpoint'ler bu durumlarda göz ardı edilir. Child paketi ayrı çalıştırarak normal şekilde hata ayıklayabilirsin.
Note
Birden fazla Script görevi içeren bir paketi hata ayıkladığınızda, hata yıkıcı bir Script görevini ayıklar. Sistem, hata ayıklayıcı tamamlanırsa başka bir Script görevini hata ayıklayabilir; örneğin Foreach Loop veya For Loop konteyneri örneğinde.