針對salesforce系統也好,針對其他的平臺系統也好,對於business user的需求以及疑問,資料往往決定了答案。業務人員提出了某些疑問,管理員需要根據需求的分析轉換成資料的分析及過濾從而反饋給business user想要的結果。
比如銷售經理扔過來一個需求,整理一下本公司的Product Top Sellers。 作為salesforce的管理員需要去分析當前的需求。
- Top Seller定義是什麼? by quantity還是by revenue排序還是by其他條件?
- Product 通常根據Product Family進行分類,比如能源,教育等等,展示資料是否需要根據Product Family進行分組?
- Product Top Seller的範圍是什麼時間? 今年,去年還是根據其他的條件?
- Product Inactive情況下,是否需要展示?
- 哪些使用者可以看見這份報告?全部能看見還是by group還是隻能他看見還是其他?
- 是否需要定期傳送此report資料給他或者指定的人/組?
當得到業務人員的confirm以後,確認最終需求並且分析:
- Top Seller by quantity;
- Product需要根據Product Family進行分組;
- Product Top Seller需要找已經贏單的資料;
- 已經inactive的資料不需要展示出來。
- 所有的使用者都可以看見
- 不需要定期report,只需要儲存所有人能訪問即可。
分析:
是否系統中已經有指定的 Report Type進行選擇還是需要自定義 Report Type?
Report Format如何選擇?
需要選擇哪些條件進行過濾?
設計:
Report Type使用標準的即可: Opportunities With Products
因為需要通過Product Family進行分組,所以 Report Format 需要選擇 Summary
過濾條件:
Product : Active
Opportunity Stage : 'Close Won'
根據上述的條件設計儲存以後,銷售經理的問題就迎刃而解。作為salesforce的從業人員,report是我們經常需要使用的資料分析工具去更好的解答業務人員的疑惑。想要建立/編輯/刪除Report,需要擁有system permission的Create and Customize Reports和Report Builder許可權;如果想要run report,需要擁有system permission的Run Reports的許可權;如果想要Schedule Report,需要擁有system permission的Schedule Reports。本篇根據以下幾個方面進行Report的簡單知識的講解。
一. Report Type
Report type可以解釋為一個模板,用來當使用者建立Report時,決定哪些表和欄位使用者可以有許可權訪問。salesforce提供了大量的標準的report type以供使用,如果標準的report type不足以滿足使用者需求情況下可以自定義report type。不管是標準的report type還是自定義的report type都具有 primary object relation ship以及對應的field layout。針對 primary object relationship, 每個report type中都會必須指定一個primary object以及可選的關聯列表,關聯列表的選擇需要有lookup關係或者MD關係。針對主object以及級聯的object有兩種資料關係。
- Primary object with related object:此關係為返回的主object資料必須要包含至少一條的related object的資料,如果主object資料中沒有相關聯的資料,則不會作為結果進行返回。
- Primary object with or without related object:此關係為返回的主object資料不管是否包含關聯列表均會作為結果返回。
一張圖來總結with 以及with or without如下所示,A 為 primary object,B為A的related object.
當我們瞭解report type資料關係以後,我們便可以通過report type建立report了。因為很多report type官方沒有提供,所以我們需要自己去建立自定義的report type,比如我們想要出一份contact 到opportunity / quote /quote line item的report,但是官方沒有提供這個report type,這時我們就需要自己建立了。建立步驟如下:
1. Set Up 搜尋report type後點選continue以後點選New button;
2. 針對 Primary Object,我們這裡是Contact,label代表著你在report區域搜尋對應的名稱,store in category代表著當前的report type在哪個folder下面進行管理;
3. 根據需求選擇related object以及資料關係。資料關係決定了你返回的資料的數量,根據業務的需求準確的選擇。report type最多可以選擇4層,如果你的資料結構多餘4層,選擇主要的related object以後再Edit Layout部分選擇需要的object的資料資訊。
4. 當我們儲存成功以後,我們可以檢視每個表中的對應的field layout。如果需要的欄位沒有在layout中,只需要Edit Layout即可。
我們如果有超過4層結構情況下,可以將主要的子related object選出來,然後根據add fields related via lookup方式選擇出來。
二. Report
Report Type建立好以後我們就可以根據需求來建立相應的report了,下面根據以下幾點進行描述。
1. Report Filter
當我們建立Report時,需要有根據業務的需求進行資料的過濾,比如看我自己的資料,看當前年的資料等等。Salesforce有5個型別的Filter進行資料的過濾。
Filter Type | Description |
Standard Filter | 不同的物件擁有不同的 Standard Filter,不過大部分物件都包括一些公用的Standard Filter比如 show all/show me 以及date range等 |
Field Filter | 使用欄位的比較進行過濾,比如 opportunity stage 為 close/won等 |
Filter Logic | 當我們進行多個Field Filter時,我們可能希望2 和 3 是或的關係,我們可以使用 Filter Logic進行實現 1 AND (2 OR 3) |
Cross Filter | Filter條件為使用子object通過with / with or without 條件,下面會有例子說明。 |
Row Limit | 針對tabular format的report,可以限制展示的記錄的上限。通常可以將Row Limit的Report作為source report去建立Dashboard table或者chart component |
其他的幾個都很好理解,下面說一下 Cross Filter的場景。公司的銷售經理想要一份針對去年沒有 Close/Won的Opportunity的Account的報告。按照正常想法我們可能需要在Account上面使用Formula欄位去統計沒有Close/Won的Opportunity,其實這種情況下我們只需要使用Cross Filter就可以簡單的實現了。
2. Report Format
Salesforce提供了4種方式去進行Report中資料的format,分別是 Tabular / Summary / Matrix / Joined。 根據不同的場景我們會選擇不同的format方式。
1) Tabular
Tabular是salesforce建立Report預設的format方式,也是最簡單和最快的方式。此種型別最適合應用於紀錄列表或者具有單個總計的列表。當然此種型別也有限制,此種方式不能建立chart,在不使用Row Limit情況下也不能用作Dashboard的source report.下圖為展示當前年份的所有的Opportunity並且對Expected Revenue進行彙總。
2) Summary
Summary在Tabular的基礎上,增加了針對某個列進行資料分組,檢視分類彙總以及建立圖示,同時也可以作為Dashboard的source report. 基於上個Report,我們可以通過Stage進行分組並且檢視基於Stage的分類彙總結果,同時可以建立report chart去直觀的顯示效果。Summary和Tabular的重要區別為可以通過某列或者某些列進行分組,如果使用Summary format但是沒有選擇基於哪列分組,則執行結果和Tabular相同。
3) Matrix: 此種格式和上面的Summary效果相似,區別在於使用Matrix可以針對行和列對資料進行分組和彙總。此種格式經常用於比較相關的彙總資訊,特別是用於對大量資料進行彙總並且要根據不同的欄位進行比較,或者是想要通過日期/產品/人/地理等維度去看資料。當我們執行Matrix格式的Report時,如果沒有通過至少一行和一列進行分組情況下,執行結果和Summary型別相同。下圖中展示的時通過Stage 以及 Probability對Opportunity的Amount進行分析。
4) Join Report: Join Report可以讓你建立多個report塊為你的資料提供不同的檢視。每一塊都類似一個子report,可以展示獨立的欄位等資訊,也可以使用不同的report type展示資料。Join Report相關可以檢視官方視訊: http://salesforce.vidyard.com/watch/9HiLP7WVAApjQHhyA9QRUQ
通過上面的Report Format描述,我們可以看到他們的區別和聯絡。如果我們從一個格式轉換成另外一個格式,效果和影響如下:
1) Tabular 轉換成 Summary / Matrix: Rows to display filter將會被移除;
2) Summary/Matrix/Join 轉換成 Tabular:所有的分組,chart以及自定義的formula都將會被移除。分組的列沒法轉換成Tabular的列,比如我們在summary中使用stage進行分組,如果轉換成Tabular以後,stage將不會展示在Tabular的列中,需要重新選擇。如果Join展示了多塊,則只有第一塊的列會展示在Tabular中;
3) Summary轉換成Matrix:我們在Summary可以基於多列進行分組,如果轉換成Matrix,則第一個彙總的欄位將會作為行層次的分組,第二個彙總的欄位將會作為列層次的分組,第三個的彙總欄位將會作為第二個行層次的分組;
4) Matrix轉換成 Summary: 第一個行的分組將會作為summary的第一個分組的列,第一列的分組將會作為summary的第二個分組的列,第二行的分組將會作為summary的第三個分組的列。
5) Tabular/Summary/Matrix轉換成Join: 已經存在的report將會變成join report的第一塊,report type將會變成principle report type。如果報表中使用了以下的內容,則沒法轉換成Join Report: Bucket Fields / Cross Filters / The rows to display filter。
3. Report Folder
我們建立的report,有時作為所有人都可以看的,有時僅能自己看,有時可以部分使用者或者部分role才可以看到。針對看到的report,有時只允許他看,有時允許修改或者管理,這個時候就涉及到report folder的概念。將Report放在某個Report Folder中,使用Report Folder對使用者設定訪問許可權從而達到Report的訪問控制。Report Folder新建需要點選下圖中的下三角然後選擇 New Report Folder。
我們建立好Report Folder以後,點選Share以後,可以基於不同維度設定不同的訪問許可權。
我們可以share給具體的使用者,基於role/group/territory去進行share,如果當前的使用者沒有滿足share的規則,則看不到指定的report folder以及無法訪問相關的report。Access Level可以設定三種:
- Viewer:可以進行View,Refresh,Run;
- Editor:在Viewer的訪問許可權基礎上可以Edit,Move,Save以及Delete;
- Manager:在Editor基礎上可以share以及rename report folder。
4. Formula
當我們在summary或者matrix report中經常會用到分組以及彙總,比如基於owner進行分組彙總amount等。除此之外,salesforce在分組的report中還給我們提供了formula方式基於數字型的值去計算額外的彙總的計算。比如我們想要知道基於owner進行分組的report情況下,每個owner的close/won的單子的數量,我們便可以使用formula進行快速的展示,在summary/matrix report中,最多可以使用5個formula欄位。如下圖所示,我們只需要點選 Add Formula,然後填寫當前生成的formula的列的名稱,設定當前的列在哪裡展示值並填寫相關公式便建立了一個formula的欄位去更好的進行額外的彙總。
總結:我們在專案中經常會用到Report,好的Report的使用方法可以快速的定位問題解決問題,也可以避免建立不必要的欄位不必要的彙總邏輯去用於Report的展示。篇中展示的內容過於基礎,起到拋磚引玉的作用,歡迎小夥伴們深入學習。篇中有錯誤地方歡迎指出,有不懂的歡迎留言。