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

はじめに

こんにちは!株式会社オプトプランニングです。
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参照名は変わってしまうし)安易に削除・復元しないことが一番よさそうだな、というのが個人的な感想です。

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

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

ひろしま企業健康宣言 2022

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

2022年8月12日付で、当社は協会けんぽ広島支部様より、
「ひろしま企業健康宣言 健康づくり優良事業所」に認定されました!
昨年に続き、2年連続 5つ星です!!

当社の令和3年度(令和3年4月~令和4年3月)の取組みですが、
基本はもちろん、身近に出来ることから力をいれてきました!

まずは、特定保健指導を社員全員に実施しました。
全員の健康診断後、直接対面で行ったり、WEB面談でお願いもしました。

昨年度好評で、既に定着しつつある社内運動大会も継続して開催、
新しい取り組みとしては、朝のストレッチもやってみました。
広く認識を深めるために、認知症サポーターの講座も受講しています。


当社の健康経営に関する取り組みは、
コーポレートサイトの「健康経営のページ」をご覧ください!
https://www.opt-p.co.jp/initiatives/#link_sec_02


これからも、従業員のみなさんの健康づくりを支えてきたいと思います!

社内 野の花画伯から その4

向日葵(ひまわり)

花言葉は、「憧れ」、「情熱」、「あたなだけ見つめる」、など、
太陽に向かって花が咲く、花の向きが変わる、日廻り(ひまわり)と呼ばれています。
元気/明るいイメージでポジティブな花言葉が多く、友人にエールを送りたい時や
プロポーズの際にもピッタリな花です。

種も栄養価が高くて、種からとれるひまわり油も効果効能も非常に高く、
ビタミン、ミネラルがたくさん含まれる優れものです。

今回は、岡山の吉備路を「ダーマトグラフ」という色鉛筆で
暑さに負けないよう、太目に描きました。

AWS CLIで情報を出力しようVPC編(Linux版-その3)

VPCにはどの様な情報があるのだろうか?。一番気になるのは,CIDR,サブネット,どのようにしたら見れるのだろうか?

             図A VPCの一覧を図で書いてみる

1.利用中のリージョンのVPC情報を出力しよう

利用中のVPC一覧を出力する場合は、以下のコマンドを実行します。

aws aws ec2 describe-vpcs

              図B VPC一覧出力

json形式で出力されます。

2.必要な情報のみ出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPC名に絞った例です。トップレベルがVpcs,で(画像B 階層と項目)
CidrBlockとtags[0]をdict{}に配置させます。

aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,Name:Tags[0].Value}]" \
--out table

オプションのqueryを使用することで絞り込みができます。
–query オプションの順番を変えても出力順序は変わりません。CIDRが先に出力されます

aws ec2 describe-vpcs \
--query "Vpcs[].[{Name:Tags[0].Value,CIDR:CidrBlock}]" \
--out table

           図C 項目を絞って出力

VPCのCIDRとVPC名を出力できました。

3.必要な情報(追加)出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPCIdにVPCの名前を追加した例です。トップレベルがSubnets,で
(画像D 階層と項目)CidrBlockとVpcIdをdict{}に配置させます。

aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,Name:Tags[0].Value,VpcId:VpcId}]" \
--out table

            図D CIDRとVPC名とVPCID

VPCのCIDRとVPC名とVPCIDを出力できました。

4.サブネット情報を出力してみましょう

VPCの情報出力では、サブネットの情報は出力されないので、サブネット情報
を出力するコマンドでサブネット情報を出力しましょう。

aws ec2 describe-subnets

             図E サブネット情報

サブネットの情報がjson形式で出力されます。

5.必要な情報のみ出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPCIdに絞った例です。トップレベルがSubnets,で(画像E サブネット情報)
VPCid,CidrBlock,Nameを出力させます。

aws ec2 describe-subnets --query "Subnets[].[VpcId,CidrBlock,Tags[0].Value]" \
--out table

              図F サブネットのCIDRとVPCID

サブネットのCIDRとVPCIDが出力されます。

6.VPCとサブネットの情報を出力しよう

VPCの情報出力では、サブネットの情報は出力されないので、サブネット情報
を出力するコマンドとVPC-Idをfilterに指定してサブネット情報を出力しましょう。

aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=vpc-0e628XXXXXXXXYYYY" \
--query "Subnets[].{CIDR:CidrBlock,VpcId:VpcId,Name:Tags[?Key=='Name'].Value}" \
--out table

         図G サブネットとVPCID

VPCIDをフィルターして、このVPCにどんなサブネットがあるのかがわかります。

7.VPC CIDRとサブネット CIDRを出力しよう

サブネットの情報(CIDR)とVPCのCIDRを出力したい。これにはちょっと工夫が必要です。
コマンド一発というわけにはいかないのです。他に方法があるかもしれません。

aws ec2 describe-subnets --query "sort_by(Subnets[].{VpcId:VpcId,SubnetCIDR:Cidr
Block,AZ:AvailabilityZone},&VpcId)" \
--out table > subnet.txt
aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,VpcId:VpcId}]" \
--out text > vpc.txt
./replace.py

more replace.py
#!/usr/bin/env python3
import textfile
list_from_vpcs = []
with open('vpc.txt') as f:
	reader = csv.reader(f, delimiter='\t')
	list_from_vpcs = [rows for rows in reader]
for vpc in list_from_vpcs:
	textfile.replace('subnet.txt',vpc[1],vpc[0])
textfile.replace('subnet.txt','VpcId','VpcCIDR')
            図H サブネットCIDRとVPCCIDR

先ず,サブネットの情報をサブネットのCIDRでソートしてsubnet.txtに出力させます。次に,vpc.txtにvpc情報を出力させます。そして、subnet.txtのファイルの中身を、vpc.txtのvpcIDと一致する項目をCIDRに置き換えています。また、表示名をVpcIdからVpcCIDRに変更しています。これで、サブネットとVPCの関係がわかります。

8.InternetGWの情報を出力しよう

InternetGWの情報を必要な項目のみ出力してみましょう

aws ec2 describe-internet-gateways \
--query "InternetGateways[].[{VPC_id:Attachments[0].VpcId,Name:Tags[0].Value}]" --out table

オプションのqueryを使用することで絞り込みができます。
上記の例は、InternetGatewaysがトップレベル次にVpcIdとTagsのValue情報を出力させています


            図J InternetGateway情報

次回はInternetGWとVPC,サブネットCIDRを一緒に出力させる方法を書きます


Linux版その1 EC2の情報出力 https://opt-p.co.jp/blog/aws/post-1633/

Linux版その2 RDSの情報出力 https://opt-p.co.jp/blog/aws/post-1718/

Linux版その4 色々な情報出力 https://opt-p.co.jp/blog/aws/post-2421/