tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:プロセスビルダーとレコードID指定について

プロセスビルダーのアンチパターンについてです。プロセスビルダーを利用すると項目自動更新やChatter投稿などの便利な機能をプログラミングなしで実現することができます。ワークフロールールなどでもそうでしたが値更新処理などでレコードIDの直接指定を行うのはオススメしません。
f:id:tyoshikawa1106:20170108113340p:plain


レコードIDは環境依存したデータとなるためSandbox環境と本番環境で値が変わってしまいます。そのためSandbox環境でカスタマイズした内容を本番環境にリリースすると動かなくなってしまいます。


Sandboxと本番環境で別々の設定で管理するのは現実的ではありませんし、プロセスビルダーで値を変更するときは一度別バージョンとして作成して有効化するという少し手間のかかる手順が発生します。数が少なければそれでもなんとかなるかもしれませんが、数が多くなると対応できなくなります。


このときに問題になるのがSandbox環境のリフレッシュをしたときです。本来本番環境と同じ設定内容で最新化できるSandboxのリフレッシュですが、上記対応を行っていると動かない機能がたくさんできてしまいます。このような理由でエラーが発生すると下記のようなメッセージが表示されます。
f:id:tyoshikawa1106:20170108114047p:plain


フローのトリガに失敗しました。というエラーメッセージでは原因が確認できないのでなぜエラーが発生したのか調査するのも大変です。


こうしたトラブルを避けるためにもプロセスビルダーでレコードIDなど環境依存する値を利用するのは避けるのがオススメです。