意外と知らないかも?数式項目の復元について

はじめに

こんにちは!株式会社オプトプランニングです。
Salesforce(Salesforce.com/セールスフォース・ドットコム、略してSFDC)で気づいたことを書いていきます。

今回は、たまたまデータ型が数式のカスタム項目を削除した後に復元しなければいけないことがあり、初めて遭遇した画面だったので書いてみます。

実は、以前書いた削除後のデータについての気づきで数式項目を復元したことはあります。
その時は、「復元できるかどうか」しか着目していなかったため、今回の内容に気づけませんでした…

数式項目を復元したらどうなる…?

数式項目を削除した後に復元し、オブジェクトマネージャから対象の項目の詳細情報を確認してみると、数式オプション部分に以下のような文面が表示されます。

この数式は、項目が削除されたときに無効になりました。もう一度有効にするには、編集して保存してください。

図1 復元後の数式項目詳細画面
図1 復元後の数式項目詳細画面

復元後にひと手間

復元した数式項目を有効にするには、数式オプションに書かれているように「編集して保存」するひと手間が必要になります。

やり方はいたって簡単。

文面通り「編集」ボタンを押して「保存」するだけです。

編集画面を開いても特にエラーは出ず、何かする必要もありませんので「保存」をクリックします。
(もちろん、何か編集しても構いません)

図2 復元後の数式項目編集画面
図2 復元後の数式項目編集画面

保存後は項目詳細画面に戻ります。
数式オプションを見てみると先ほどの文面が消えているのが確認できます。

これで有効化の完了です!!

図3 復元後、有効化された数式項目詳細画面
図3 復元後、有効化された数式項目詳細画面

項目削除についての補足

削除時の表示について

項目を削除する時の表示内容について、削除後のデータについての気づきではどんな画面が表示されるか載せただけだったので、内容について見ておきたいと思います。

この表示は数式項目だけでなく、どのデータ型のカスタム項目を削除しても表示される内容です。

まずは、削除する際の内容です。

図4 項目削除時のポップアップ
図4 項目削除時のポップアップ

項目を削除しようとすると、このようなポップアップが出ます。

連動項目や制御項目、割り当てルールやエスカレーションルールに削除予定の項目が使用されていないか把握しておく必要があることが分かります。

復元時の表示について

次に、項目の復元時に表示される内容です。
削除時と同様、どのデータ型のカスタム項目を復元しても表示されます。

図5 項目復元時に表示される画面
図5 項目復元時に表示される画面

実は、ここに数式について言及があります!!
また、手動で変更を戻す必要があることも記載があります。

他にも、

  • ページレイアウトからは削除されたまま
  • API参照名は「×××_del」に変更される
  • すべてのレポート・レポートタイプから削除されたまま
  • AppExchangeパッケージに直接含まれている場合、削除されたまま

などがありますので、注意が必要です。

ページレイアウトに関しては復元後すぐに気づいて対応しそうですが、レポートに関しては作成しているものがない場合、削除されたままになっていることに気づかず、修正しないまま後から困りそうな部分です。

また、すでにレポートを作成している場合で、削除予定の項目をレポートで使用していてもエラーが出ることなく削除できてしまう点は注意が必要です。
しかも、列や行での使用だけでなく絞り込み条件として項目を使用している場合でもエラーが出ることなく削除できてしまいます。

対処法としては、削除前に項目の使用場所を確認しておくぐらいしかないと思います。

API参照名について

項目の復元時に表示される内容のうち、

  • API参照名が ×××_del に変更されました。

という部分について、少し言及したいと思います。

API参照名(項目名)は、削除した時に「×××_del」に自動で変更されます。
このことは、項目を削除した後に「削除済み項目」の一覧を見ると分かります。

図6 削除前のAPI参照名
図6 削除前のAPI参照名
図7 削除後のAPI参照名
図7 削除後のAPI参照名

