2020.08.27

DataSpider CloudでSalesforceからファイルを取得する活用例

みなさま、こんにちは。
テラスカイ西日本の坂本です。

最新のトピックではなく今更感のあるテーマで大変恐縮ですが、DataSpider CloudでSalesforceからファイルを取得する活用例を紹介いたします。Salesforce、DataSpider Cloudの導入を検討されている方、または既に導入されていて今後ファイル連携を検討されている方の一助になればと思い、このブログを書きました。

はじめに

この記事では、所定のフォルダに格納された複数ファイルを連携する方法を紹介いたします。
Salesforceの各レコードに紐づいたファイルの取得、登録方法を知りたい場合は、以下の記事を参照ください。

前提

ある案件でファイル連携が必要になりました。
要件は以下の通りです。
・定期的にファイルを連携したい
・ファイル名、形式はその時々で異なる
・現在はセキュアな外部ストレージを契約しているわけではない

ファイル連携を行うことになった場合、まずはサーバやAmazon S3に接続してファイルを格納、取得することを検討することが多いのですが、閉域ネットワークである、セキュリティの懸念がある、外部ストレージのコストが掛かるといった問題が発生する場合があります。

Salesforceはエディションによりますが、ファイルストレージが割り当てられているため、これを利用してファイルを格納してDataSpider Cloudで取得することができます。
そうすることで、ファイアウォールに穴を空けるようなリスクを負ったり、わざわざ外部ストレージを用意したりする必要がありません。

処理の概要

処理の概要は以下になります。
①ContentWorkSpaceからライブラリIDを取得 (条件:Name = フォルダ名)
②取得したライブラリIDを変数に設定
③ContentDocumentからコンテンツドキュメントIDを取得 (条件:ParentId = ライブラリID)
④IN句パラメータを作成
⑤ContentVersionからファイルを取得し、フォルダに格納(条件:IN句パラメータ)

①ContentWorkSpaceからライブラリIDを取得

ContentWorkSpaceからフォルダ名を条件にライブラリIDを取得します。
このフォルダ名を変数にすることをオススメします。
環境変数にすることで保守性、入力変数にすることで汎用性が上がります。

②取得したライブラリIDを変数に設定

次の取得処理で使用するため、前処理で取得したライブラリIDを変数に格納します。

③ContentDocumentからコンテンツドキュメントIDを取得

前処理で取得したライブラリIDを条件にContentDocumentからコンテンツドキュメントIDを取得します。

④IN句パラメータを作成

前処理で取得したコンテンツドキュメントIDを使用してIN句パラメータを作成します。

⑤ContentVersionからファイルを取得し、フォルダに格納

ContentVersionからIN句パラメータを条件にファイル情報を取得します。
タブ「必須設定」のスキーマ定義で項目「タイトル」「バージョンデータ」「ファイル拡張子」を選択し、タブ「ファイル出力設定」を以下の内容で設定します。
設定項目名 設定内容
ファイル DataSpider Cloud上のファイル出力パス
データ項目 項目「バージョンデータ」
ファイル名 項目「タイトル」
拡張子 項目「ファイル拡張子」

実行結果

Salesforceに格納したファイルがすべてDataSpider Cloud上に取得できました。
DataSpider Cloudのスケジュールトリガーを設定してスクリプトを起動すれば定期的に実行することが可能です。

また事後処理として、不要になったSalesforceのファイルを移動、削除したり、
取得したファイルをリネームしたり、内容を編集して他システムへ連携することも可能です。

おわりに

いかがでしたでしょうか。
DataSpider Cloudには他にも多くのサービスと連携ができるアダプタが多数用意されているため、さまざまな要件に対応することが可能です。特にSalesforceとは非常に親和性が高いため今回紹介したような簡単な設定だけでファイル連携が実現可能となります。ぜひお試しいただければと思います。
今回紹介したスクリプトは、以下よりダウンロードいただけますので参考としてご活用ください。

最後までお付き合いいただきありがとうございました。

サンプルスクリプト

サンプルスクリプト.zip (38.8 KB)
36 件
     
  • banner
  • banner

関連する記事