CData SSIS Components を使用して SharePoint サイトからファイルをダウンロードする
CData SSIS データフローコンポーネントは、SQL Server Integration Services を強化し、さまざまなデータソースからデータを簡単にインポート/エクスポートできるようにします。 ただし、一部の操作は通常の SSIS ソースまたはデスティネーションモデルに適さない場合があります。
この記事では、CData SSIS Components for SharePoint に含まれている DownloadDocument ストアドプロシージャを使用して、SharePoint からファイルをダウンロードする方法を説明します。CData SSIS Components は、基盤となる API で利用可能な追加機能をストアドプロシージャとして公開しています。 この記事では CData SSIS Components for SharePoint を使用していますが、同じ手順で任意の CData SSIS Component のストアドプロシージャを実行できます。
スクリプトコンポーネント内で実行時にストアドプロシージャを呼び出す例については、スクリプトコンポーネントからストアドプロシージャを呼び出すを参照してください。
設計時にソースコンポーネントを使用してストアドプロシージャを呼び出す例については、ヘルプドキュメントの「はじめに」の章を参照してください。
- Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
- 制御フロー画面に新しいデータフロータスクを追加し、データフロータスクを開きます。
- データフロータスクに CData SharePoint Source を追加します。

- CData SharePoint Source で、新しい接続マネージャーを追加し、SharePoint サイトの資格情報を設定します。
このデモでは、サンプルコードが非表示カラムを使用しているため、「Show Hidden Columns」を True に設定してください。

- ソースコンポーネントエディターで、データアクセスモードメニューから Table or View オプションを選択します。Table or View メニューで、バックアップするドキュメントライブラリの名前を選択し、ウィザードを閉じます。
- データフロータスクにスクリプトコンポーネントを追加します。Transformation タイプを選択し、データフロータスクで 'CData SharePoint Source' から変換コンポーネントへ出力矢印をドラッグします。
- スクリプトコンポーネントを開き、入力カラムペインですべてのカラムを選択します。

- 入力カラムを選択したら、スクリプトタブの Edit Script ボタンをクリックします。これにより、プロジェクトを含む新しい Visual Studio ウィンドウが開きます。
- 'Input0_ProcessInputRow' メソッドに、DownloadDocument ストアドプロシージャを呼び出すコードを追加できます。以下はこのメソッドの例です:
public override void Input0_ProcessInputRow(Input0Buffer Row) { if(Row.ContentType.Equals("Folder")) return; String connString = "Offline=False;Password=mypassword;User=myuser;Url=your-sharepoint-site;SharePointEdition=your-edition"; String downloadDir = "C:\\\Users\\\your-user\\\Documents\\\SharePointBackup\\\"; SharePointConnection conn = new SharePointConnection(connString); SharePointCommand comm = new SharePointCommand("DownloadDocument", conn); comm.CommandType = CommandType.StoredProcedure; comm.Parameters.Clear(); String file = downloadDir + Row.LinkFilenameNoMenu.ToString(); comm.Parameters.Add(new SharePointParameter("@File", file)); String list = Row.ServerUrl.ToString().Split('/')\[1].ToString(); comm.Parameters.Add(new SharePointParameter("@Library", list)); String serverurl = Row.ServerUrl.ToString(); serverurl = serverurl.Substring(list.Length + 1); comm.Parameters.Add(new SharePointParameter("@RemoteFile", serverurl)); comm.ExecuteNonQuery(); }
スクリプトコンポーネントへの変更を保存したら、プロジェクトを実行すると、ダウンロードディレクトリにダウンロードしたファイルが保存されます。
SSIS サンプルプロジェクト
SQL Server SSIS 内で SharePoint Data Provider を使い始める際の参考として、完全に機能する サンプルパッケージをダウンロードしてください。デモを実行する前に、'Script Component' コードと 'Connection Manager' の両方で接続情報を変更する必要があります。