前提APIバージョン 52.0
結論
フローの「変更済み」はどちらの状態でもTrueとなるが、
プロセスビルダーの「変更済み」は未入力から入力済みの場合はFalseとなり、
入力内容が変更された場合のみTrueとなる。
表にすると以下の通り。
未入力->入力済み | 入力済み->入力内容変更 | |
---|---|---|
プロセスビルダー | False | True |
フロー | True | True |
この差異が元からなのかバージョンが原因なのかはわかりません。
おまけ
試した処理の流れは以下の通り
- 処理1:ステータスの状態更新を契機に項目Aに値を設定する。
- 処理2:処理1の結果を契機に別の項目Bに値を設定する。
処理2の実行条件を直感的に書くとこうなる。
and(
ISPICKVAL( [ParentObj__c].Status__c , "Stage3") ,
ISCHANGED([ParentObj__c].SubContact__c )
)
しかしプロセスビルダーでは動かない。
数式でもプルダウンによる条件設定の方で「変更済み」を使っても動かない。
では、フローで同じ条件ならどうなるか?
なんと動くのだ。
当初はフローとプロセスビルダーの混在環境が原因と思い、プロセスビルダーのみで作っても再現したために冒頭の結論が原因では?と行き当たり、試してみたらまさかのビンゴでした。