Coding and Debugging the Script Task

Po skonfigurowaniu skryptu zadań w Edytor zadań skryptu, pisania kodu niestandardowego w środowisku programistycznym zadania skryptu.

Skrypt zadań Development Environment

The Script task uses Microsoft Visual Studio Tools for Applications (VSTA) as the development environment for the script itself.

Script code is written in Microsoft Visual Basic 2008 or Microsoft Visual C# 2008.Określanie języka skryptów przez ustawienie ScriptLanguage Właściwość Edytor zadań skryptu.Jeśli wolisz korzystać z innego języka programowania, mogą tworzyć niestandardowe wirtualny plik dziennika we własnym języku wybór i wywołania funkcji z kodu w zadania skryptu.

Skryptu utworzonego przy użyciu skryptu zadania jest przechowywany w definicji pakiet.Brak pliku oddzielne skryptu.W rezultacie użycia zadania skryptu nie wpływa na pakiet wdrażania.

Uwaga

Podczas projektowania pakiet i debugować skrypt, kod skryptu jest tymczasowo zapisywane do pliku projektu.Przechowywania poufnych informacji w pliku jest to potencjalne zagrożenie bezpieczeństwa, zaleca się, że poufne informacje, takie jak hasła nie należy umieszczać w kodzie skryptu.

Domyślnie Option Strict w IDE jest wyłączone.

Struktura projektu zadania skryptu

Podczas tworzenia lub modyfikowania skrypt, który jest zawarty w zadaniu skryptów, VSTA zostanie otwarty nowy projekt programu puste lub ponownie otwiera istniejący projekt.Utworzenie tego projektu VSTA nie wpływa na rozmieszczenie pakiet, ponieważ projekt jest zapisany w pliku pakiet, zadanie skryptu nie tworzy dodatkowe pliki.

Elementy i klasy w projekcie skrypt zadań projektu

Domyślnie skrypt projektu zadania wyświetlana w oknie VSTA Project Explorer zawiera pojedynczy element ScriptMain. The ScriptMain element, in turn, contains a single class, also named ScriptMain. Elementy kodu w klasie się różnić w zależności od wybranego dla zadania skryptu języka programowania:

  • Kiedy zadanie skryptu jest skonfigurowany dla Visual Basic 2008 język programowania ScriptMain Klasa ma podprogram publicznych, Main. The ScriptMain.Main subroutine is the metoda that the runtime calls when you run your Script task.

    Domyślnie, tylko kod w Main Procedura nowego skryptu jest wiersz Dts.TaskResult = ScriptResults.Success. Ten wiersz w czasie wykonywania informuje o pomyślnym zadania w jej działania.The Dts.TaskResult właściwość is discussed in Zwraca wyniki do zadania skryptu.

  • Kiedy zadanie skryptu jest skonfigurowany dla Visual C# 2008 język programowania ScriptMain Klasa ma publicznej metoda, Main. Metoda jest wywoływane, gdy uruchamiane jest zadanie skryptu.

    Domyślnie Main Metoda zawiera wiersz Dts.TaskResult = (int)ScriptResults.Success. Ten wiersz w czasie wykonywania informuje o pomyślnym zadania w jej działania.

The ScriptMain element can contain classes other than the ScriptMain class. Klasy są dostępne tylko dla zadań skryptów, w którym są one przechowywane.

Domyślnie ScriptMain Element projektu zawiera następujący kod wygenerowany automatycznie:

' 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;
        }
    }

Dodatkowe elementy projektów w projekcie zadania skryptu

Skrypt projektu zadania mogą zawierać elementy inne niż domyślne ScriptMain element. Można dodać klas, moduły i pliki kodu do projektu.Foldery mogą być również używane do organizowania grup towarów.Wszystkie elementy, które dodawane są utrwalone wewnątrz pakiet.

Odwołania do projektu zadania skryptu

