(データフロータスクの)スクリプトコンポーネントでパッケージ変数にアクセスすることは、スクリプトタスクでパッケージ変数にアクセスすることと同じではありません。スクリプトコンポーネントの場合、最初にスクリプト変換エディターを開く必要があります(コンポーネントを右クリックして[編集...]を選択します)。[スクリプト]タブの[カスタムプロパティ]セクションで、読み取り専用または読み取り/書き込みベースで、スクリプトで使用できるようにするプロパティを入力(または選択)できます。
次に、スクリプト自体の中で、変数は次のようになります。 Variablesオブジェクトの強く型付けされたプロパティとして使用できます。
// Modify as necessary
public override void PreExecute()
{
base.PreExecute();
string thePath = Variables.FilePath;
// Do something ...
}
public override void PostExecute()
{
base.PostExecute();
string theNewValue = "";
// Do something to figure out the new value...
Variables.FilePath = theNewValue;
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
string thePath = Variables.FilePath;
// Do whatever needs doing here ...
}
重要な注意点の1つは、パッケージ変数に書き込む必要がある場合は、PostExecute()メソッドでのみ書き込むことができるということです。
コードスニペットについて:
IDTSVariables100 varCollection = null;
this.VariableDispenser.LockForRead("User::FilePath");
string XlsFile;
XlsFile = varCollection["User::FilePath"].Value.ToString();
varCollection
nullに初期化され、有効な値に設定されることはありません。したがって、それを逆参照しようとすると失敗します。