salesforce零基礎學習(九十八)Salesforce Connect & External Object


本篇參考:

https://trailhead.salesforce.com/en/content/learn/modules/lightning_connect

https://help.salesforce.com/articleView?id=platform_connect_about.htm&type=5

我們在做salesforce開發的時候,除了需要了解最基本的前后端開發時,還需要對salesforce的設計以及government limit等有一些基礎的了解。比如我們知道salesforce一個表可以創建若干個字段,但是不管當前的字段有多少,這個表的數據每條所占的內存大約是2K,不管當前的表的數據存儲了1個字段還是多個字段。

公司根據不同的需求可能選擇不同類型的 license,不同的 license有不同的 data storage。
通過查詢 salesforce help文檔可以查看到, Professional, Enterprise , Unlimited Edition 都是10G的數據內存
當我們的 license購買的 data storage有限時,我們可以給salesforce提case加錢去擴充,plus可以增加200M。然而不是所有的場景都需要各種擴充,因為擴充也意味着在salesforce中的數據不斷變多,使用時相關的性能也會受相應的影響。某些case情況下可能我們想使用ERP或者其他的系統的數據,我們最開始想的是在salesforce創建一個 custom object或者一個 big object,然后數據遷移過來,當對端系統有改變,通過rest等方式將改動數據再推送過來。其實這種case下salesforce提供了另外一種可能,就是這篇所說的salesforce connect 以及 External Object.

一. Salesforce Connect

Salesforce Connect是一個可以允許你查看,搜索和修改存儲在salesforce系統外部的數據。他獲取

以下的大多數場景都適用情況下推薦使用 salesforce connect:

1. 你有大量的存儲在外部的數據但是你不想拷貝到你的Salesforce org。
2. 你在任何時候都需要少量的數據
3. 你需要實時訪問最新的數據
4. 數據存儲在雲或后台系統中,但希望在Salesforce org中顯示或處理這些數據。

需要注意的是,如果需要頻繁地訪問大量外部數據,ETL(extract, transform, and load)工具仍然是實現最佳性能的最佳選擇。我們在使用 外部對象前需要去評估一下是否需要使用 salesforce connect還是 ETL工具。通過上面的描述我們可以看到,當想要引用外部系統並且滿足上面大部分場景時候,才需要用到 Salesforce Connect,其他情況需要按照項目實際情況操作。

二. Salesforce Connect簡單設置和集成

官方給了一個實際的業務場景的demo,這里進行簡單的描述。系統的客戶的訂單以及訂單詳細信息維護在外部ERP系統,系統管理員被要求在客戶詳情頁可以查看到當前的客戶對應的訂單信息以及訂單詳細。其中訂單信息以及訂單詳細信息不用維護到salesforce系統,每條顧客信息不會有大量的數據,每次訪問需要展示最新的訂單信息。這種業務場景我們推薦考慮使用 External Object。 步驟如下:

1. 創建 External DataSource

首先按照trailhead的demo安裝一個 app exchange,鏈接如下:https://login.salesforce.com/packaging/installPackage.apexp?p0=04tE00000001aqG&isdtp=p1. 用來安裝一些需要用到的字段以及其他的metadata。安裝好以后,切換到classic以后,app選擇到External Object,tab選擇到 Quickstart,正常會展示一個button叫做Set Customer IDs ,點擊這個button以后會展示下面的圖了,證明數據初始化成功,這個在實際項目中肯定不需要,只是trailhead為了保證數據可以進行關聯而做的初始化操作。

 

 初始化操作結束以后,我們開始進行 external data source的創建,在 setup 處搜索 external data source點擊左側的item即可查看當前系統的external data source信息。點擊 New External Data source即可創建。

 我們按照要求配置相關信息,需要注意的是,實際的項目中一定要使用認證證書,URL為官方提供的demo數據。

點擊Save以后創建好一個External Data Source。

 2.創建 External Object

當我們創建完 External Data Source便可以更方便的創建 External Object了。我們進入剛剛創建的 External Data Source,點擊 Validate And Sync按鈕。

 這里我們針對外部數據只選擇了Order 以及Order Detail兩個 External Object,點擊 Sync,點擊以后便可以生成了 External Object。

 setup 搜索External Object,點擊左側便可以進入相關的生成的External Object了。

 3. 設置各表之間的關系。這步很重要,我們創建了外部對象,綁定了外部的data source,目的是要使用這些數據,所以搞清楚各個表之間的關系,了解外部對象之間以及外部對象和內部對象之間的關聯關系很重要。當前的demo中,我們可以看到, Account有一個或者多個Order,一個Order有一個或者多個 Order Detail.其中 Account是 salesforce Object, Order以及Order Detail是外部對象,我們先根據下面的表搞清楚關系。

Type of Relationship(關系類型) Child Object(子Object) Parent Object(父Object)

Must External Data Contain Salesforce IDs?

外部數據是否包含Salesforce Id

 Lookup  Standard, Custom, or External  Standard or Custom  Yes
 External Lookup  Standard, Custom, or External  External  No
 Indirect Lookup  External  Standard or Custom  No

 通過上面的圖表,我們可以看到 針對外部對象和內部對象以及外部對象和外部對象的關系,可以有三種關系類型,分別是 lookup / External Lookup / Indirect Lookup。

 lookup類型用於當父表是salesforce表,字表是External情況,並且External Data Source的數據包含了Salesforce Id情況下,可以在 External Object中創建 lookup類型的字段,關聯到salesforce的表上;

External Lookup用於 父表是外部表,並且字表是salesforce內部或者外部情況下,可以創建一個 External Lookup類型字段;

Indirect Lookup用於父表是 salesforce中的表,字表是外部的表,並且不通過salesforce Id關聯,通過 外鍵形式的字段進行關聯,可以創建一個Indirect Lookup類型字段。

根據我們現在的場景, Account 和 Order,因為Order是外部表,適用於 Indirect Lookup; Order 和 Order Detail 表都是外部表,父是 External,所以只能是 External Lookup。

知道類型以后,我們對表中的字段進行 change type操作,將 Order表中的 customerId字段修改成 indirect lookup類型,關聯到account的customer id字段;同理對 Order Detail的orderID字段修改成 External Lookup類型,關聯到Order表的order id。

 這幾個表創建完關聯關系,以后,我們需要更改 account以及order的page layout,將related list相關的信息拖出來,既可以在有外鍵關聯的 account的數據的關聯列表中查看到 External Object的Order信息以及點進去Order查看到 Order Detail信息。

 總結:篇中主要講了一下Salesforce Connect以及 External Object的簡單使用。項目中不一定使用到,但是涉及到大型項目,有這個概念,知道什么場景使用它即可。Salesforce設計很神奇的地方是不同的功能不同的后綴。自定義表 __c, Big Object使用 __b, External Object使用 __x,如果能了解底層的知識一定是一個很奇妙的體驗。篇中有錯誤地方歡迎指出,有不懂歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM