質問
SSISパッケージに関するサポートが必要です。毎日の仕事の一部としてDBテーブルにデータを入力するサーバーがあります。その後、サーバーはプロセスステータステーブルに書き込み、完了したことを通知します。
プロセスステータステーブルは次のようになります。
Job | Ready | Downloaded
myJob True False
myJobの準備完了フラグがTrueで続行するかどうかを確認するプロセスを作成するか、Falseの場合、再試行して最大5回繰り返す前に30分間スリープします。
私は眠っている部分を行う方法に関するこの記事を見つけました: http:// blogs.conchango.com/jamiethomson/archive/2006/10/23/SSIS_3A00_-Put-a-package-to-sleep.aspx
ファイルシステムタスクを使用してプロセスステータステーブルにアクセスすることを考えていました。次に、変数をReadyフラグの値に設定します。次に、Forループコンテナーを使用します。trueの場合はforループから抜けて続行し、falseの場合はスリープを実行してから別のファイルシステムタスクを実行し、変数をReadyフラグの値に設定します。私が持っている主な質問は、変数を準備完了フラグの値に設定する方法です。
解決 2
私はそれを理解することができました。
OLE DBソースとスクリプトコンポーネントが内部にあるデータフロータスクを使用しました。 スクリプトコンポーネントは、データベースデータの読み取りと処理、基本的なif elseロジックの実行、システム変数への書き込みを行います。
- スクリプトコンポーネントチュートリアルから変数への書き込み: " http://blogs.conchango.com/jamiethomson/archive/2006/07/18/SSIS_3A00_- But-it-used-to-work-in-DTS-_2800_7_2900 _- 2D00 -Capture-a-from-in-the-the-data-pump-into-a-variable.aspx "
後でforループでそのシステム変数を使用します。
他のヒント
Forループコンテナーがある場合は、" ExecuteSql"を配置できます。ステータス値を抽出するタスク(つまりfalse)を使用し、" ScriptTask"を使用します。必要に応じて保存または操作します。その後、forループコンテナのコンテンツの処理を続行できます(これは、データフロータスクまたは使用しているものです)。