私はSSISにかなり不慣れですが、SQLやC#などのテクノロジの経験は豊富です。
スタンドアロンのc#コンソールアプリとして作成したタスクをSSISパッケージに変換しています。
SQLコマンドであるOLEDB入力ソースがあります。これにより、データベース内の特定のデータが収集され、スクリプトコンポーネント変換にフィードされます。入力フィールドをOAuthベースのRESTfulWebサービスのパラメーターとして使用します。これを実行するには、多くのカスタムC#コードが必要です。Webサービスは、入力行ごとに出力する必要のある多くの行を含むXML応答を返します。
スクリプト変換がどのように機能するかについての私の理解は、それが多かれ少なかれ1行で、1行であるということです。
ここで本当にいくつか質問があります。
- このように入力ソースを使用するのは良い考えですか?または、入力行をWebサービスにフィードするためのより良い方法はありますか?
- スクリプトコンポーネントは、ここで使用する正しいツールを変換しますか?WebサービスがSOAPまたはWCFベースではなく、リクエストにOAuthが必要なため、通常のWebサービスを使用できません。(または、この方法でWebサービスコンポーネントを使用する方法はありますか?)
- 入力行ごとに複数の行を出力するにはどうすればよいですか?
- SSISは、(複数の行を含む)XML結果を取得し、それらをスクリプト変換の出力フィールドの行にマップする方法をサポートしていますか?XML入力ソースがあることは知っていますが、実際にはそうではありません。XML入力を受け取り、データの行を吐き出す何かを考えています
アップデート:
Webサービスからのデータは次のようになります(余分な部分は省略されています)。
<user>
<item>
<col1>1</col1>
<col2>2</col2>
<col3>3</col3>
</item>
<item>
<col1>1</col1>
<col2>2</col2>
<col3>3</col3>
</item>
....
</user>
基本的に、SQLデータソースはユーザーのデータセットを返します。ユーザーデータセットはスクリプトに入力され、Webサービス呼び出しのパラメーターとして使用されます。Webサービス呼び出しは、スクリプトから出力する必要のあるデータの複数の「行」を持つ一連のXML結果を返します。
上記のデータでは、スクリプトの出力は、入力ソースで指定されたユーザーごとに、col1、col2、およびcol3の複数の行になります。これらの要素を抽出して、xmlデータの各行の出力バッファーの列に配置する方法が必要です。または、単純にxmlをスクリプトの出力にし、その出力を別のコンポーネントにフィードしてxmlを行に解析する方法(XMLソースのように、ただし、データの途中にXMLソースを配置することはできません)フロー)。