Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
SSIS Integration Runtime di Azure Data Factory
Setelah mengonfigurasi tugas Skrip di Editor Tugas Skrip, Anda menulis kode kustom Anda di lingkungan pengembangan tugas Skrip.
Lingkungan Pengembangan Tugas Skrip
Tugas Skrip menggunakan Microsoft® Visual Studio® Tools for Applications (VSTA) sebagai lingkungan pengembangan untuk skrip itu sendiri.
Kode skrip ditulis dalam Microsoft Visual Basic atau Microsoft Visual C#. Anda menentukan bahasa skrip dengan mengatur properti ScriptLanguage di Editor Tugas Skrip. Jika Anda lebih suka menggunakan bahasa pemrograman lain, Anda dapat mengembangkan rakitan kustom dalam bahasa pilihan Anda dan memanggil fungsionalitasnya dari kode dalam tugas Skrip.
Skrip yang Anda buat dalam tugas Skrip disimpan dalam definisi paket. Tidak ada file skrip terpisah. Oleh karena itu, penggunaan tugas Skrip tidak memengaruhi penyebaran paket.
Catatan
Saat Anda merancang paket dan men-debug skrip, kode skrip untuk sementara ditulis 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 Tugas Skrip
Saat Anda membuat atau mengubah skrip yang terkandung dalam tugas Skrip, VSTA membuka proyek baru kosong atau membuka kembali proyek yang ada. Pembuatan proyek VSTA ini tidak memengaruhi penyebaran paket, karena proyek disimpan di dalam file paket; tugas Skrip tidak membuat file tambahan.
Item dan Kelas Proyek dalam Proyek Tugas Skrip
Secara default, proyek tugas Skrip yang ditampilkan di jendela VSTA Project Explorer berisi satu item, ScriptMain. Item ScriptMain , pada gilirannya, berisi satu kelas, juga bernama ScriptMain. Elemen kode di kelas bervariasi tergantung pada bahasa pemrograman yang Anda pilih untuk tugas Skrip:
Ketika tugas Skrip dikonfigurasi untuk bahasa pemrograman Visual Basic, kelas ScriptMain memiliki subroutine publik, Utama. Subroutine ScriptMain.Main adalah metode yang dipanggil runtime saat Anda menjalankan tugas Skrip Anda.
Secara default, satu-satunya kode di subroutine Utama dari skrip baru adalah baris
Dts.TaskResult = ScriptResults.Success. Baris ini menginformasikan runtime bahwa tugas berhasil dalam operasinya. Properti Dts.TaskResult dibahas dalam Mengembalikan Hasil dari Tugas Skrip.Ketika tugas Skrip dikonfigurasi untuk bahasa pemrograman Visual C#, kelas ScriptMain memiliki metode publik, Utama. Metode ini dipanggil ketika tugas Skrip berjalan.
Secara default, metode Utama menyertakan baris
Dts.TaskResult = (int)ScriptResults.Success. Baris ini menginformasikan runtime bahwa tugas berhasil dalam operasinya.
Item ScriptMain dapat berisi kelas selain kelas ScriptMain . Kelas hanya tersedia untuk tugas Skrip tempat kelas berada.
Secara default, item proyek ScriptMain berisi kode yang dibuat secara otomatis berikut. Templat kode juga menyediakan gambaran umum tugas Skrip, dan informasi tambahan tentang cara mengambil dan memanipulasi objek SSIS, seperti variabel, peristiwa, dan koneksi.
' 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;
}
}
Item Proyek Tambahan dalam Proyek Tugas Skrip
Proyek tugas Skrip dapat menyertakan item selain item ScriptMain default. Anda dapat menambahkan kelas, modul, dan file kode ke proyek. Anda juga dapat menggunakan folder untuk menata grup item. Semua item yang Anda tambahkan disimpan di dalam paket.
Referensi dalam Proyek Tugas 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 dalam Tugas Skrip
Tugas Skrip menggunakan objek Dts global, yang merupakan instans ScriptObjectModel kelas, dan anggotanya untuk berinteraksi dengan paket yang berisi dan dengan runtime Integration Services.
Tabel berikut mencantumkan anggota ScriptObjectModel publik utama kelas , yang diekspos ke kode tugas Skrip melalui objek Dts global. Topik di bagian ini membahas penggunaan anggota ini secara lebih rinci.
| Anggota | Tujuan |
|---|---|
| Connections | Menyediakan akses ke manajer koneksi yang ditentukan dalam paket. |
| Events | Menyediakan antarmuka peristiwa untuk memungkinkan tugas Skrip menimbulkan kesalahan, peringatan, dan pesan informasi. |
| ExecutionValue | Menyediakan cara sederhana untuk mengembalikan satu objek ke runtime (selain TaskResult) yang juga dapat digunakan untuk percabangan alur kerja. |
| Log | Mencatat informasi seperti kemajuan tugas dan hasil ke penyedia log yang diaktifkan. |
| TaskResult | Melaporkan keberhasilan atau kegagalan tugas. |
| Transaction | Menyediakan transaksi, jika ada, di mana kontainer tugas berjalan. |
| Variables | Menyediakan akses ke variabel yang tercantum dalam properti tugas ReadOnlyVariables dan ReadWriteVariables untuk digunakan dalam skrip. |
Kelas ini ScriptObjectModel juga berisi beberapa anggota publik yang mungkin tidak akan Anda gunakan.
| Anggota | Deskripsi |
|---|---|
| VariableDispenser | Properti Variables ini menyediakan akses yang lebih nyaman ke variabel. Meskipun Anda dapat menggunakan VariableDispenser, Anda harus secara eksplisit memanggil metode untuk mengunci dan membuka kunci variabel untuk membaca dan menulis. Tugas Skrip menangani penguncian semantik untuk Anda saat Anda menggunakan Variables properti . |
Men-debug Tugas Skrip
Untuk men-debug kode dalam tugas 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 tugas 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.
Peringatan
Anda tidak dapat men-debug tugas Skrip saat menjalankan paket dalam mode 64-bit.
Catatan
Anda harus menjalankan paket untuk men-debug ke dalam tugas Skrip Anda. Jika Anda hanya menjalankan tugas individual, titik henti dalam kode tugas Skrip diabaikan.
Catatan
Anda tidak dapat men-debug tugas Skrip saat menjalankan tugas Skrip sebagai bagian dari paket anak yang dijalankan dari tugas Jalankan Paket. Titik henti yang Anda tetapkan dalam tugas Skrip dalam paket anak diasingkan dalam keadaan ini. Anda dapat men-debug paket anak secara normal dengan menjalankannya secara terpisah.
Catatan
Saat Anda men-debug paket yang berisi beberapa tugas Skrip, debugger men-debug satu tugas Skrip. Sistem dapat men-debug tugas Skrip lain jika debugger selesai, seperti dalam kasus kontainer Foreach Loop atau For Loop.
Sumber Daya Eksternal
- Entri blog, pengaturan VSTA, dan masalah konfigurasi untuk penginstalan SSIS 2008 dan R2, pada blogs.msdn.com.
Lihat Juga
Mereferensikan Rakitan Lain dalam Solusi Pembuatan Skrip
Mengonfigurasi Tugas Skrip di Editor Tugas Skrip