Oracle CRM On Demandの管理 > Expression Builder > Expression Builderの関数 > PRE
PRE
Expression BuilderのPRE関数は、フィールド値が変更されたとき、かつ値がデータベースで更新される前に、指定されたフィールドの前の値を返します。
注意:[待機]アクションを含むワークフロールールでは、PRE関数を使用しないでください。[待機]アクションがPRE関数に影響を与えます。[待機]アクションの後に続くすべてのアクションは、指定の待機期間が終了するまで実行されません。残りのアクションは、ルールが最初にトリガーされた処理ではなく、別のバッチ処理で実行されます。ワークフロールールをトリガーしたアクションより前にあるレコードのフィールドの値は保持されません。そのため、フィールドの以前の値と現在の値は常に同じであるとみなされます。
構文
PRE('<fieldname>')
結果のタイプ
文字列
引数
この関数の引数について次の表で説明します。
引数
|
説明
|
fieldname
|
変更されたフィールドの名前。
|
注: このトピック内で式の例において使用されている、言語に依存しないフィールド名およびフィールド名構文は、Expression Builderのリリース29サービスパック1より前のリリースで使用されていたフィールド名およびフィールド名構文です。これらの例はまだ有効です。ただし、Expression Builderのリリース29サービスパック1以降で、対応するフィールドを式のために[フィールド]リストから選択する場合、フィールド名およびフィールド名構文は、それらの例で示されたものとは異なります。フィールド名およびフィールド名構文が常に正しくなるよう、Expression Builderでは、式のフィールドは必ず[フィールド]リストから選択することをお勧めします。式でのフィールド名およびフィールド名構文の詳細は、「式について」を参照してください。
PRE機能の使用時には次の点を考慮してください。
- ワークフロー条件や検証文などの条件式では、PRE関数を使用してフィールドの以前の値を取得するときに、フィールドの初期値は空白(つまり、null値)の可能性もあることに留意してください。初期値がnullの場合、null以外の値との比較によって予期しない動作が生じます。このような場合に条件式が正しく評価されるようにするには、この例に示すように、PRE関数とともにIfNull関数を使用します。
IfNull([<FieldName>], "Invalid") <> IfNull(PRE('<FieldName>'), "Invalid")
この例では、「Invalid」というテキスト文字列を使用してnull値を置き換えていますが、調査対象のフィールドに値としてその文字列が存在しない場合は任意の文字列を使用できます。
- [待機]アクションの後に呼び出されるワークフロールールまたはアクションでPRE関数を使用した場合、関数はフィールドの以前の値を返しません。ただし、ビジネスプロセスによっては、このような比較が必要になる場合もあります。その場合、[更新されたレコードが保存される前に]トリガーイベントを指定したワークフロールールを使用して、フィールドの以前の値をそのレコードタイプの未使用フィールドに格納できます。その後、格納したフィールド値を使用して、[待機]アクションを持つワークフロールールで必要な比較を実行できます。
フィールドの以前の値をそのレコードタイプの未使用フィールドに格納するワークフロールールを作成する場合は、元のフィールドの以前の値が空白(つまり、null値)の可能性もあることに留意してください。したがって、次のような式を使用して、null値が見つかった場合にデフォルト値を格納する必要があります。
IfNull([<FieldName>], "Invalid")
この例では、「Invalid」というテキスト文字列をデフォルト値として使用してnull値を置き換えていますが、元のフィールドに値としてその文字列が存在しない場合は任意の文字列を使用できます。
取引先レコードの以前の所有者に電子メールを送信するワークフロールールの作成例
次の例では、取引先レコードの所有者が変更されたときに、その取引先レコードの以前の所有者に電子メールを送信するワークフロールールを作成する方法を示します。
取引先レコードの以前の所有者に電子メールを送信するワークフロールールを作成するには
- 取引先レコードタイプのワークフロールールを作成し、[更新されたレコードが保存されたとき]トリガーイベントを指定します。
- ワークフロールールを保存します。
- ワークフロールールに電子メール追加アクションを作成します。
- ワークフローアクションについて、次の操作を実行します。
- [宛先]フィールドで、[特定の電子メールアドレス]を選択します。
- [宛先]フィールドの式テキストボックスに、次の式を追加します。
JoinFieldValue('<User>', IfNull(PRE('<OwnerId>'), "admin@mycompany.com"),'<EMailAddr>')
- 電子メールの件名および本文に必要なテキストを追加します。
- ワークフローアクションを保存します。
関連トピック
関連するExpression Builderの情報については、次のトピックを参照してください。
|