定義導出欄位
發行︰ 2016年11月
適用於: Dynamics CRM 2015
在 Microsoft Dynamics 365,導出欄位將用於商務程序的手動計算自動化。 例如,銷售人員可能想要知道商機的加權營收,這是根據商機的估計營收乘以可能性。 或者,如果訂單大於 $500,他們要自動套用折扣。 導出欄位可以包含簡單算術運算和條件運算 (例如大於或 If-Else) 及許多其他運算所產生的值。 您可以使用 Dynamics 365 使用者介面完成所有運算,不需要撰寫程式碼。
導出欄位功能:
導出欄位中的計算使用目前實體或相關上層實體的欄位。
在目前實體以及 [條件] 區段和 [動作] 區段中的相關上層實體欄位提供運算式支援。 內建函式包括:
ADDHOURS、ADDDAYS、ADDWEEKS、ADDMONTHS、ADDYEARS、SUBTRACTHOURS、SUBTRACTDAYS、SUBTRACTWEEKS、SUBTRACTMONTHS、SUBTRACTYEARS、DIFFINDAYS、DIFFINHOURS、DIFFINMINUTES、DIFFINMONTHS、DIFFINWEEKS、DIFFINYEARS、CONCAT、TRIMLEFT 和 TRIMRIGHT。
注意
[DIFFIN] 函數是在 Microsoft Dynamics CRM Online 2015 更新 1 中引進的。 這些函數無法在 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 中使用。
豐富的條件支援提供分支以及多個條件。 邏輯作業包括 AND 和 OR 運算子。
視覺編輯功能包含 [動作] 區段中的現代使用者介面和 intellisense。
導出欄位和表單、檢視表、圖表與報表順暢整合,可即時使用。
導出欄位的幾個範例
加權營收:估計營收乘以可能性
淨值:資產減去特定客戶債務
勞動成本:基準費率最高 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 個唯一導出欄位。
導出欄位值不會顯示在 Dynamics 365 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 或外掛程式來計算欄位,必須建立新欄位,才能夠使用導出欄位功能。
重複資料偵測規則不會在導出欄位中觸發。
彙總無法參照使用其他導出欄位的導出欄位,即使其他導出欄位的所有欄位都在目前實體上。
另請參閱
建立和編輯欄位
定義彙總欄位
影片:Microsoft Dynamics CRM 2015 的彙總欄位和導出欄位
© 2016 Microsoft Corporation. 著作權所有,並保留一切權利。 著作權