建立導出欄位以自動化手動計算
本主題適用於 Dynamics 365 Customer Engagement (on-premises)。 有關本主題的 Power Apps 版本,請參閱: 定義導出欄位以自動化手動計算
導出欄位可讓您將商務程序所使用的手動計算自動化。 例如,銷售人員可能想要知道商機的加權營收,這是根據商機的估計營收乘以可能性。 或者,如果訂單大於 $500,他們要自動套用折扣。 導出欄位可以包含簡單算術運算和條件運算 (例如大於或 If-Else) 及許多其他運算所產生的值。 您可以使用導出欄位功能完成所有運算,不需要撰寫程式碼。
導出欄位功能:
導出欄位中的計算使用目前實體或相關上層實體的欄位。
在目前實體以及條件區段和動作區段中的相關上層實體欄位提供運算式支援。 內建函式包括:
ADDHOURS、ADDDAYS、ADDWEEKS、ADDMONTHS、ADDYEARS、SUBTRACTHOURS、SUBTRACTDAYS、SUBTRACTWEEKS、SUBTRACTMONTHS、SUBTRACTYEARS、DIFFINDAYS、DIFFINHOURS、DIFFINMINUTES、DIFFINMONTHS、DIFFINWEEKS、DIFFINYEARS、CONCAT、TRIMLEFT 和 TRIMRIGHT。
豐富的條件支援提供分支以及多個條件。 邏輯作業包括 AND 和 OR 運算子。
視覺編輯功能包含動作區段中的現代使用者介面和 intellisense。
導出欄位和表單、檢視表、圖表與報表順暢整合,可即時使用。
如果您已將 Online 組織更新為 2016 年 12 月更新的 Dynamics 365 (online),您可以設定導出欄位來使用自訂控制項。
導出欄位的幾個範例
加權營收:估計營收乘以可能性
淨值:資產減去特定客戶債務
勞動成本:基準費率最高 40 小時,加上其他加班時間
連絡人號碼:根據客戶或連絡人,商機的電話號碼
潛在客戶分數:提供特定潛在客戶品質見解的單一欄位
後續追蹤截止日期:根據優先順序,依指定的天數追蹤活動
重要
若要建立導出欄位,您必須有欄位安全性設定檔實體的寫入權限。 如果導出欄位使用計算中受保護的欄位,您也應考慮保護導出欄位,防止使用者存取他們沒有充分權限的資料。 如果您建立的導出欄位使用計算中受保護的欄位,導出欄位編輯器會向您顯示警告,建議保護導出欄位。 其他資訊:欄位層級安全性。
導出欄位範例
讓我們深入了解導出欄位範例。 我們將使用欄位編輯器定義導出欄位。 若要開啟欄位編輯器:
開啟方案總管
展開元件>實體。
選取想要的實體,然後選擇欄位。 選擇新增。
在編輯器中提供欄位的必要資訊,包括欄位類型和資料類型。 欄位類型是計算。 導出欄位的可用資料類型:
單行文字
選項組
兩個選項
整數
十進位數
貨幣
日期及時間
欄位類型旁的編輯按鈕將您帶至導出欄位定義編輯器,這裡新導出欄位已建立,但尚未設定公式。 導出欄位定義包含兩個區段:條件和動作。
在條件區段中,您可以指定實體、欄位、運算子、類型與值。 在實體的下拉式方塊,可以選取目前實體或相關實體。 在欄位下拉式方塊中,可以選取實體的所有可用欄位。 根據選取的運算子,您需要提供類型與值。 使用
AND
或OR
運算子,您可以指定多個條件。在動作區段,您提供導出欄位的公式。
注意
您可以從 [動作] 中的 [查詢] 記錄使用資料。 您必須先選取 [查詢] 欄位,然後輸入句點。 之後,您可以在相關實體上選取其中一個可用欄位。 例如,如果是 <LookupFieldName>.<RelatedFieldName>,您可以選取:ParentAccountId.AccountNumber。
請注意,欄位層級安全性會在相關實體上遭到忽略,因此存取的欄位中若有敏感資料,建議您也要保護導出欄位的安全。
商機的加權營收
在此範例中,我們會使用商機實體欄位,以根據商機的可能性來計算加權營收。 在商機實體欄位編輯器,我們會建立稱為「Weighted Revenue」的欄位,並指定欄位類型為計算和資料類型為貨幣。 在導出欄位定義編輯器,我們在條件區段中指定商機狀態 = 開啟。 在動作,公式根據商機估計營收乘以商機可能性,來計算加權營收。 以下螢幕擷取畫面顯示如何逐步定義 Weighted Revenue 導出欄位。
建立稱為「Weighted Revenue」的導出欄位:
設定商機的條件:
提供加權營收公式:
總共:
商機跟進日期
在此範例中,我們使用商機之來源潛在客戶的欄位,計算後續追蹤商機的適當日期。 在商機實體欄位編輯器,我們會建立稱為「Follow-up date」的欄位,並指定欄位類型為計算和資料類型為日期及時間。 在導出欄位定義編輯器,我們在條件區段中指定兩個條件:購買時間範圍和潛在客戶的估計價值。 在動作,我們提供兩個公式:一個在一週後後續追蹤立即商機,另一個在一個月後後續追蹤 (如果商機不可能立即發生)。 以下螢幕擷取畫面顯示如何逐步定義「Follow-up date」導出欄位。
建立稱為「Follow-up Date」的導出欄位:
在原始潛在客戶上設定兩個條件:
提供在一週後後續追蹤的公式:
提供在一個月後後續追蹤的公式:
總共:
自建立記錄起算的天數
在這個範例中,我們將使用 DIFFINDAYS 函式計算自記錄建立的時間點到目前日期的天數。
建立名為「計算以天數為單位的差」的導出欄位:
提供計算天數差的公式
總共:
導出欄位函數語法
下表包含導出欄位的動作區段中所提供函數的語法資訊。
提示
函數名稱以大寫字母指定。
函數語法 | 描述 | 傳回類型 |
---|---|---|
ADDDAYS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間加上指定之天數。 | 日期及時間 |
ADDHOURS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間加上指定之時數。 | 日期及時間 |
ADDMONTHS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間加上指定之月數。 | 日期及時間 |
ADDWEEKS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間加上指定之週數。 | 日期及時間 |
ADDYEARS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間加上指定之年數。 | 日期及時間 |
SUBTRACTDAYS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間減去指定之天數。 | 日期及時間 |
SUBTRACTHOURS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間減去指定之時數。 | 日期及時間 |
SUBTRACTMONTHS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間減去指定之月數。 | 日期及時間 |
SUBTRACTWEEKS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間減去指定之週數。 | 日期及時間 |
SUBTRACTYEARS (整數, 日期及時間) | 傳回新日期與時間,等於給定日期和時間減去指定之年數。 | 日期及時間 |
DIFFINDAYS (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的天數差。 如果這兩個日期和時間為同一天,則差為零。 | 整數 |
DIFFINHOURS (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的小時數差。 | 整數 |
DIFFINMINUTES (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的分鐘數差。 | 整數 |
DIFFINMONTHS (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的月數差。 如果這兩個日期和時間為同一個月,則差為零。 | 整數 |
DIFFINWEEKS (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的週數差。 如果這兩個日期和時間為同一週,則差為零。 | 整數 |
DIFFINYEARS (日期及時間, 日期及時間) | 傳回兩個日期及時間欄位之間的年數差。 如果這兩個日期和時間為同一年,則差為零。 | 整數 |
CONCAT (單行文字, 單行文字, … 單行文字) | 傳回字串,串連兩個或多個字串的結果。 | 字串 |
TRIMLEFT (單行文字, 整數) | 傳回字串,包含指定的字串複本,而不含前 n 個字元。 | 字串 |
TRIMRIGHT (單行文字, 整數) | 傳回字串,包含指定的字串複本,而不含後 n 個字元。 | 字串 |
注意
所有 DIFF 函式的第一個日期及時間欄位和第二個日期及時間欄位的行為都必須相同:使用者地區、只有日期或時區不轉換。 如果第二個欄位的行為與第一個欄位的行為不相符,則會顯示錯誤訊息,指出第二個欄位無法在目前函式中使用。 其他資訊:日期及時間欄位的行為與格式。
注意
您無法在導出欄位中輸入日期為日期值,例如 01/01/2015。 Date 和 DateTime 值僅能使用其他 DateTime 欄位設定或比較。
在 CONCAT 函數中,可以使用常值字串做為單行文字、包含單行文字的實體欄位,或兩者的組合 例如:CONCAT (FirstName, LastName, “為經理。”)。 如果常值字串包含引號,請在每個引號前面加上反斜線 (\) 逸出字元,如下所示:“此字串包含 \“引號。\””這可確保在字串中的引號不會被視為分隔字串的特殊字元。
下列範例示範如何使用 TRIMLEFT 和 TRIMRIGHT 函數。 它們包含初始字串與結果字串,由 TRIMLEFT 和 TRIMRIGHT 函數傳回:
TRIMLEFT ("RXX10-3456789", 3),傳回字串 "10-3456789"
TRIMRIGHT ("20-3456789RXX", 3),傳回字串 "20-3456789"
導出欄位考量
使用導出欄位時,您必須留意特定情況以及限制:
已儲存的查詢、圖表與視覺效果最多可有 10 個唯一導出欄位。
導出欄位值不會顯示在 Customer Engagement Outlook 用戶端離線模式的圖標檢視表或實體的主要表單。
鏈結的導出欄位最大數量為 5。
導出欄位無法參照本身或具有循環鏈結。
如果您變更多條件子句的其中一個條件運算子,所有條件運算子都會更新為該條件。 例如,在
IF (x > 50) OR (y ==10) OR (z < 5)
子句,如果將OR
運算子變更為AND
運算子,子句的所有OR
運算子都會變成AND
運算子。您可以透過上層實體的查詢欄位來存取上層欄位,例如
<LookupFieldName>.<FieldName>
。 這無法用於多實體查詢欄位,如可以是Account
或Contact
的Customer
。 但是,某些實體具有特定實體的個別查詢欄位,例如ParentAccountid.<FieldName>
或ParentContactid.<FieldName>
。在以下的導出欄位,排序為停用:
包含上層記錄欄位的導出欄位。
包含邏輯欄位 (例如地址欄位) 的導出欄位。
包含其他導出欄位的導出欄位。
導出欄位只能跨兩個實體。
導出欄位可以包含其他實體的欄位 (跨兩個實體 - 目前實體與上層記錄)。
導出欄位不能包含其他實體中同樣包含不同實體其他欄位的導出欄位 (跨三個實體):
(目前實體) 導出欄位 <- (上層記錄) 導出欄位 1 <- (上層記錄) 導出欄位 2。
您無法在導出欄位上觸發工作流程或外掛程式。
您無法將現有簡單欄位變更為導出欄位。 如果您目前的應用程式使用 JavaScript 或外掛程式來計算欄位,必須建立新欄位,才能夠使用導出欄位功能。
重複資料偵測規則不會在導出欄位中觸發。
彙總無法參照使用其他導出欄位的導出欄位,即使其他導出欄位的所有欄位都在目前實體上。