復元したときにAPI参照名が変わるというよりは、削除したときに変更されたAPI参照名「×××_del」のまま復元される、といった方が正しいような気がしますが、復元前後でAPI参照名が変わってしまうことに注意してください。

もちろん、項目を削除してから復元するまでの間に同じAPI参照名の項目を作成していない場合は、復元後に編集する(「_del」部分を消す)ことで、削除前と同じAPI参照名に戻すことができます。

あとがき

フローやApexなどで使用している項目は、削除しようとしてもエラーが出て削除ができませんが、レポートの場合、エラーが出ることなく削除できてしまいます。

そのため、削除項目を復元後にレポートやダッシュボードの動作がおかしい場合は復元した項目を該当レポートで使用していないかの確認を行った方がいいと思います。

また、復元した項目をレポートで使用したいのに見つからない場合は、レポートタイプ設定から項目を再設定する必要があることにも注意が必要です。

やはり、復元が簡単にできるからといっても万能なわけではないので(削除時点でAPI参照名は変わってしまうし)安易に削除・復元しないことが一番よさそうだな、というのが個人的な感想です。

それでは、またお会いしましょう!!

関連記事
削除後のデータについての気づき

変更セットの上手な使いまわし術

気づき

はじめに

こんにちは!株式会社オプトプランニングです。

先日リリースについて書きましたが、その際書けなかったクローズ後の変更セットの私なりの使い方を忘備録も兼ねて書いていきたいと思います。

クローズした変更セットの利用方法その1

同じ変更セットを使いまわす

まずは、変更セットの再利用です。

  • 同じ変更セットを複数の組織にリリースする必要がある
  • 本番組織をベースに作成したSandbox環境でリリースの評価・テストを行い、問題なかったので同じ内容の変更セットを本番環境にリリースしたい

など、同一内容の変更セットを別組織にリリースしたい場面はあると思います。

クローズした変更セットは編集はできなくなりますが「アップロード」ボタンは残っています。
これを利用し、クローズした変更セットを別環境にアップロード・リリースすること(再利用)ができます。
(※クローズした変更セットに含まれるコンポーネントは、変更セット作成後に削除や修正をしていない場合に限ります。詳しくは後ほど説明します。)

アップロードする際、対象組織に対してリリース接続の設定を行うことが必要ですので、そこは忘れずに行いましょう。

1つの変更セットを再利用する良い点は、「変更セットアップロード履歴」が残ることです。
アップロードする度に残るので、後からどの組織にアップロードしたかの確認ができます。

図1 2つの組織にアップロードした後の変更セットアップロード履歴
図1 2つの組織にアップロードした後の変更セットアップロード履歴

Trailheadでは

送信変更セットを別の組織にアップロードした後で、異なる組織にアップロードすることはできません。

インテグレーション環境でのテストと変更のリリースhttps://trailhead.salesforce.com/ja/content/learn/modules/declarative-change-set-development/test-in-the-integration-environment-and-deploy-changes

とありますが、Developer SandboxからDeveloper Sandboxまたは本番組織に向けてのアップロードはできることを確認しています。

Sandboxの種類が違う場合などは検証しておりませんので、うまくいかない場合はTrailheadにあるように変更セットのコピーを行ってください。

クローズ後の変更セットのアップロード方法

変更セットのアップロードボタンは、送信変更セットの一覧や変更セットの詳細にあります。

図2 送信変更セット一覧画面
図3 送信変更セットの詳細画面
図3 送信変更セットの詳細画面

クローズ後の変更セットをアップロードしようとすると図5のような画面になります。
変更セットをどの環境にもアップロードしていない図4の時と比べてみると、

この変更セットをアップロードすると、編集できなくなり、対象組織から取り消すこともできません。

というメッセージがクローズした変更セットに表示されていないことがわかります。

既にクローズしている変更セットはそもそも編集することができないため、注意書きが現れないようです。

図4 オープンの変更セットアップロード時のアップロード詳細
図4 オープンの変更セットアップロード時のアップロード詳細
図5 クローズの変更セットアップロード時のアップロード詳細

