🤔 Salesforceに接続してみた
Mar 13, 2021Appsheetでは、Salesforceのデータに接続し、アップシート独自のアプリを作成することも可能です。その機能を検証するためにアップシートから「Salesforceに接続」してみました。
まず、第一番目の手順として、Salesforceのアカウントをアップシートのデータソースとして登録。
アップシートがSalesforceのデータを元にアプリを自動生成してくれますが、この段階ではひとつのテーブルしか読み込んでいないため、マニュアル作業でその他のテーブルの追加が必要。アップシートからSalesforceに接続するとフォルダ直下には、11のテーブルが表示されました。トライアルですので、こらら11個のすべてのテーブルを読み込んでみました。
読み込んだ11のテーブルとその名称は以下スクリーンショットの通り。
テーブル名称とそれぞれのテーブルのカラム名に一定の関係性、つまりは親子関係が見られる場合アップシートはそれを自動検知し、テーブル読み込み時にREFというリレーションシップを設定してくれます。
ここで発見。アップシートにSalesforceのメインとなる11のテーブルを読み込ませると「Account」というテーブルを絶対的な「親」にテーブルとし、その他のテーブルを子テーブルとして関連付けてくれました。その関係性は、アップシートのスペックという部分でも確認できます。
以下アップシートが自動生成してくれるテーブル・VIEW間の関係性を示してくれるSpec(青い四角がテーブル、オレンジの〇がVIEWを示す)にある通りAccountというテーブルを中心にその他のテーブルが子供としてぶら下がっている状態です。
SalesforceはCRMツール(筆者は過去実務で利用したことは有りません)。つまりは「顧客」が管理の対象オブジェクトとなるためにテーブル構造もこのように「Account」がいわば「顧客マスターデーブル」としての位置づけとなり、その支配下にさまざまなテーブルを「一対多」の関係を以って連結している単純な構造のようです。
これを自動認識し、RELATIONSHIPを自動設定してくれるAppsheetは偉い。
それぞれの「顧客」にLEAD、TODO、商談記録、ステージ管理等々の情報を紐づけて管理する。
アップシートでSalesforceとインテグレートしたアプリを構築することは、これまでの作業からわかるだけでも極めて簡単に達成できそうです。
AppsheetのDocumentを確認するとSalesforceとの接続において当然にSalesforceのAPIを利用しているとのこと。ここで重要な考察点として、Salesforceのデータに対してどのような「権利・権限」を持ったインテグレーションとなるのか?
プログラムやシステムに精通されている方であれば『CRUD』という単語とその意味について理解されていると思いますが、結論から申し上げるとAppsheetからSalesforceに対してこの「CRUDオペレーション」が可能ということです。つまりは、データの参照・照会のみならず、データの追加・修正・削除も可能です。
アップシートが自動で設定してくれたテーブル間の関連付けが正しいか否かは、当然に要検証事項です。
ここまでに行ったのは、単にSalesforceのテーブルを単にAppsheetに読み込ませるというだけの作業のみです。読み込まれたテーブルのデータを確認したところ、更なる発見が。
-
テーブルのカラム名は英語表記であるものの、アップシート上で表示するカラム名は事前に定義された日本語表記となるようにテーブル読み込み時点で設定をしてくれている。
-
Salesforce上においてデータの入力に制限がある場合、例えばドロップダウンから入力値を選択方式で入力する場合などもアップシート側で、入力アイテムの値を自動で事前に入力してくれている。
などなど。細かい点ですが、アプリの構築作業を考えると上記がテーブル読み込み段階で完了してしまっていることは、Salesforceのデータをベースとしたカスタム・独自アプリを作成するうえでの工数を大きく削減してくれるはずです。👍🏻
アップシートとSalesforceではUIは大きく異なります。一方、どちらもリレーショナルデータベースをベースとしているという部分は共通です。
Salesforceの機能を拡張するために、AppsheetでSalesforceのデータと連携したマイクロサービスを構築する。従来の開発手法では、多くのエンジニアや工数、開発費用・期間を要するプロジェクトとなるかもしれませんが、Salesforceと深いレベルでインテグレートしているアップシートであれば、一人の作業で100%自社の仕様に特化したカスタムアプリを容易に開発できますね。