列印      開啟 PDF 版的線上說明


上一個主題

下一個主題

PRE

當欄位值已經修改過,而在資料庫中更新該值之前,Expression Builder中的 PRE 函數會傳回指定欄位的先前值。

注意:強烈建議您不要將包含「等待」動作的工作流程規則與 PRE 函數一起使用,因為「等待」動作會影響 PRE 函數。「等待」動作之後的任何動作在指定等待期間終止前都不會執行。剩餘動作會在不同的批次作業 (不同於原始觸發規則的作業) 中執行,且在觸發工作流程規則之動作之前的記錄其欄位值不會被保留。因此,欄位之前的值與目前的值一律會被視為相同。

語法

PRE('<fieldname>')

結果類型

字串

引數

下表說明函數的引數。

引數

描述

fieldname

已經修改的欄位名稱。

備註:在此主題的範例運算式中所使用的欄位名稱及欄位名稱語法與語言無關,是在 Expression Builder 第 29 版 Service Pack 1 較早的版次中使用的欄位名稱與欄位名稱語法。這些範例仍然有效。然而,若您從 Expression Builder 第 29 版 Service Pack 1 或更新版本的欄位清單中選取運算式的對應欄位,則欄位名稱與欄位名稱語法將會與範例中所顯示的不同。建議您一律從 Expression Builder 的欄位清單中選取運算式的欄位,以讓欄位名稱與欄位名稱語法隨時保持正確。如需有關運算式中欄位名稱與欄位名稱語法的詳細資訊,請參閱關於運算式

使用PRE 函數時適用下列考量:

  • 在條件運算式中 (例如工作流程條件與驗證陳述式 ),您使用 PRE 函數來擷取先前的欄位值時,請記住欄位的初始值可以空白 (亦即為 Null 值)。如果初始值為 Null,任何與非 Null 值的比較都會導致無法預期的行為發生。為了確保在這種情況下正確評估條件運算式,請將 PRE 函數與 IfNull 函數一起使用,如此範例中所示:

    IfNull([<FieldName>], "Invalid") <> IfNull(PRE('<FieldName>'), "Invalid")

    在此範例中,文字字串無效是用來取代 Null 值,但您可以使用任何想要的字串,前提是該字串不是被檢查之欄位中的值。

  • 如果 PRE 函數用於在「等待」動作後叫用的工作流程規則或動作中,則該函數不會傳回先前的欄位值。不過,您擁有的業務處理可能需進行此比較。在這種情況下,您可以使用具有「儲存修改的記錄前」觸發事件的工作流程規則,將先前的欄位值儲存在記錄類型上任何未使用的欄位中。接著即可在具有「等待」動作的工作流程規則中,使用任何比較所需的已儲存欄位值。

    當您建立工作流程規則,以在記錄類型上未使用欄位中儲存先前的欄位值,請記住先前的原始欄位值可以空白 (亦即為 Null 值)。因此,您必須使用如下的運算式來儲存預設值 (若遇到 Null 值的話):

    IfNull([<FieldName>], "Invalid")

    在此範例中,文字字串無效是用來取代 Null 值的預設值,但您可以使用任何想要的字串,前提是該字串不是原始欄位中的值。

建立傳送電子郵件給客戶記錄前一位負責人之工作流程規則的範例

下列為如何建立工作流程規則的範例,該規則會於記錄負責人變更時傳送電子郵件給客戶記錄前一位負責人。

建立傳送電子郵件給客戶記錄前一位負責人的工作流程規則

  1. 為「客戶」記錄類型建立具有「儲存修改的記錄時」觸發事件的工作流程規則。
  2. 儲存工作流程規則。
  3. 在工作流程規則上建立「新增電子郵件」動作。
  4. 在工作流程動作上,執行下列作業:
    1. 在「收件人」欄位中,選取「特定電子郵件地址」。
    2. 在「收件人」欄位運算式文字方塊中,新增下列運算式:

      JoinFieldValue('<User>', IfNull(PRE('<OwnerId>'), "admin@mycompany.com"),'<EMailAddr>')

    3. 在電子郵件主旨與本文中新增必要文字。
    4. 儲存工作流程動作。

相關主題

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


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