使いまわす時の注意点その1

1つ目に注意したいのは、すでにアップロードした組織も選択できる点です。

同じ変更セットを複数回にわたって同一環境にアップロードしても特に問題は起きません。
逆を言えば、エラーも出ないということです。

アップロードは成功したのにアップロードしたはずの環境(対象組織)に受信変更セットがみつからない…?という時はアップロード先に間違いがないか確認しましょう。

アップロード先は、変更セットアップロード履歴やアップロード完了の通知メールで確認できます。
アップロード完了の通知メールには、送信変更セットのソース組織と対象組織が明記されています。

参考までに、「リリースしてみた<アップロード編>」で載せなかったアップロード完了の通知メールはこんな感じです。
システムメールとしてSalesforceから送られてきます。

図6 アップロード完了のシステムメール
図6 アップロード完了のシステムメール

使いまわす時の注意点その2

2つ目の注意点としては、1度にアップロードできる対象組織は1つだけという点です。
アップロード先を選択する画面はラジオボタンで構成されており、複数の組織を選択することは不可能となっています。

図7 アップロード時の対象組織の選択画面
図7 アップロード時の対象組織の選択画面

複数の組織に同じ変更セットをアップロードしたい場合はそれぞれアップロード手順を行う必要があります。

使いまわす時の注意点その3

3つ目の注意点としては、クローズした変更セットに含まれるコンポーネントは更新されないという点です。

例えば、前回のリリースしてみた<変更セット作成編>で追加した権限セット「MFA」について、変更セットアップロード後に修正を加えたとします。
アップロード後の変更セット(クローズした変更セット)はコンポーネントの更新が行われないので、権限セット「MFA」に行ったは反映されません。

変更セットに変更はないが、変更セットのコンポーネントの内容に変更がある場合は、「変更セットのコピー」を作成しないと修正内容を反映することはできません。

コンポーネントの更新という考え方が少し難しく感じますね…

図8 送信変更セット詳細に書かれている内容
図8 送信変更セット詳細に書かれている内容

クローズした変更セットの利用方法その2

変更セットのコピーを作成し編集する

クローズした変更セットは編集することはできませんが、コピーを作成することは可能です。
また、作成したコピーに対しては変更セットの編集ができます!!

このことを利用し、クローズした変更セットを編集したい時はコピーを作成するといいと思います。

  • リリースでコンポーネント不備によるエラーが出た
  • リリースでエラーも無く一安心した後に、リリース環境の確認を行っていて入れそびれたコンポーネントがあることに気づいてしまった

などなど、変更セットの作り直しが発生してしまうのはよくあることだと思います。(きっと私だけじゃない…はず 笑)

リリースしそびれたコンポーネントだけの変更セットを新しく作成してもいいのですが、

  • エラーやコンポーネント不足の度に変更セットを作成すると、沢山の変更セットが作られてしまう
    →どんな内容の変更セットをアップロード(リリース)したか履歴を確認する可能性があるため、リリース内容をなるべく1つの変更セットにまとめておきたかった
  • 「連動関係を参照/追加」を使用することで、変更セットに含めたい関連するコンポーネントが探し出しやすい

といった理由から、変更セットのコピーを作成しコンポーネントを追加(削除)する、ということを行いました。

変更セットのコピーの作り方

変更セットのコピーはとても簡単に作成できます。
対象の変更セットの「コピー」をクリックするだけです。

アップロードと同様、「コピー」は、送信変更セットの一覧や変更セットの詳細にあります。

図9 送信変更セット一覧画面
図10 送信変更セットの詳細画面
図10 送信変更セットの詳細画面

コピーをクリックすると、「変更セットのコピー」に遷移し、ここで変更セットの名前や説明を変えることができます。

ベースの変更セットと混同しないためにも、名前や説明はコピーであることが分かりやすいものに変更しておいた方がいいと思います。

