Bagikan melalui


Pengodean dan Penelusuran Kesalahan Komponen Skrip

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

Di SSIS Designer, komponen Skrip memiliki dua mode: mode desain metadata dan mode desain kode. Saat Anda membuka Editor Transformasi Skrip, komponen memasuki mode desain metadata, tempat Anda mengonfigurasi metadata dan mengatur properti komponen. Setelah Anda mengatur properti komponen Skrip dan mengonfigurasi input dan output dalam mode desain metadata, Anda dapat beralih ke mode desain kode untuk menulis skrip kustom Anda. Untuk informasi selengkapnya tentang mode desain metadata dan mode desain kode, lihat Mengonfigurasi Komponen Skrip di Editor Komponen Skrip.

Menulis Skrip dalam Mode Desain Kode

Lingkungan Pengembangan Komponen Skrip

Untuk menulis skrip Anda, klik Edit Skrip di halaman Skrip Editor Transformasi Skrip untuk membuka IDE Microsoft® Visual Studio® Tools for Applications (VSTA). VSTA IDE mencakup semua fitur standar lingkungan Visual Studio .NET, seperti editor Visual Studio berkode warna, IntelliSense, dan Browser Objek.

Kode skrip ditulis dalam Microsoft Visual Basic atau Microsoft Visual C#. Anda menentukan bahasa skrip dengan mengatur properti ScriptLanguage di Editor Transformasi Skrip. Jika Anda lebih suka menggunakan bahasa pemrograman lain, Anda dapat mengembangkan rakitan kustom dalam bahasa pilihan Anda dan memanggil fungsionalitasnya dari kode di komponen Skrip.

Skrip yang Anda buat di komponen Skrip disimpan dalam definisi paket. Tidak ada file skrip terpisah. Oleh karena itu, penggunaan komponen Skrip tidak memengaruhi penyebaran paket.

Catatan

Saat Anda merancang paket, kode skrip ditulis sementara ke file proyek. Karena menyimpan informasi sensitif dalam file adalah potensi risiko keamanan, kami sarankan Anda tidak menyertakan informasi sensitif seperti kata sandi dalam kode skrip.

Secara default, Opsi Ketat dinonaktifkan di IDE.

Struktur Proyek Komponen Skrip

Kekuatan komponen Skrip adalah dapat menghasilkan kode infrastruktur yang mengurangi jumlah kode yang harus Anda tulis. Fitur ini bergantung pada fakta bahwa input dan output serta kolom dan propertinya diperbaiki dan diketahui terlebih dahulu. Oleh karena itu, setiap perubahan berikutnya yang Anda buat pada metadata komponen dapat membatalkan kode yang telah Anda tulis. Ini menyebabkan kesalahan kompilasi selama eksekusi paket.

Item dan Kelas Proyek dalam Proyek Komponen Skrip

Saat Anda beralih ke mode desain kode, VSTA IDE akan membuka dan menampilkan item proyek ScriptMain . Item proyek ScriptMain berisi kelas ScriptMain yang dapat diedit, yang berfungsi sebagai titik masuk untuk skrip dan di mana Anda menulis kode Anda. Elemen kode di kelas bervariasi tergantung pada bahasa pemrograman yang Anda pilih untuk tugas Skrip.

Proyek skrip berisi dua item proyek baca-saja tambahan yang dihasilkan secara otomatis:

  • Item proyek ComponentWrapper berisi tiga kelas:

    • Kelas UserComponent , yang mewarisi dari ScriptComponent dan berisi metode dan properti yang akan Anda gunakan untuk memproses data dan berinteraksi dengan paket. Kelas ScriptMain mewarisi dari kelas UserComponent .

    • Kelas kumpulan Koneksi yang berisi referensi ke koneksi yang dipilih pada halaman Pengelola Sambungan Editor Transformasi Skrip.

    • Kelas koleksi Variabel yang berisi referensi ke variabel yang dimasukkan dalam properti ReadOnlyVariable dan ReadWriteVariables di halaman Skrip Editor Transformasi Skrip.

  • Item proyek BufferWrapper berisi kelas yang mewarisi dari ScriptBuffer untuk setiap input dan output yang dikonfigurasi pada halaman Input dan Output dari Editor Transformasi Skrip. Masing-masing kelas ini berisi properti aksesor yang diketik yang sesuai dengan kolom input dan output yang dikonfigurasi, dan buffer aliran data yang berisi kolom.

Untuk informasi tentang cara menggunakan objek, metode, dan properti ini, lihat Memahami Model Objek Komponen Skrip. Untuk informasi tentang cara menggunakan metode dan properti kelas ini dalam jenis komponen Skrip tertentu, lihat bagian Contoh Komponen Skrip Tambahan. Contoh topik juga berisi sampel kode lengkap.

Saat Anda mengonfigurasi komponen Skrip sebagai transformasi, item proyek ScriptMain berisi kode yang dibuat secara otomatis berikut. Templat kode juga menyediakan gambaran umum komponen Skrip, dan informasi tambahan tentang cara mengambil dan memanipulasi objek SSIS, seperti variabel, peristiwa, dan koneksi.

' 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  
        */  
    }  
  
}  

Item Proyek Tambahan dalam Proyek Komponen Skrip

Proyek komponen Skrip dapat menyertakan item selain item ScriptMain default. Anda dapat menambahkan kelas, modul, file kode, dan folder ke proyek, dan Anda dapat menggunakan folder untuk mengatur grup item.

Semua item yang Anda tambahkan disimpan di dalam paket.

Referensi dalam Proyek Komponen Skrip

