Salesforceのリリースには落とし穴がたくさんあります。そのため入念なリリース準備とリハーサルが大切です。
今回は筆者が実際に遭遇したリリース時のヒヤリハット事例をお伝えします。
選択リスト値が勝手に無効化される
新たな選択リスト値の追加はよくあるカスタマイズです。
一見単純なリリースに見えますが、実はある条件下ではリリース先の選択リスト値が意図せず無効化されてしまうという落とし穴があります。
具体的には、メタデータセットや送信変更セットなどのリリースのソースのなかに含まれていない選択リスト値がリリース先の組織にあった場合、その選択リスト値は無効化されてしまうのです。
たとえば「サンプルリスト」というカスタム選択リスト項目があったとします。
リリース先の組織の選択リスト値に「サンプルD」という値があり、リリース元には存在していない状態です。
要するに開発環境のメタデータとリリース先の環境のメタデータに差分がある状態なのですが、この状態でリリースをしてしまうと、リリース先にしかない選択リスト値が無効化されてしまいます。
この現象は複数の開発者で一つの組織をカスタマイズしている場合の連携不足で起こりがちです。
これを避けるためには、開発者同士でしっかりと情報を共有すること、リリース先の組織にしか存在しない選択リスト値がないか確認することが重要です。
カスタム設定が存在しない
変動する割引率など、設定として持っておきたい値を格納するのに便利なカスタム設定ですが、ここにも以下のようなリリース時の落とし穴があります。
- Sandboxにコピーされない
-
本番環境などのある組織をコピーして開発用のSandboxを作成した場合、カスタム設定のレコードはコピーされません。
- メタデータとしてリリースできない
-
カスタム設定のレコードは送信変更セットやSalesforce CLIによるメタデータリリースではリリースできません。
なお、カスタム設定のレコードは通常のオブジェクトのレコードと同じようにデータローダーでもInsertできます。
手動で作成するか、データローダーのようなツールを使ってInsertするなどの手順を忘れないように実施しましょう。
まとめ
以上が、私の経験したリリース時のヒヤリハットです。
どれもすべてリリースのリハーサル段階で判明したため事なきを得ましたが、一歩間違えたら大惨事になってしまうところでした。
Salesforceのリリースには思わぬところに落とし穴が隠れています。
しっかり計画を立てて、入念なリハーサルを実施しましょう。