図11ではすでに名前や説明を変更してありますが、「変更セットのコピー」の名前と説明にはデフォルトでベースの変更セットと同じ内容がそれぞれ入力されています。

図11 変更セットのコピー作成時の入力画面
図11 変更セットのコピー作成時の入力画面

変更セットのコピーを保存すると、ベースの変更セットのコンポーネントを引き継いだ「状況」がオープンの変更セットが出来上がります。

あとは、新規作成の時と同様にコンポーネントの追加を行ったり、不要なコンポーネントの削除を行いましょう。

あとがき

変更セットのコンポーネントの種類は、作成したことがある方ならわかると思いますがとても沢山あります。
以前どのぐらいあるか調べた時は約120種類ありました。(2021年12月ぐらいに調べました)

中には見たことのないコンポーネント種類名もあったりしたので、変更セットの作成は本当に大変な作業だと思います。

今回は、クローズ後の変更セットに焦点を当てて使い道について書いてみました。
クローズ後に限らず、良い使い道を思いついたら第二弾としてまとめられればと思います。

それでは、またお会いしましょう!!

関連記事
リリースしてみた<変更セット作成編>
リリースしてみた<アップロード編>

削除後のデータについての気づき

気づき

はじめに

こんにちは!株式会社オプトプランニングです。
Salesforceでいろいろやってみた中での「ちょっとした気づき」を書いていこうと思います。

Salesforceの削除は、基本的に物理削除ではなく論理削除です。
このことについては多くの先輩方が詳しく説明して下さっているので私からの説明は割愛させていただきます。
論理削除ということで、レコード・カスタム項目・カスタムオブジェクトについて削除した後のデータについて気づいたことを書いていこうと思います。

また、普段Lightning Experienceを利用している場合の内容です。

レコードの削除後

削除後のレコードの行方は?

レコードの削除後、削除したレコードはどこにいくか知っていますか??
削除したレコードは一定期間「ごみ箱」にいます。

間違って削除した!!という時は「ごみ箱」を見てみましょう。

ごみ箱の場所は?

ごみ箱はアプリケーションランチャー内にあります。

左上にあるカラフルな9つの「・」をクリックすると表示されるポップアップの一番下にある「すべて表示」をクリックします。

図1 9つの「・」をクリック後に出現するポップアップ
図1 9つの「・」をクリック後に出現するポップアップ

アプリケーションランチャーが開くので、「すべての項目」を見てみましょう。
「ごみ箱」を見つけることができました。

図2 アプリケーションランチャー内にあるごみ箱
図2 アプリケーションランチャー内にあるごみ箱

削除したレコードはすべてこの「ごみ箱」の中に一定期間保管されています。
間違って削除したレコードはここから復元することができますし、完全に削除することもできます。

図3 ごみ箱の一覧
図3 ごみ箱の一覧

カスタム項目の削除後

削除後のカスタム項目の行方は?

カスタム項目の削除後、削除したカスタム項目はどこに行くか知っていますか??
削除したカスタム項目は一定期間「削除済みの項目」にいます。

間違って削除した!!という時は「削除済みの項目」を見てみましょう。

削除済みの項目の場所は?

削除済みの項目は各オブジェクトの「項目とリレーション」の右上にあります。

削除したカスタム項目は、カスタム項目を作成したオブジェクト詳細の「削除済みの項目」からでしか見ることができないことに注意してください。
レコードとは違い、削除後一か所に集約されているわけではありません。

図4 項目とリレーション右上にある「削除済みの項目」
図4 項目とリレーション右上にある「削除済みの項目」

間違って削除したカスタム項目はここから復元することができますし、完全に削除することもできます。

図5 削除済みの項目の一覧
図5 削除済みの項目の一覧

カスタムオブジェクトの削除後

削除後のカスタムオブジェクトの行方は?

カスタムオブジェクトの削除後、削除したカスタムオブジェクトはどこに行くか知っていますか??
削除したカスタムオブジェクトは一定期間「削除済みオブジェクトリスト」にいます。

