DataSpider Cloudのこだわり ~Salesforce連携編~

Avatar
dstn

DataSpider Cloudの強みの1つは、なんといっても接続性です。
kintone、Salesforce、AWS、Google、Microsoft Azureといったクラウドサービスは元より、データベース、Excel、SAPなど様々な外部データソースと連携するための豊富なアダプタが提供されているため、DataSpider Cloudを利用することによりノンプログラミングで「つなぐ」を実現できます。

さらに、ただ単に「つなぐ」を実現するだけではありません。接続先の仕様も考慮した実案件で活用できる、価値のあるアダプタになっている点がDataSpider Cloudの強みです。

では、実際にSalesforceアダプタを例にどう活用できるアダプタとなっているのかをご紹介します。

Salesforce連携で考慮すること

APIを使用したSalesforceとの連携を考える場合、Salesforceの仕様によりAPIコール数などに制限があるため、通信回数をなるべく少なくするということが鉄則です。

例えば、Salesforceからデータを抽出する場合は、SOQL (Salesforce Object Query Language)で1件ごとに条件を指定するのではなく、OR句やIN句などを駆使して複数の検索条件(WHERE)を組み立てて指定することで、通信回数を極力減らした連携を実現することができます。

  •  IN句を使わない場合) 6回コール
SELECT price__c FROM fruits__c WHERE Name = 'アケビ'
SELECT price__c FROM fruits__c WHERE Name = 'アセロラ'
SELECT price__c FROM fruits__c WHERE Name = 'アボカド'
SELECT price__c FROM fruits__c WHERE Name = 'アンズ'
SELECT price__c FROM fruits__c WHERE Name = 'イチゴ'
SELECT price__c FROM fruits__c WHERE Name = 'イチジク'
  • IN句を使った場合)1回コール
SELECT price__c FROM fruits__c WHERE Name IN('アケビ','アセロラ','アボカド','アンズ','イチゴ','イチジク')

 
ただし、無条件に複数の検索条件をまとめて指定すればよいか、というとそうではありません。APIの仕様ではSOQLの文字数上限もあるからです。例えば、検索条件(WHERE)には30文字までの指定が可能だとした場合、以下例のように2回のコールに分けてデータ抽出をしてあげる必要があります。 

  • 例)検索条件(WHERE)の文字列=30文字以内
SELECT price__c FROM fruits__c WHERE Name IN('アケビ','アセロラ','アボカド')
SELECT price__c FROM fruits__c WHERE Name IN('アンズ','イチゴ','イチジク') 

 
ほんの一例ですがSalesforceとの連携ではこのようにAPIの仕様を考慮した実装が必要になります。この時点で繰り返しや条件分岐を組み合わせればなんとかなりそうだけどスクリプトを作りこむの大変そうだな、、と思った方多くいらっしゃるんではないでしょうか。

DataSpider CloudのSalesforceアダプタを使用すれば、上記APIの仕様を考慮したスクリプトを簡単に作成することができちゃいます。 

課題を解決する[検索パラメータ形成]処理

では上記課題を解決するアダプタを紹介します。使用するのはSalesforceアダプタの[検索パラメータ形成]処理です。この[検索パラメータ形成]処理を使用することで、先ほどの課題2つを一気に解決することができます。 

  • 課題
    ・IN句、OR句を用いて通信回数を極力減らしたい
    ・SOQLの文字数上限を考慮したクエリーを発行したい
  • 解決策
    ・Salesforceアダプタの[検索パラメータ形成]処理を使用する

 <スクリプト完成イメージ>

1.png

 
ポイント1

[検索パラメータ形成]処理は、設定された条件式と入力データをもとに、SOQLのWHERE句に使用する文字列を形成してくれるオペレーションです。プロパティで何が設定できるかを見てみます。

  • 検索パラメータ形成処理のプロパティ

2.png

 3.png

  •  [検索パラメータ形成]処理で形成された検索条件
    今回の入力データ(fruits.csv)では、指定した文字数上限(30文字)を超えているため、2件の検索条件が形成されたのが分かります。

4.png


ポイント2

[検索パラメータ形成]処理を使用して、WHERE句に指定する検索条件を形成することが出来ました。あとは形成された検索条件を使用して[データ読み取り(クエリー)]処理でSalesforce上からデータ抽出を行います。形成文字列の文字数上限を超えて複数件の結果が出力されたことを考慮し、[繰り返し(データ件数)]で1件ずつクエリー発行(今回の場合2回コール)するようにします。また、スクリプト変数を使用して動的に検索条件を指定します。

  • 変数代入のマッピング 

5.png

  • データ読み取りのプロパティ

 6.png 

 

最後に

DataSpider Cloudでの実装イメージは湧きましたか?

今回は、[検索パラメータ形成]処理を中心に記事を書きましたが、Salesforceアダプタには45種ものオペレーションが用意されており、柔軟な実装が可能です。
Salesforceとの連携に課題をお持ちであれば、是非DataSpider Cloudの利用をご検討ください。

※Salesforce アダプタでできることの詳細は、DataSpider Cloud オンラインヘルプをご参照下さい。

 

 

コメント

サインインしてコメントを残してください。

Powered by Zendesk