私のシナリオでは、子から親に渡されるテーブル値を更新しています。
私は EPT(Execute package task) を使用して子パッケージを呼び出しており、子パッケージの変数値の 1 つは親パッケージで更新されます。そのため、親パッケージ構成を使用していますが、親パッケージ レベルで値が設定されていません。
私の場合、子パッケージと親パッケージの両方のレベルで、変数名は同じでなければなりません。
このシナリオで私を助けてください。
よろしく、ラヴィ。
私のシナリオでは、子から親に渡されるテーブル値を更新しています。
私は EPT(Execute package task) を使用して子パッケージを呼び出しており、子パッケージの変数値の 1 つは親パッケージで更新されます。そのため、親パッケージ構成を使用していますが、親パッケージ レベルで値が設定されていません。
私の場合、子パッケージと親パッケージの両方のレベルで、変数名は同じでなければなりません。
このシナリオで私を助けてください。
よろしく、ラヴィ。
実行時にのみ子変数の値を親変数に割り当てることができます。親パッケージは子パッケージのコンテナーとして機能するため、親変数にアクセスできるのは実行時のみです。
これは、子パッケージのスクリプト タスクを使用して実現できます。
以下は手順です: -
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();
}
お役に立てば幸いです...ありがとう:) !!!
親パッケージ構成を使用して子パッケージで変数を設定することは、変数を参照ではなく値で関数に渡すようなものだと思います。つまり、実行時に子変数の値を親パッケージの変数の値に設定します。これら 2 つの項目は別個の実行可能ファイルであるため、変数のスコープは (少なくとも 2008 年までは) 子から親に渡すことができません。コントロールが親パッケージに戻った後、別の場所にデータを保存することを検討し (おそらくテーブルに保存する)、その場所からデータを取得する必要があります。2012 年にはより高いレベルのスコープ変数があると思いますが、まだそのレベルに移動したパッケージはありません。