Można dodać odwołania do zestawów zarządzanych przez kliknięcie prawym przyciskiem myszy projektu zadania skryptu w Eksplorator projektu, a następnie klikając polecenie Dodaj odwołanie.Aby uzyskać więcej informacji zobaczOdwoływanie się do innych zestawów w Solutions wykonywanie wykonywanie skryptów.

Uwaga

Umożliwia wyświetlanie odwołań do projektu w IDE VSTA w Widok klasy or in Eksplorator projektu.Otwórz jeden z tych okien z Widok menu.Można dodawać nowe odwołanie z Projekt z menuEksplorator projektu, or from Widok klasy.

Interakcja z pakiet w zadaniu skryptów

Zadanie skrypt używa szablonu globalnego Dts obiekt, który jest wystąpienie z ScriptObjectModel klasy i jej członkom na interakcję z pakiet zawierającego i Integration Services środowiska wykonawczego.

W poniższej tabela przedstawiono główne członków publicznych ScriptObjectModel klasy, która jest narażony na kod skryptu za pomocą szablonu globalnego Dts obiekt. Tematy w tej sekcji omówiono korzystanie z tych składników, bardziej szczegółowo.

Element członkowski

Cel

Connections()

Zapewnia dostęp do menedżerów połączenia określonych w pakiet.

Events()

Interfejs zdarzenia umożliwiają zadania skryptu podnieść błędy, ostrzeżenia i komunikaty informacyjne.

ExecutionValue()

Udostępnia prosty sposób, aby przywrócić pojedyncze obiekty w czasie wykonywania (oprócz TaskResult), można również dla branching przepływu pracy.

Log(String, Int32, array<Byte[])

Rejestruje informacje, takie jak postępu zadania, a wyniki do dziennika włączonych dostawców.

TaskResult()

Raporty o powodzeniu lub niepowodzeniu zadania.

Transaction()

Zawiera transakcję, jeżeli takie istnieją, w którym jest uruchomiony jego kontener.

Variables()

Zapewnia dostęp do zmiennych wymienionych w ReadOnlyVariables i ReadWriteVariables właściwości zadania do użycia w skrypcie.

The ScriptObjectModel class also contains some public members that you will probably not use.

Element członkowski

Description

VariableDispenser()

The Variables() właściwość provides more convenient access to variables. Mimo że można używać VariableDispenser(), należy jawnie wywołać metody blokowanie i odblokowywanie zmienne, Odczyt i zapis. Zadania skryptu obsługi semantyka blokowania, korzystając z Variables() Właściwość.

Debugowanie skryptów zadania

Do debugowania kodu skryptów zadania, zestaw co najmniej jeden punkt przerwania w kodzie, a następnie zamknij IDE VSTA, aby uruchomić pakiet w Business Intelligence Development Studio. Podczas wykonywania pakiet wprowadzi zadanie skryptu, VSTA IDE ponownie otwiera i wyświetla kod w trybie tylko do odczytu.Po realizacji osiągnie swojego punktu punkt przerwania, można zbadać wartości zmiennych i wykonywać pozostałych kodu.

Uwaga

Należy wykonać pakiet do debugowania do zadania skryptu.Jeśli użytkownik wykonać poszczególnych zadań, punktów kontrolnych w skrypcie kod zadania są ignorowane.

Uwaga

Po uruchomieniu zadania skrypt jako część pakiet podrzędność, który jest uruchamiany z zadania wykonywania pakiet programu, nie debugowanie zadania skryptu.Punkty przerwania, ustawione w zadania skryptu jednostki podrzędnośćj pakiet są pomijane w tych okolicznościach.Aby debugować pakiet podrzędność zwykle przez uruchomienie go osobno.

Uwaga

Podczas debugowania pakiet, który zawiera wiele zadań skryptów, debugera uderzone punkty przerwania w tylko jedno zadanie skryptu i zignoruje punkty przerwania w innych zadań skryptów.Zadanie skryptu jest częścią pętla Foreach lub pętli dla kontener, debuger ignoruje punktów przerwania do wykonywania zadania, skrypt po pierwszej iteracji pętli.

Integration Services icon (small) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.