tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Sandbox組織での開発とページレイアウトのメールコンポーネントについて

Sandbox組織での開発とページレイアウトのメールコンポーネントについてです。Salesforceには実際に業務で使用する本番組織とは別に開発を行うためのSandbox組織が用意されています。
f:id:tyoshikawa1106:20200317081126p:plain

Sandbox | セールスフォース・ドットコム


Salesforceでの開発は下記のフローで実施するのが一般的です。

  1. 本番環境の設定メニューからSandbox組織を作成
  2. Sandbox組織で開発を行う
  3. 本番環境にリリース


本番環境で直接開発を行うことは基本ありませんが、項目の追加やレイアウトの変更、レポートやダッシュボードの作成など一部の設定は本番環境で行う場合もあります。そのためSandbox組織作成後、時間が経過するととも本番組織とSandbox組織で設定情報に差分が出てくると思います。この問題は定期的にSandboxを更新(リフレッシュ)するか新しくSandbox組織を作成してそちらで開発を行う流れにすると本番組織との差分発生を解決できます。


Sandboxのリフレッシュにより本番組織との差分が無くすことで、Sandbox側の設定変更をに本番にリリースしても設定を壊われたりはしなくなります。(開発箇所は実装方法によるので除きますが..)


・・・基本的には上記の通りなのですが、一点要注意の箇所がありました。ページレイアウトに配置したメールコンポーネントです。
f:id:tyoshikawa1106:20200317082151p:plain



Sandbox組織でページレイアウトをカスタマイズ後に本番にリリースしたところ、メール送信機能が使えなくなったと連絡を受けました。本番リリース後のチェックが甘かったのが一番の問題なのですが、本番の設定情報を引き継いだ状態で作業したのになんでかなという疑問がありました。


この原因はおそらくSandbox組織リフレッシュ後のメール権限のデフォルト設定にあります。Sandboxをリフレッシュするとメールを送信するためのアクセス権が「システムメールのみ」で設定されます。システムメールのみの場合はSalesforceのメール送信機能が利用不可となり、ページレイアウト上からメールコンポーネントが除外された状態となります。
f:id:tyoshikawa1106:20200317082802p:plain


メールコンポーネントが除外された状態でそのページレイアウトを本番環境にリリースしてしまうと本番環境のレイアウト上でもメールコンポーネントがなくなってしまうと思われます。(最後まで検証してませんがおそらくこの挙動だと思います。)


ということでSandboxリフレッシュ直後でもページレイアウトのメールコンポーネントの配置設定には差分が発生するため、作業時には注意しておくのが良さそうです。


ちなみにメールを送信するためのアクセス権を「すべてのメール」にすると表示された状態に戻ります。問題がない状態であることを確認できていればSandbox組織作成後に切り替えておくと設定作業で予期せぬトラブルを回避できると思います。(ユーザのメールアドレスは自動でテストデータに差し替わります。それ以外のメール送信処理で外部や本番用メールアドレスの設定があるときにはそちらの設定を修正してから切り替える必要があります。)