間違って削除した!!という時は「削除済みオブジェクトリスト」を見てみましょう。

削除済みオブジェクトリストの場所は?

この「削除済みオブジェクトリスト」ですが、レコードやカスタム項目と違いLightning Experienceでは表示することができません。

ではどうすれば表示できるかというと…

Salesforce Classicだと表示できます!!!

長い道のり

まず、Salesforce Classicに切り替えましょう。

切り替えはプロファイルを参照すると表示される「オプション」内にある「Salesforce Classicに切り替え」をクリックするとできます。

図6 プロファイルからSalesforce Classicに切り替え
図6 プロファイルからSalesforce Classicに切り替え

Salesforce Classicに切り替えるとホーム画面が表示されます。

画面上部にある「設定」をクリックすると、

図7 Salesforce Classicホーム画面
図7 Salesforce Classicホーム画面

次のような設定画面に変わります。

この画面を下にスクロールしていくと左の赤枠部分に「ビルド」が出てくるので、その中の「作成」内に「オブジェクト」があるのでクリックします。

図8 Salesforce Classic設定画面
図8 Salesforce Classic設定画面
図9 「作成」内の「オブジェクト」
図9 「作成」内の「オブジェクト」

カスタムオブジェクトの一覧が表示され、最下部に「削除済みオブジェクト」というのが確認できます。
この「削除済みオブジェクト」ですが、削除したカスタムオブジェクトがない場合、表示されません。

図10 カスタムオブジェクトリスト
図10 カスタムオブジェクトリスト

こちらが探していた「削除済みオブジェクトリスト」です。
やっと見つかりました…!

削除したカスタムオブジェクトはすべてこの「削除済みオブジェクトリスト」の中に一定期間保管されています。
間違って削除したカスタムオブジェクトはここから復元することができますし、完全に削除することもできます。

図11 削除済みオブジェクトリスト
図11 削除済みオブジェクトリスト

おまけ

15日間以上削除されない…?

カスタム項目やカスタムオブジェクトを削除する前、注意事項がかかれたポップアップが出現すると思います。
以下はカスタム項目を削除する前に表示されるものです。

図12 カスタム項目削除時の注意事項
図12 カスタム項目削除時の注意事項

15日を過ぎると、自動的に項目とそのすべてのデータが完全に削除されます。

とありますが…
15日経過後も残っていました~

2021年12月1日に削除した項目が、2022年2月7日の時点で残っていることが確認できます。
約二か月経過していますね!

図13 削除後15日以降も残っていた削除済み項目
図13 削除後15日以降も残っていた削除済み項目

「15日を過ぎると」とありますが、「15日後」ではないのです。
もちろん、15日経過後はいつまでデータが残っているかはわかりませんので、あくまで「こんな事例もあったよ」という参考までに。

もし、15日以上経過後に削除したものを復元したい場合は念のため削除後の各データ保存場所を確認してみたほうがいいかもしれません。

また、15日以上経過していても完全削除されているとは限らない、という点は留意しておいたほうがいいと思います。

念のため復元できるか試したところ、復元できました!!

図14 削除済み項目復元
図14 削除済み項目復元

あとがき

今回きっかけとなったのは、削除したものの復元のためではなく、削除したものの完全削除のためでした。

データが残っている状態だと作業が進まず、完全削除を行おうにも「削除済みオブジェクトリスト」がみつからなかったのです。
私がSalesforceに携わった時には既にLightning Experienceが存在したので、Classicはあまりなじみがないのも原因ですぐに見つけることができませんでした。

プロファイルの設定を行っても一部権限が付与されている場合はSalesforce Classicに切り替えるスイッチャを非表示にできません。
今まで何故だろう?と思っていましたが、まだLightning Experienceで使用できない機能があるからなのだと身をもって体験でき、いい勉強になりました。

カスタムオブジェクトやカスタム項目の作成は近いうちに「やってみた」で書いていこうと思います。

それではまた会いましょう!!