0

私のシナリオでは、子から親に渡されるテーブル値を更新しています。
私は EPT(Execute package task) を使用して子パッケージを呼び出しており、子パッケージの変数値の 1 つは親パッケージで更新されます。そのため、親パッケージ構成を使用していますが、親パッケージ レベルで値が設定されていません。

私の場合、子パッケージと親パッケージの両方のレベルで、変数名は同じでなければなりません。

このシナリオで私を助けてください。

よろしく、ラヴィ。

4

3 に答える 3

2

実行時にのみ子変数の値を親変数に割り当てることができます。親パッケージは子パッケージのコンテナーとして機能するため、親変数にアクセスできるのは実行時のみです。

これは、子パッケージのスクリプト タスクを使用して実現できます。

以下は手順です: -

1- 親パッケージに変数を作成します。2-子パッケージに子変数を作成します。3- 子パッケージでスクリプト タスクを開きます。4-子変数として ReadOnlyVariables 変数オプションを割り当てます。5 ReadWriteVariables 変数オプションを親変数として割り当てます。

(** 注:- 親変数は ReadWriteVariables 変数オプションでは使用できませんが、名前を手動で指定するだけで心配する必要はありません:- "User::ParentVariable"

「これが機能するのは、スクリプト タスクが、その ReadOnlyVariables および ReadWriteVariables プロパティで宣言された変数名を設計時に検証しないためです。」 )

6- スクリプト タスクを編集し、以下のコードを使用して子変数の値を親変数に割り当てます。

 public void Main()

{
  Dts.Variables["Parentvariable"].Value=Dts.Variables["Childvariable"].Value.ToString();

}

お役に立てば幸いです...ありがとう:) !!!

于 2014-07-31T08:04:00.213 に答える
0

親パッケージ構成を使用して子パッケージで変数を設定することは、変数を参照ではなく値で関数に渡すようなものだと思います。つまり、実行時に子変数の値を親パッケージの変数の値に設定します。これら 2 つの項目は別個の実行可能ファイルであるため、変数のスコープは (少なくとも 2008 年までは) 子から親に渡すことができません。コントロールが親パッケージに戻った後、別の場所にデータを保存することを検討し (おそらくテーブルに保存する)、その場所からデータを取得する必要があります。2012 年にはより高いレベルのスコープ変数があると思いますが、まだそのレベルに移動したパッケージはありません。

于 2012-09-21T13:05:51.263 に答える