列印      開啟 PDF 版的線上說明


上一個主題

下一個主題

關於運算式

運算式是指一個或多個 Oracle CRM On Demand 可評估之運算子、函數、欄位和常值的有效組合。這個主題會提供有關下列運算式功能的資訊:

  • 以運算式表示的欄位與欄位名稱格式
  • 運算式長度
  • 文字長度
  • 條件運算式
  • 驗證運算式
  • 在運算式中使用相關的欄位

運算式中的欄位與欄位名稱語法

大多數用於某個記錄類型之欄位設定頁面的欄位,也可用於該記錄類型在 Expression Builder 中的欄位清單,且可用於運算式。

備註:「文字 (短 - 可遮罩)」欄位類型的自訂欄位則屬例外。您無法在 Expression Builder 的運算式中使用這些欄位。

您從 Expression Builder 的欄位清單中選取欄位名稱,藉此將欄位加入至運算式時,欄位便會以下列語法輸入至運算式編輯器:

[{FieldName}]

運算式編輯器中所顯示的欄位名稱是與語言無關的欄位名稱,用來在 Oracle CRM On Demand 內部識別欄位。雖然您也可以使用 [{FieldName}] 語法直接在運算式編輯器中輸入欄位名稱,但建議您一律從欄位清單中選取欄位,以便在運算式中使用正確的欄位名稱。

關於較早的版次中運算式的欄位名稱與欄位名稱語法

在 Oracle CRM On Demand 第 29 版 Service Pack 1 較早的版次中,您從 Expression Builder 的欄位清單中選取欄位後,欄位便會以下列語法輸入至運算式編輯器:

[<FieldName>]

此外,在第 29 版 Service Pack 1 較早的版次中,Expression Builder 所使用的欄位名稱 (與語言無關) 與 Expression Builder 第 29 版 Service Pack 1 及更新版次中所使用的欄位名稱 (與語言無關) 不同。然而,任何運算式若使用 [<FieldName>] 語法與對應的欄位名稱,且在較早的版次中有效,則在第 29 版 Service Pack 1 或更新版次中便持續有效。如果您要的話,仍可以繼續使用 [<FieldName>] 語法直接在運算式編輯器中輸入舊的欄位名稱 (與語言無關)。然而,建議您一律從 Expression Builder 的欄位清單中選取欄位,以讓欄位名稱與欄位語法隨時保持正確。

若 [{FieldName}] 語法用於新欄位名稱,而 [<FieldName>] 語法用於舊欄位名稱,則運算式可混合使用新欄位名稱與舊欄位名稱。

關於 Oracle CRM On Demand 線上說明中的範例

線上說明中顯示的部分運算式範例所使用的欄位名稱與欄位名稱語法 (與語言無關),是第 29 版 Service Pack 1 較早的版次中使用的欄位名稱與欄位名稱語法。這些範例仍然有效。然而,您在第 29 版 Service Pack 1 或更新版次中建立或更新運算式時,若從 Expression Builder 的欄位清單中選取對應的欄位,運算式中的欄位名稱將會與線上說明範例中顯示的欄位名稱不同,且欄位會以新欄位語法顯示於運算式編輯器中。

運算式長度

若是透過工作流程規則上「傳送電子郵件」動作設定的電子郵件訊息主體,支援的運算式長度上限為 2000 個字元,包括空格。按下 Enter 鍵,就可以在電子郵件中插入換行。換行在文字方塊中會計算為兩個字元。

在所有其他使用 Expression Builder 的情況下,支援的運算式長度上限為 1024 個字元,包含空格。

您還必須確認您要儲存運算式之欄位中的字元總數未超過該欄位的限制。在下列工作流程欄位中,函數和欄位名稱的前後會分別加上三個百分比符號 (%%%):

  • 透過「傳送電子郵件」動作所設定電子郵件中的「主旨」和「訊息主體」欄位
  • 透過「建立任務」動作所設定任務中的「主旨」和「說明」欄位

百分比符號表示函數或欄位名稱將轉換成文字值。在儲存運算式的欄位中,每一個百分比符號會計算為一個字元。

如果您直接在欄位中輸入函數或欄位名稱,則必須在名稱前後分別加上三個百分比符號。如果您使用Expression Builder來內嵌函數或欄位名稱,這些百分比符號會自動加入。

例如,如果您在某個工作流程動作上,使用 Expression Builder 將下列欄位名稱插入至電子郵件訊息主體:

[{Name}]

Expression Builder 會在工作流程動作上將下列內容 (共 14 個字元) 插入至電子郵件訊息主體:

%%%[{Name}]%%%

文字長度

當您將字串或數值文字傳遞至 Expression Builder 中的函數,文字不得包含超過 75 個字元,包含空格。如果文字超過 75 個字元,則 Expression Builder 會將該文字視為語法錯誤。當您參考欄位名稱將字串傳遞至函數時,75 個字元的限制不會套用至傳遞至文字之欄位中值的長度。

當您建立運算式,以設定欄位的預設值,75 個字元的限制會套用至任何傳遞至運算式中任一函數的字串或數值文字。此外,運算式結果中的字元數不得超過欄位中所允許的最大字元數。

