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 のストアドプロシージャを実行できます。

スクリプトコンポーネント内で実行時にストアドプロシージャを呼び出す例については、スクリプトコンポーネントからストアドプロシージャを呼び出すを参照してください。

設計時にソースコンポーネントを使用してストアドプロシージャを呼び出す例については、ヘルプドキュメントの「はじめに」の章を参照してください。

  1. Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
  2. 制御フロー画面に新しいデータフロータスクを追加し、データフロータスクを開きます。
  3. データフロータスクに CData SharePoint Source を追加します。
  4. CData SharePoint Source で、新しい接続マネージャーを追加し、SharePoint サイトの資格情報を設定します。 このデモでは、サンプルコードが非表示カラムを使用しているため、「Show Hidden Columns」を True に設定してください。
  5. ソースコンポーネントエディターで、データアクセスモードメニューから Table or View オプションを選択します。Table or View メニューで、バックアップするドキュメントライブラリの名前を選択し、ウィザードを閉じます。
  6. データフロータスクにスクリプトコンポーネントを追加します。Transformation タイプを選択し、データフロータスクで 'CData SharePoint Source' から変換コンポーネントへ出力矢印をドラッグします。
  7. スクリプトコンポーネントを開き、入力カラムペインですべてのカラムを選択します。
  8. 入力カラムを選択したら、スクリプトタブの Edit Script ボタンをクリックします。これにより、プロジェクトを含む新しい Visual Studio ウィンドウが開きます。
  9. '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' の両方で接続情報を変更する必要があります。