2016-03-29 2 views
0

В BIDS (Microsoft Business Intelligence Development Studio), как вы можете инициализировать переменную через конфигурацию пакета? У нас есть задача скрипта в пакете, который использует пользовательские переменные. Пользовательские переменные жестко запрограммированы. Мы хотели бы настроить задачу скрипта. У нас есть таблица конфигурации пакета SQL Server, в которой хранятся конфигурации пакетов.Инициализировать переменную SSIS с конфигурацией пакета

Мы хотели бы инициализировать переменную в коде задачи сценария или это можно сделать в таблице переменных?

Каков синтаксис, если переменная является VariableName, а имя конфигурации для конфигурации пакета - «Имя конфигурации»?

Также имеет смысл инициализировать переменную с помощью значения конфигурации пакета или было бы лучше использовать конфигурацию пакета напрямую?

Это текущие конфигурации пакета:

enter image description here

Это из окна Переменные:

enter image description here

Это код от задачи сценария:

Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Runtime 
Imports System.IO 

Public Class ScriptMain 

    ' The execution engine calls this method when the task executes. 
    ' To access the object model, use the Dts object. Connections, variables, events, 
    ' and logging features are available as static members of the Dts class. 
    ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure. 
    ' 
    ' To open Code and Text Editor Help, press F1. 
    ' To open Object Browser, press Ctrl+Alt+J. 

    Public Sub Main() 
     ' 
     ' Add your code here 
     ' 
     Dim fileName As String 

     fileName = CStr(Dts.Variables("User::TrialBalanceReportDirectory").Value) + _ 
       CStr(Dts.Variables("User::Slash").Value) + _ 
       CStr(Dts.Variables("User::TrialBalanceReportFile").Value) 

     'MsgBox(fileName) 

     Dts.Variables("TrialBalanceReportExists").Value = File.Exists(fileName) 
     Dts.TaskResult = Dts.Results.Success 
    End Sub 

End Class 

Спасибо!

michaelc35

ответ

1

Это обычно понятнее настраивать свойство цели напрямую, а не использовать переменную между ними.

Но поскольку вы ссылаетесь на значения из задачи Script, я не вижу способа, с помощью которого эта задача Script могла напрямую обращаться к значениям конфигурации, а не обращаться к ним с через. (Возможно, в коде есть способ, о котором я не знаю, но было бы интересно прочитать, если кто-нибудь его опубликует).

Синтаксис для установки переменной значение из конфигурации:

\ Package.Variables [User :: VariableName] .Properties [Value]

(очевидно, заменить VARIABLENAME с именем переменной). Это значение указывает, где сконфигурированные значения должны быть «вытолкнуты» в пакет. В моей таблице конфигурации (с использованием SSIS2008) она идет в столбце PackagePath. Значение, которое вы хотите назначить переменной, затем переходит в столбец ConfiguredValue.