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ı
SSIS Designer'da Script bileşeninin iki modu vardır: meta veri tasarım modu ve kod tasarım modu. Script Transformation Edit'i açtığınızda, bileşen meta veri tasarım moduna girer; burada meta veri yapılandırılır ve bileşen özelliklerini ayarlarsınız. Script bileşeninin özelliklerini ayarladıktan ve metaveri tasarım modunda giriş ve çıktıları yapılandırdıktan sonra, özel scriptinizi yazmak için kod tasarım moduna geçebilirsiniz. Meta veri tasarım modu ve kod tasarım modu hakkında daha fazla bilgi için, Script Component Editörü'nde Script Bileşeninin Yapılandırılması bölümüne bakınız.
Kod Tasarım Modunda Script Yazma
Script Bileşeni Geliştirme Ortamı
Scriptinizi yazmak için, Script Transformation Editörü'nünScript sayfasında Edit Script'e tıklayın ve Microsoft Visual Studio Apps for Tools (VSTA) IDE'sini açın. VSTA IDE, Visual Studio .NET ortamının renk kodlu Visual Studio düzenleyicisi, IntelliSense ve Object Browser gibi tüm standart özelliklerini içerir.
Script kodu Microsoft Visual Basic veya Microsoft Visual C# ile yazılır. Script Transformation Editörü'ndeScriptLanguage ö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 bileşenindeki koddan işlevselliğini çağırabilirsiniz.
Script bileşeninde oluşturduğunuz betik, paket tanımında saklanır. Ayrı bir script dosyası yok. Bu nedenle, Script bileşeninin kullanımı paket dağıtımını etkilemez.
Note
Paketi tasarlarken, betik kodu geçici olarak bir proje dosyasına yazılır. Hassas bilgileri dosyada depolamak potansiyel bir güvenlik riski olduğundan, şifreler gibi hassas bilgileri script koduna dahil etmemenizi önerdik.
Varsayılan olarak, IDE'de Option Strict devre dışı bırakılmıştır.
Script Component Project Yapısı
Script bileşeninin gücü, yazmanız gereken kod miktarını azaltan altyapı kodu üretebilmesidir. Bu özellik, girdiler ve çıktıların ve bunların sütunlarının ve özelliklerinin önceden sabit ve bilinmelerine dayanır. Bu nedenle, bileşenin meta verisinde yaptığınız sonraki değişiklikler, yazdığınız kodu geçersiz hale getirebilir. Bu, paketin yürütülmesi sırasında derleme hatalarına yol açar.
Project Öğeleri ve Sınıflar Script Component Project'te
Kod tasarım moduna geçtiğinizde, VSTA IDE açılır ve ScriptMain proje öğesini gösterir. ScriptMain proje öğesi, script için giriş noktası olan düzenlenebilir ScriptMain sınıfını içerir ve kodunuzu burada yazırsınız. Sınıftaki kod öğeleri, Script görevi için seçtiğiniz programlama diline bağlı olarak değişir.
Script projesi, iki ek otomatik olarak oluşturulan sadece okunabilir proje öğesi içerir:
ComponentWrapper proje öğesi üç sınıf içerir:
UserComponent sınıfı, verileri işlemek ve paketle etkileşim kurmak için kullanacağınız metod ve özellikleri içeren ve miras ScriptComponent alır. ScriptMain sınıfı, UserComponent sınıfından miras alır.
Script Transformation Editor'un Bağlantı Yöneticisi sayfasında seçilen bağlantılara referanslar içeren bir Connections koleksiyon sınıfı.
Script Transformation Editörü'nünScript sayfasında ReadOnlyVariable ve ReadWriteVariables özelliklerine girilen değişkenlere referanslar içeren bir Değişkenler koleksiyonu sınıfı.
BufferWrapper proje öğesi, Script Transformation Editörü'nünGirişler ve Çıktılar sayfasında yapılandırılmış her girdi ve çıktı için miras alan bir sınıf ScriptBuffer içerir. Bu sınıfların her biri, yapılandırılmış giriş ve çıkış sütunlarına ve sütunları içeren veri akışı tamponlarına karşılık gelen tiplenmiş accessor özellikleri içerir.
Bu nesneler, yöntemler ve özelliklerin nasıl kullanılacağı hakkında bilgi için Script Bileşeni Nesne Modelini Anlama bölümüne bakınız. Bu sınıfların yöntemleri ve özellikleri belirli bir Script bileşeni türünde nasıl kullanılacağı hakkında bilgi için Ek Script Bileşeni Örnekleri bölümüne bakınız. Örnek konular ayrıca tam kod örnekleri içerir.
Script bileşenini dönüşüm olarak yapılandırdığınızda, ScriptMain proje öğesi aşağıdaki otomatik oluşturulan kodu içerir. Kod şablonu ayrıca Script bileşenine genel bir bakış sunar 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 Component
' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub PreExecute()
MyBase.PreExecute()
'
' Add your code here for preprocessing or remove if not needed
'
End Sub
Public Overrides Sub PostExecute()
MyBase.PostExecute()
'
' Add your code here for postprocessing or remove if not needed
' You can set read/write variables here, for example:
' Me.Variables.MyIntVar = 100
'
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
'
' Add your code here
'
End Sub
End Class
/* Microsoft SQL Server Integration Services user script component
* Write scripts using Microsoft Visual C# 2008.
* ScriptMain is the entry point class of the script.*/
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
public override void PreExecute()
{
base.PreExecute();
/*
Add your code here for preprocessing or remove if not needed
*/
}
public override void PostExecute()
{
base.PostExecute();
/*
Add your code here for postprocessing or remove if not needed
You can set read/write variables here, for example:
Variables.MyIntVar = 100
*/
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
/*
Add your code here
*/
}
}
Script Component Project'te Ek Project Öğeleri
Script bileşen projesi, varsayılan ScriptMain öğesi dışında öğeleri içerebilir. Projeye sınıflar, modüller, kod dosyaları ve klasörler ekleyebilir, klasörlerle öğe gruplarını düzenleyebilirsiniz.
Eklediğiniz tüm ürünler paketin içinde kalır.
Script Component 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 Bileşeninde Paketle Etkileşim
Script bileşeninde yazdığınız özel betik, otomatik oluşturulan temel sınıflardaki güçlü tipli erişimciler aracılığıyla paketten değişkenlere ve bağlantı yöneticilerine erişebilir ve kullanabilir. Ancak, kod tasarım moduna girmeden önce hem değişkenleri hem de bağlantı yöneticilerini scriptinize erişilebilir hale getirmek istiyorsanız yapılandırmanız gerekir. Ayrıca Script bileşen kodundan olayları yükseltip loglama işlemi yapabilirsiniz.
Script bileşen projesindeki otomatik oluşturulan proje öğeleri, paketle etkileşim için aşağıdaki nesneleri, yöntemleri ve özellikleri sağlar.
| Paket Özelliği | Erişim Yöntemi |
|---|---|
| Variables |
ComponentWrapper proje öğesindeki Variables koleksiyon sınıfındaki adlandırılmış ve tiplenen accessor özelliklerini, ScriptMain sınıfının Değişkenler özelliği aracılığıyla ortaya çıkan, kullanın. PreExecute yöntemi yalnızca yalnızca okunabilir değişkenlere erişebilir. PostExecute yöntemi hem sadece okunma hem de okuma/yazma değişkenlerine erişebilir. |
| Bağlantılar | ComponentWrapper proje öğesindeki Connections koleksiyon sınıfında, ScriptMain sınıfının Connections özelliği üzerinden ortaya çıkan isimli ve tiplenmiş accessor özelliklerini kullanın. |
| Events | ScriptMain sınıfının özelliği ve arayüzün IDTSComponentMetaData100Fire<X> yöntemleri kullanılarak olayları ComponentMetaData yükseltmek. |
| Logging | Log'u ScriptMain sınıfının yöntemini kullanarak Log gerçekleştirin. |
Script Bileşenini Hata Hata Atma
Script bileşeninizde kodu hata ayıklamak için kodda en az bir kesme noktası 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 bileşenine 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.
Note
Script bileşenini, Execute Package görevinden çalıştırılan bir alt paketin parçası olarak çalıştırdığınızda bir Script bileşenini hata ayıklayamazsınız. Alt pakette Script bileşeninde 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 bileşeni içeren bir paketi hata ayıkladığınızda, hata ayıklayıcı bir Script bileşeninde hata ayıklar. Sistem, hata ayıklayıcı tamamlanırsa başka bir Script bileşeninde hata ayıklayabilir; örneğin Foreach Loop veya For Loop konteyneri örneğinde.
Script bileşeninin yürütülmesini aşağıdaki yöntemlerle de izleyebilirsiniz:
Program.Windows'ta MessageBox.Show yöntemini kullanarak yürütmeyi kesin ve modal mesaj gösterin. İsim alanı oluşturur. (Hata ayıklama işlemini tamamladıktan sonra bu kodu kaldırın.)
Bilgilendirici mesajlar, uyarılar ve hatalar için olayları yükseltin. FireInformation, FireWarning ve FireError yöntemleri, olay açıklamasını Visual Studio Output penceresinde gösterir. Ancak, FireProgress yöntemi, Console.Write yöntemi ve Console.WriteLine yöntemi Output penceresinde herhangi bir bilgi göstermez. FireProgress etkinliğinden gelen mesajlar SSIS Designer'ın Progress sekmesinde görünür. Daha fazla bilgi için Script Bileşeninde Olayları Yükseltme bölümüne bakınız.
Olayları veya kullanıcı tanımlı mesajları etkinleştirilmiş kayıt sağlayıcılarına kaydedin. Daha fazla bilgi için Script Bileşenine Giriş bölümünü inceleyebilirsiniz.
Eğer sadece bir Script bileşeninin çıktısını kaynak veya dönüşüm olarak yapılandırmak istiyorsanız, veriyi bir hedefe kaydetmeden incelemek istiyorsanız, Sıra Sayısı Dönüşümü ile veri akışını durdurabilir ve Script bileşeninin çıktısına bir veri görüntüleyicisi ekleyebilirsiniz. Veri görüntüleyicileri hakkında bilgi için Debugging Veri Akışı'a bakınız.
Bu Kısımda
Script bileşeninin kodlanması hakkında daha fazla bilgi için bu bölümdeki aşağıdaki konulara bakınız.
Script Bileşeni Nesne Modelini Anlamak
Script bileşeninde bulunan nesneler, yöntemler ve özelliklerin nasıl kullanılacağını açıklar.
Scripting Solutions'da Diğer Montajlara Referans Verme
Script bileşeninde .NET Framework sınıf kütüphanesinden nesnelere nasıl referans alınacağını açıklar.
Script bileşeni için hata çıktısını simüle etmek
Script bileşeni tarafından işlem sırasında hata yaratan satırlar için hata çıktısının nasıl simüle edileceğini açıklar.