##始めに
企業は顧客対応業務を支えるためCRMソリューションを導入しました、但し単なる顧客管理アプリケーションはビジネスに足りない。多数システムから顧客データを集めてCRMを通して適切に呈するのは求めているアーキテクチャです。わたし前勤めていた会社は顧客データを集まるため17個のシステムと連携しました、のそためODSプラットフォームで ECIF (Enterprise Customer Information Facility)も作りました。多数システムで顧客データが持ってない企業様もありますが、施策やレガシー、買収などのケースによって複数CRMシステムを持っているかもしれません。企業全体の顧客データの統合は主要な課題です。
この場MuleSoft (ミュールソフト)をご紹介します。MuleSoftは世の中のアプリ、データ、デバイスのコネクターです。MuleSoftのdataloder.ioはUSのAppExchangeの人気ランキング1位のデータツールですし、Anypoint プラットフォームを使って簡単にSaaS、SOAおよびAPI連携できるインテグレーションプラットフォームです。
現在様々な要因により企業は複数のSalesforceインスタンスを持つのは普通に見えてます。組織と組織間が連携の課題を解けるよう、MuleSoftは一般的利用できるAnypoint テンプレートを用意されてる。こちらのテンプレートを使って簡単に設定すれば素早くアプリケーションが連携できます。さらにAnypoint スタジオの拡張でそれ以上のSalesforceと外部システムのインテグレーションもサポートしています。
##使用例
Salesforce to Salesforceの連携シナリオを想定して、リアルタイムで商談の双方向同期を実装します。
1、Anypoint スタジオをインストールします。
完了しましたらこのようの見えます。
2、テンプレートを導入
スタジオでツールバーの二番目"library"ボタンをクリックします。ライブラリーで様々なテンプレートあります、今回は"Salesforce Org to Org Opportunity"を検索して"Salesforce Org to Org Opportunity Bi-Directional Sync"を選びます。(Webからもダウンロードできます)
Open in Studio をクリックして導入完了です。画面はこの感じです。
コンパイルエラーの場合Javaコンパイルバージョンを1.5以上設定します。
3、コンポーネント説明
・enpoints.xml
二つのフォローで各自組織から商談をプルします。毎回一方向のみというインテグリティを保証するためexpressionコンポーネントを使って商談の同期をロックします。Salesforceコネクターに目的組織とQuery用SOQLが設定しています。
・businessLogic.xml
こちらも二つフォローあります、一つ目は組織Aから組織Bへの処理で、二つ目はその逆組織Aから組織Bへの処理です。両方のフォローはバッチモジュールに含まれるので大量データも簡単に処理できます。一つ目のフローの左側見ると、"query opportunity from B"という組織Bから商談を取得するのSalesforceコネクターがあります、両組織では商談名でレコードをマッチしてます。そして組織Bで取引先を探して、ないの場合は取引先を作成します。それから商談のデータを用意して組織BにUpsertします。最後にロックを解除して処理が終わります。二つ目フォローはロジックが同じでただ方向が逆になります。
・mule.[env].properties
組織の認証情報はpropertyファイルに保存されてます、環境によって複数ファイルにわけます。
4、実装
今度の手直しの部分は"mule.dev.properties"ファイルに認証情報を入れるだけで、それ以外の部分は編集不要です。
その中のurlプロパティーは、SOAP API用のurlです。
5、デプロイ (オプション)
MuleSoftの運用環境はCloudHubというクラウドサービスだけでなく、MuleESBを通じてオンプレミスシステムも使用可能です。今回はCloudHubにデプロイします。
・cloudhub.ioでフリーアカウントを登録します。
・プロジェクトを右クリック > "CloudHub" > "Deploy to CloudHub"。
・認証情報、ドメイン情報を入れて"Finish"をクリックしてデプロイ完了です。
6、検証
デプロイせずローカルで検証すると、プロジェクトを右クリック > "Run as" > "Mule Application"をクリックすると実行始まります。
CloudHubにデプロイした場合は、アプリは自動で開始します。"Settings"メニューで開始と停止がコントロールできます。
コンソールや"Logs"メニューから以下のログが見えますとプログラムが正しく動いてます。
例え"Edge SLA"という名前の商談をテストすると、左側組織の金額を7万円に修正して、右側組織の金額も自動更新されます。
これは商談の双方向同期の実装です、1週間や1日にもかからず5分でを完了しました。
##最後に
現在MuleSoftはSalesforce対応するテンプレートが50個以上用意されて、取引先、取引先責任者、商談、リードなどの標準オブジェクトを中心としてSalesforce to Salesforce、Salesforce to SAP、Salesforce to Siebelなどの連携シナリオをサポートしています。開発者に対してすぐ使える、参考してすぐ作れるのテンプレートの存在は、開発時間も月単位ではなく週単位で大幅削減できます。
テンプレートについて簡単にご紹介しましたが、カスタマイズとか開発などの内容は今後パソナテキーラのブログに書きます!