在公式中使用活動欄位的小秘訣
透過區分工作與事件,取得建立準確活動公式的祕訣。此外,尋找處理活動特定欄位的指引,並正確參照多型關係,例如「誰」和「什麼」。
必要版本
| 提供版本:Salesforce Classic 與 Lightning Experience |
| 提供版本:所有版本 |
工作和事件版面配置上的公式
您可以將在「活動」物件上建立的公式欄位新增至工作與事件版面配置。然而,參照一個活動類型專屬欄位的公式在其他活動類型的版面配置上檢視時,通常會顯示空白值或一般預設值。
- 工作特定欄位:參照欄位的公式 (例如「狀態」或「優先順序」) 不會在事件版面配置上顯示實用的資料。
- 事件特定欄位:參照欄位的公式,例如 DurationInMinutes、ShowAs 或 IsAllDayEvent,不會在工作版面配置上顯示有用的資料。
為了避免混淆,請使用 IsTask 合併欄位建立條件式公式以適當處理這兩種活動類型。如需詳細資料,請參閱此主題中的「區分工作與事件」一節。或者,您可以為特定使用個案建立個別的公式欄位,並僅將其新增至相關工作或事件版面配置。
工作與事件識別
IsTask 欄位是判斷活動是工作還是事件的關鍵。它會傳回工作記錄的 TRUE,事件的 FALSE。在條件化公式中使用此欄位,以針對兩種活動類型建立正確運作的邏輯。
例如,此公式會在工作記錄上顯示「這是工作」,或在事件記錄上顯示「這是事件」。
IF( IsTask, "This is a task", "This is an event" )例如,如果是工作,則此公式會動態顯示記錄的優先順序,如果是事件則顯示其持續時間。
IF( IsTask,
"Priority: " & TEXT( Priority ),
"Duration: " & TEXT( DurationInMinutes ) & " minutes" )
誰和哪些參照
活動使用兩個特殊欄位 (WhoID (名稱) 和 WhatID (相關對象) 來連線至其他記錄。這些欄位會指向許多不同類型的記錄,例如連絡人、商機和帳戶。公式的運作方式會根據其參照的物件而有所不同。
- 人員 (WhoID):參照人員 (商機和連絡人)。例如,使用 Who.FirstName 取得人員的名字。
-
What (WhatID):參照業務物件 (帳戶、機會、自訂物件等)。例如,使用 What.Name 取得記錄名稱。
並非所有組合都有效。例如,請思考活動與商機 (WhoID) 相關的情況。WhatID 通常為空白,因為商機與帳戶或機會的關聯方式與連絡人相同。
活動特定欄位與資料類型
工作與事件使用相同的基本「活動」物件,但會將資料儲存在不同的欄位中。參照屬於錯誤活動類型的欄位 (例如要求工作持續時間) 可能會導致錯誤或空白值。
- 「日期」與「日期/時間」欄位:工作上的 ActivityDate 為「日期」欄位,事件上的 ActivityDateTime 為「日期/時間」欄位。避免在沒有適當轉換函數的情況下在公式中混合這些欄位。
- 工作:使用 ActivityDate 參照到期日期。
- 事件:使用 StartDateTime 和 EndDateTime 來參照事件時間點。
- 工作特定欄位:這些欄位僅適用於工作。如果在事件版面配置或記錄上的公式中參照,則通常會傳回空白值或錯誤。
- 狀態
- 優先順序
- 已結束
- IsRecurrence
- TaskSubtype
- CallType
- 事件特定欄位:這些欄位僅適用於事件。如果在工作版面配置或記錄上的公式中參照,則不會正確計算。
- StartDateTime 和 EndDateTime
- DurationInMinutes
- IsAllDayEvent
- 顯示項目
- IsReccurrence2
- 共用欄位:工作與事件都會使用這些標準欄位。您可以針對任一活動類型在公式中安全地參照它們,而不需要條件邏輯 (例如 IsTask)。
- 主題
- 描述
- OwnerId
- CreatedDate
- LastModifiedDate
自訂活動欄位
除非您使用版面配置和記錄類型控制可視性,否則您在活動上建立的自訂欄位適用於工作與事件。
- 如果您使用預設值公式建立活動自訂欄位,則公式會針對工作與事件執行。使用
IsTask提供不同的預設值。例如:IF( IsTask, "Follow-up required", "Meeting scheduled" ) - 若要避免發生錯誤,請確保參照工作特定或事件特定標準欄位的活動公式欄位包含錯誤處理或條件邏輯。例如:
IF( IsTask, IF( ISPICKVAL( Priority, "High" ), "⚠ High Priority", "Standard" ), "Event - No Priority" )
活動日期和時間
針對工作,請使用名為「ActivityDate」的「日期」欄位來參照到期日期。針對事件,請使用名為 StartDateTime 和 EndDateTime 的「日期/時間」欄位來參照事件時間。
Salesforce 會自動計算事件持續時間,但您可以使用 DurationInMinutes 在公式中參照此值。轉換為具有下列條件的小時:
DurationInMinutes / 60若要計算工作的逾期狀態,請將 ActivityDate 與今天的日期進行比較,並檢查工作是否已結束。
IF( AND( NOT( IsClosed ), ActivityDate < TODAY() ), "Overdue", "On Track" )循環活動
工作與事件皆支援循環,但使用不同的欄位。
- 工作會使用 IsReccurrence (含相關欄位 RecurrenceStartDate、RecurrenceEndDate 等)。
-
事件使用 IsReccurrence2 (含相關欄位 RecurrenceStartDateTime、RecurrenceEndDate 等等)。
使用 IsTask 檢查適當的循環欄位。
IF( IsTask, IsRecurrence, IsRecurrence2 )活動狀態與完成
使用 IsClosed 判斷工作或事件是否完成。此布林值欄位適用於這兩種活動類型。
工作「狀態」值會因組織和工作類型而有所不同,但通常包含如「未開始」、「進行中」與「已完成」等值。參照狀態時使用 ISPICKVAL 或 CASE。
CASE( TEXT( Status ),
"Completed", "✓ Done",
"In Progress", "→ Working",
"Not Started", "○ Pending",
"Unknown" )
其他考量事項
- 多型欄位限制:參照「對象」或「什麼」詳細資料的公式只有在目標物件上存在關係時才有效。例如,如果活動與連絡人相關,則 Who.Account.Name 會提取帳戶名稱,如果與商機相關,則傳回空白值。
- 唯讀限制:公式可以參照唯讀活動欄位來計算資料,但無法設定修改唯讀欄位。如需特定欄位限制,請參閱 Salesforce Platform 的 物件參照。
- 工作流程與行銷活動內容:與行銷活動、工作流程或程序相關的活動可以有其他可用的欄位。檢查您特定使用個案的欄位可用性。