Anda bisa menambahkan referensi ke rakitan terkelola dengan mengklik kanan proyek tugas Skrip di Project Explorer, lalu mengklik Tambahkan Referensi. Untuk informasi selengkapnya, lihat Mereferensikan Rakitan Lain dalam Solusi Pembuatan Skrip.

Catatan

Anda dapat melihat referensi proyek di VSTA IDE di Tampilan Kelas atau di Project Explorer. Anda membuka salah satu jendela ini dari menu Tampilan . Anda dapat menambahkan referensi baru dari menu Proyek , dari Project Explorer, atau dari Tampilan Kelas.

Berinteraksi dengan Paket di Komponen Skrip

Skrip kustom yang Anda tulis di komponen Skrip dapat mengakses dan menggunakan variabel dan manajer koneksi dari paket yang berisi melalui aksesor yang sangat ditik di kelas dasar yang dihasilkan secara otomatis. Namun, Anda harus mengonfigurasi variabel dan manajer koneksi sebelum memasukkan mode desain kode jika Anda ingin membuatnya tersedia untuk skrip Anda. Anda juga dapat menaikkan peristiwa dan melakukan pengelogan dari kode komponen Skrip Anda.

Item proyek yang dibuat secara otomatis dalam proyek komponen Skrip menyediakan objek, metode, dan properti berikut untuk berinteraksi dengan paket.

Fitur Paket Metode Akses
Variabel Gunakan properti pengakses bernama dan yang ditik di kelas koleksi Variabel di item proyek ComponentWrapper , yang diekspos melalui properti Variabel kelas ScriptMain .

Metode PreExecute hanya dapat mengakses variabel baca-saja. Metode PostExecute dapat mengakses variabel baca-saja dan baca/tulis.
Koneksi Gunakan properti aksesor bernama dan yang ditik di kelas koleksi Koneksi di item proyek ComponentWrapper, yang diekspos melalui properti Koneksi kelas ScriptMain.
Acara Ajukan peristiwa dengan menggunakan ComponentMetaData properti kelas ScriptMain dan metode Fire<X> antarmuka IDTSComponentMetaData100 .
Pencatatan Lakukan pengelogan dengan menggunakan Log metode kelas ScriptMain.

Men-debug Komponen Skrip

Untuk men-debug kode di komponen Skrip Anda, atur setidaknya satu titik henti dalam kode, lalu tutup VSTA IDE untuk menjalankan paket di SQL Server Data Tools (SSDT). Saat eksekusi paket memasuki komponen Skrip, VSTA IDE membuka kembali dan menampilkan kode Anda dalam mode baca-saja. Setelah eksekusi mencapai titik henti, Anda dapat memeriksa nilai variabel dan menelusuri kode yang tersisa.

Catatan

Anda tidak dapat men-debug komponen Skrip saat menjalankan komponen Skrip sebagai bagian dari paket anak yang dijalankan dari tugas Jalankan Paket. Titik henti yang Anda tetapkan dalam komponen Skrip dalam paket anak dialirkan dalam keadaan ini. Anda dapat men-debug paket anak secara normal dengan menjalankannya secara terpisah.

Catatan

Saat Anda men-debug paket yang berisi beberapa komponen Skrip, debugger men-debug satu komponen Skrip. Sistem dapat men-debug komponen Skrip lain jika debugger selesai, seperti dalam kasus kontainer Foreach Loop atau For Loop.

Anda juga dapat memantau eksekusi komponen Skrip dengan menggunakan metode berikut:

  • Interupsi eksekusi dan tampilkan pesan modal dengan menggunakan metode MessageBox.Show di namespace System.Windows.Forms . (Hapus kode ini setelah Anda menyelesaikan proses penelusuran kesalahan.)

  • Ajukan peristiwa untuk pesan informasi, peringatan, dan kesalahan. Metode FireInformation, FireWarning, dan FireError menampilkan deskripsi peristiwa di jendela Output Visual Studio. Namun, metode FireProgress, metode Console.Write, dan metode Console.WriteLine tidak menampilkan informasi apa pun di jendela Output . Pesan dari peristiwa FireProgress muncul di tab Kemajuan SSIS Designer. Untuk informasi selengkapnya, lihat Meningkatkan Peristiwa di Komponen Skrip.

  • Mencatat peristiwa atau pesan yang ditentukan pengguna ke penyedia pengelogan yang diaktifkan. Untuk informasi selengkapnya, lihat Pengelogan di Komponen Skrip.

Jika Anda hanya ingin memeriksa output komponen Skrip yang dikonfigurasi sebagai sumber atau sebagai transformasi, tanpa menyimpan data ke tujuan, Anda dapat menghentikan aliran data dengan Transformasi Jumlah Baris dan melampirkan penampil data ke output komponen Skrip. Untuk informasi tentang penampil data, lihat Debugging Aliran Data.

Di Bagian Ini

Untuk informasi selengkapnya tentang pengkodian komponen Skrip, lihat topik berikut di bagian ini.

Memahami Model Objek Komponen Skrip
Menjelaskan cara menggunakan objek, metode, dan properti yang tersedia di komponen Skrip.

Mereferensikan Rakitan Lain dalam Solusi Pembuatan Skrip
Menjelaskan cara mereferensikan objek dari pustaka kelas .NET Framework di komponen Skrip.

Mensimulasikan Output Kesalahan untuk Komponen Skrip
Menjelaskan cara mensimulasikan output kesalahan untuk baris yang menimbulkan kesalahan selama pemrosesan oleh komponen Skrip.

Sumber Daya Eksternal

Lihat Juga

Mengonfigurasi Komponen Skrip di Editor Komponen Skrip