tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:プロセスビルダーでメールアラートを実行するときの注意点

プロセスビルダーではメールアラート機能をつかってレコードの登録や更新時にメールを送信することができます。
f:id:tyoshikawa1106:20170522000208p:plain


ワークフロールールと同じことができるイメージですがプロセスビルダーの場合はフローの流れをわかりやすく確認でき、またバージョン管理機能も利用することができます。便利な機能ですがプロセスビルダーからメールアラートを実行する場合には注意点が1つあります。送信先のメールアドレスの有無チェックです。


例えばリードオブジェクトの新規作成時にメールを送信する機能を実装します。リードのメール項目は通常必須項目ではないので次のように未入力で保存を実行できます。
f:id:tyoshikawa1106:20170522000604p:plain


プロセスビルダーからメール送信を実行しますがメールアドレスが無い状態です。その結果つぎのようにエラーとなります。
f:id:tyoshikawa1106:20170522000726p:plain

フローのトリガに失敗したため、レコードを保存できません。フロートリガで、ID 30110000000g8lH のフローバージョンの実行に失敗しました。フローエラーメッセージ: このフローで未対応の障害が発生しました フローを処理中に未対応の障害が発生しました。詳細は、組織のシステム管理者にお問い合わせください。 システム管理者にお問い合わせください。


フローのエラー詳細は通知メールで確認できますが原因特定は少ししづらい感じです。
f:id:tyoshikawa1106:20170522000936p:plain


このエラーの場合は下記内容となります。

Probably Limit Exceeded or 0 recipients


この問題はアクショングループの条件を定義で解決できます。次のようにメール項目がNULLで無いときのみ実行と指定してください。
f:id:tyoshikawa1106:20170522001206p:plain



するとメール項目の値が存在しない場合はメール送信処理が実行されなくなり、エラーが発生することなく保存することができます。
f:id:tyoshikawa1106:20170522001347p:plain


メール項目に値が存在している場合は正しくメール送信が実行されます。
f:id:tyoshikawa1106:20170522001545p:plain


このようにプロセスビルダーのメールアラート機能を利用するときはメール項目の値チェックが重要になります。ページレイアウト上で必須項目にしていてもApexなどから空白で保存するような可能性もありますので必ず値チェックをしておくのがオススメです。

おまけ

ワークフロールールで利用されているメールアラートはどこで使われているか確認できますが、プロセスビルダーの場合、メールアラートの利用箇所に表示されません。さすがに削除はできませんがどこにも利用されていないと勘違いしないように注意する必要があります。
f:id:tyoshikawa1106:20170522001931p:plain

f:id:tyoshikawa1106:20170522002048p:plain