前回はSalesforcePutコンポーネントの使い方について紹介しました。
今回はSalesforceSQLCallコンポーネントについて紹介します。
SalesforceSQLCallコンポーネントはRDB系のSQLCallコンポーネントと同様に任意のSQLの実行する際に使います。
例えば、「実行する処理」プロパティの実行するSQLの種類を指定することで、SELECT文の発行、SELECT文以外の任意のSQL文の発行、ストアドプロシージャを実行することができます。
今回はSalesforceSQLCallコンポーネントを利用し、DownloadDocumentストアドプロシージャの実行でSalesforceのドキュメントをローカルにダウンロードしてみたいと思いますが、Salesforceコンポーネント紹介の最終編となりますので、SalesforceGetコンポーネントのJoin機能についても使ってみたいと思います。
DownloadDocumentストアドプロシージャについて詳しくは下記のCData社のマニュアルをご参考ください。
- CData JDBC Driver for Salesforceのオンラインヘルプ > データモデル > ストアドプロシージャ > DownloadDocument
http://cdn.cdata.com/help/GFB/jdbc/pg_sp-downloaddocument.htm
■Salesforce側で登録されているドキュメント
先ずは、Salesforce画面から登録されているドキュメントを確認してみましょう。
- 「Infoteria」フォルダのドキュメント
- 「CData」フォルダのドキュメント
ご覧の通り、「Infoteria」フォルダに2つ、「CData」フォルダに2つのドキュメントがあります。
■フローの構成
上記の4つのドキュメントを指定したローカルパスにフォルダーごとダウンロードするフローを作成してみましょう。
ダウンロード対象のドキュメント情報をSalesforceGetコンポーネントから取得し、SalesforceSQLCallコンポーネントを利用してローカルフォルダにダウンロードした後に、そのリスト(ファイル名、ファイルの完全パス)をCSVファイルに出力するフロートなります。
■コンポーネントの設定内容
主に、SalesforceGet → マッパー → SalesforceSQLCallコンポーネントについて設定内容を確認してみます。
- SalesforceGetコンポーネントのSQLビルダー
- テーブルの結合:Documentテーブル、Folderテーブル
- 表示項目:
- Document.Id:ドキュメントの一意の識別子
- Document.FolderId:ドキュメントのフォルダID
- Document.Name:ドキュメントの名前
- Folder.Name:ドキュメントのフォルダ名
- 条件:フォルダ名が「Infoteria」又は「CData」
- マッパー1コンポーネント
SalesforceGetコンポーネントとSalesforceSQLCallコンポーネントの間に配置したマッパーコンポーネントの設定内容です。SalesforceGetコンポーネントから取得した情報をSalesforceSQLCallコンポーネントのSQLパラメーターにマッピングしています。また、フォルダ名情報を利用し、Salesforceの各フォルダ名ごと保存されるように保存先のローカルパスを設定しています。ここでは、「C:¥Salesforce¥Infoteria」と「C:¥Salesforce¥CData」が保存先のパスになると思います。
- SalesForceSQLCallコンポーネント
- 基本タブ
- 実行する処理:ストアド実行(結果なし)
- SQL文:「{ call DownloadDocument( ?Id?, ?Name?, ?Folderid?, ?LocalPath?, ?FileName?, ?FullPath?)}」
- SQLパラメータータブ
- Id:入力用。ダウンロードするドキュメントのID。
- Name:入力用。ダウンロードするドキュメントの名前
- FolderId:入力用。ダウンロードするドキュメントのフォルダID。
- LocalPath:入力用。ファイルの保存先のローカルパス。
- FileName:出力用。ダウンロードされたファイルの名前。
- FullPath:出力用。ダウンロードされたファイルの完全パス(名前を含む)。
■フローの実行結果
- ダウンロードされたドキュメント
フローの実行でSalesforceの「Infoteria」と「CData」のドキュメントが指定したローカルの保存先にダウンロードされていることがわかります。
- ダウンロードされたドキュメントのリスト
DownloadDocumentストアードプロシージャの実行でダウンロードされたファイルの名前と完全パス情報が出力用のパラメーターに格納されたので、その情報を利用してダウンロードされたドキュメントのリストをCSV形式で作成することができました。
これまでの4回でCDataのSalesforceアダプターの使用方法について紹介しました。
いかがでしたでしょうか。
CDataのSalesforceアダプターを利用するに役に立てれば幸いです。