條件運算式

條件運算式是指透過應用程式評估時,永遠會傳回如 True 或 False 等布林值的運算式。

備註:Yes、No、Y 和 N 不是布林值。如果您為函數 (例如 IIf 函數) 指定 True 或 Fa se 做為傳回值,則 True 和 False 會以字串傳回,而不是以布林值傳回。在條件運算式中使用不正確的布林值可能導致無法預期的行為發生。

在下列任何內容中使用的運算式必須是條件運算式:

  • 指定欄位驗證規則
  • 在工作流程規則中指定條件
  • 當做 IIf 函數中的第一個參數

驗證運算式

驗證運算式是用來確保欄位中輸入的資料是有效的。驗證運算式必須是條件運算式。

欄位的驗證運算式會每次欄位於全新或現有記錄上更新時,進行評估。不過,不會於下列情況下評估驗證運算式:

  • 欄位會在建立或修改記錄時保留空白。欄位驗證不會強制要求值。
  • 欄位具有預先存在的值 (可能有效或無效),而該值在更新記錄時並未變更。

如果驗證運算式沒有受到評估,或者如果驗證運算式評估為 NULL,則不會產生任何錯誤訊息。只有在驗證運算式失敗 (亦即,運算式評估為 FALSE) 時,才會產生錯誤訊息。

驗證運算式與其他運算式類型不同之處在於,它可以用條件運算子當做開頭。例如,如果「客戶名稱」是運算式所驗證的欄位,此運算式的開頭就可以是:

= 'Acme Hospital'

雖然這個運算式的格式不完整,不過它將會通過語法檢查。因為如果 Oracle CRM On Demand 在運算式的開頭找不到欄位名稱,它就會在運算式前面插入所驗證之欄位的名稱。您也可以依照下列方式輸入驗證運算式:

[<AccountName>]= 'Acme Hospital'

其中 [<AccountName>] 即為所驗證的欄位。

除了所驗證的欄位以外,如果運算式需要評估其他欄位,其標準作法是針對所驗證的欄位執行運算式中的第一項比較。

驗證運算式只會用於 Oracle CRM On Demand 進階欄位管理的「欄位驗證」文字方塊中。

驗證運算式範例

範例 1:某個業務程序要求機會的結案日期必須晚於機會的建立日期。

若要實作這項程序,請針對「結案日期」欄位 (位於機會的「欄位設定」頁面中) 建立驗證運算式,如下所示:

> [<CreatedDate>]

或者,您也可以使用下列範例,不過請注意,所評估的欄位 (結案日期) 必須是運算式中的第一個欄位:

[<CloseDate>] > [<CreatedDate>]

如需有關建立及編輯欄位的資訊,請參閱建立及編輯欄位

範例 2:某個業務程序要求當機會的成功率為 40% 或以上時,機會的收益必須是非零值。

此業務規則表示同時相依於這兩個欄位,而且可以用下列方式重新陳述:

對於機會而言,當成功率大於或等於 40 時,收益不得為零。反之,如果收益為零,成功率就不得大於或等於 40。

欄位的驗證運算式會在建立記錄以及使用者每次更新欄位時進行評估。因為只要更新「成功率」欄位或「收益」欄位就可能會影響這兩個欄位,所以您必須同時設有「成功率」欄位和「收益」欄位的驗證規則,才能正確實作此業務規則(如需有關建立和編輯欄位的詳細資訊,請參閱建立和編輯欄位)。

實作這則範例所需的步驟如下所示:

  1. 針對「成功率」欄位設定下列驗證規則:

    < 40 OR ([<Probability>]>= 40 AND [<Revenue>]> 0)

    請注意,您不需要使用百分比符號 (%)。

  2. 將類似下面的驗證錯誤訊息加入至「成功率」欄位:

    當成功率大於或等於 40% 時,收益就必須大於 0。

  3. 針對「收益」欄位設定下列驗證規則:

    (> 0 AND [<Probability>]>= 40) OR [<Probability>]< 40

  4. 將類似下面的驗證錯誤訊息加入至「收益」欄位:

    當成功率大於或等於 40% 時,收益就必須大於 0。

在運算式中使用相關的欄位

相關的欄位是聯結欄位,其值取決於外部索引鍵。當記錄類型的某欄位使用外部索引鍵參考其他記錄類型的欄位時,前者即稱為聯結欄位 (Joined Field)。相關欄位的範例為「機會」記錄類型上的 AccountName 欄位。「機會」記錄類型上的 AccountName 欄位是聯結欄位,其值取決於 AccountId 外部索引鍵欄位,該欄位參考「客戶」記錄類型。

如果您的運算式必須決定相關欄位的值,則建議您使用 JoinFieldValue 函數,並且參考 ID 欄位以取得欄位最近的值;亦即外部索引鍵欄位。否則,您的運算式結果可能不正確,運算式值結果可能無效。如需關於聯結欄位與 JoinFieldValue 函數的詳細資訊,請參閱 JoinFieldValue

相關主題

如需Expression Builder的相關資訊,請參閱下列主題:


2018年8月 Copyright © 2005, 2018, Oracle 及/或其關係機構。版權所有. Legal Notices.