2024.09.03

初めてのカスタムメタデータ型

Just a moment... (33032)

はじめに

みなさんは「カスタムメタデータ型」、使ったことはありますか?
名前は知っているけど使ったことがない、どういった機能かも知らないよという人もいるかもしれません。

「カスタムメタデータ型」と言われただけでは想像しづらいですよね。
調べてもみてもイメージがしにくいため、結局何のことか分からないまま過ごしている人が多いのではないでしょうか。

今回はそんなカスタムメタデータ型の基本的な機能と活用例についてご紹介します。

カスタムメタデータ型とは?

カスタムメタデータ型は、公式ヘルプでは以下のように記載されています。
カスタマイズ可能、リリース可能、パッケージ化可能、アップグレード可能なアプリケーションメタデータです。最初に、アプリケーションメタデータの形式を定義するカスタムメタデータ型を作成します。
この情報ではまだ想像が難しいかもしれません。

ざっくりいうと、カスタムメタデータは小さなカスタムオブジェクトというイメージです。
宣言的に作成することができ、カスタムオブジェクトと同じように項目を作り、レコードを作ることができます。

実際にカスタムメタデータでできることを次項で確認してイメージを掴んでいきましょう!

カスタムメタデータの基本的な機能

レコードのリリースが可能

Sandboxで作成したカスタムメタデータ型のレコードは、変更セットやメタデータAPIを使用してリリースすることが可能です。

通常、レコードを別の環境へ移したい場合はデータローダやデータインポートウィザードを使う必要がありますが、カスタムメタデータ型のレコードは他のメタデータと同じようにリリースできます。

国のマスタや部署のマスタなど、頻繁には変更しないものの年に数回変更があるようなデータを保存するのに適しています。

これが大きな特徴で、カスタムメタデータ型を使用する最も大きな理由の1つです。

SOQLで参照可能

カスタムメタデータ型はSOQLを使用して参照することが可能です。
Apexを使用してアクセスすることが可能なので、他のカスタムオブジェクトと同じようなイメージでカスタムメタデータ型の値を使うことができます。

また、Apexのカスタムメタデータ型はガバナ制限の対象外です。
具体的にいうと、1トランザクションあたり100件のSOQLクエリ合計数には含まれません。

こちらもよく使う使い方の1つですね。

Apexガバナ制限について以下の公式ヘルプをご参照ください。

その他できること

  • 数式項目からの参照
  • フロー内のデータ操作コンポーネントや数式での参照
  • Salesforce CLIを使用してカスタムメタデータ型の操作
上記の他にも多くの機能があり、さまざまなシーンで活用することができます。
次項からは以下のシナリオに沿って、カスタムメタデータ型をフローで使用してどのように活用できるかを確認していきましょう!

カスタムメタデータ×フローの活用例

0_シナリオ

取引先(Account)に紐づくカスタムオブジェクト「販売商品(Products)」で販売した商品を管理します。
販売商品では商品の名前、値段、税額、その他商品情報を管理します。
販売商品の税額を算出する際に、カスタムメタデータ型とフローを組み合わせて計算ロジックを作成します。

1_フローで使用するオブジェクト、項目の作成

取引先に取引先の国名を入力するカスタム項目「国名」を作成します。

次に、取引先に参照関係を持つカスタムオブジェクト「販売商品(Products)」を作成し必要な項目を作成します。

2_カスタムメタデータ型の作成

設定画面から「カスタムメタデータ型」と検索し、”新規カスタムメタデータ型作成”ボタンから以下のように作成していきます。
表示のラジオボタンの設定は、表示権限を設定することができます。

表示ラベル:消費税
オブジェクト名:ConsumptionTax
説明:各国の消費税を管理するカスタムメタデータ型
表示:すべての Apex コードと API でこの種別を使用でき、[設定] で参照可能です。

次にカスタム項目を以下の画像のように作成します。
カスタムメタデータ型の中で消費税に関する情報を保存する項目を作成します。

カスタム項目を作成後、画面上部の「Manage null」ボタンからレコードを作成します。
今回は日本の消費税率10%のレコード、日本の低減税率の8%レコード、フランスの消費税率のレコード、台湾の消費税率のレコードの合計4レコードを作成します。
※「低減税率は飲食物、新聞といった括りでは対応できないのでは」という突っ込みが聞こえてきそうですが、今回はあくまで入力参考例としてお許しください。

3_フローの作成

カスタムメタデータ型の作成が完了したら、次は実際に税額を計算するフローを作成していきます。

Flow Builderを起動して、レコードトリガーフローを選択し、開始条件は画像のように設定します。

最初にトリガーされたレコードの情報を元に条件分岐を行い、対象の税率を決定します。
販売商品レコードの取引先の国名を条件に設定します。
低減税率の対象のカテゴリの判定もここで行います。

次に、分岐結果に対応する消費税率のカスタムメタデータ型を取得します。

カスタムメタデータ型も、他のカスタムオブジェクトと同じようにレコード取得のコンポーネントでレコードを取得できます。
今回のレコード取得の条件は、DeveloperNameで指定します。
取得したレコードは、レコード変数「ConsumptionTax」に保存します。

最後にトリガーされたレコードの税額項目を更新します。
トリガーレコードの税額には数式で計算された結果を代入します。
計算式は「トリガーレコードの値段×取得した税率」です。

保存をしたらフローの作成は終了です。
有効化を忘れずに行いましょう!

4_フローの動作を確認

それでは、フローの動作を確認していきましょう。

取引先に以下のレコードを作ります。
①取引先名:株式会社Tokyo
 国名:日本
②取引先名:株式会社Paris
 国名:フランス
③取引先名:株式会社Taipei
 国名:台湾

次に、上記で作成した取引先に紐づく販売商品に以下のレコードを作ります。
①取引先:株式会社Tokyo
 販売商品名:洗剤A
 値段:2000
 カテゴリ:日用品
②取引先:株式会社Tokyo
 販売商品名:冷凍ピザ
 値段:1000
 カテゴリ:飲食物
③取引先:株式会社Paris
 販売商品名:扇風機A
 値段:5000
 カテゴリ:電化製品
④取引先:株式会社Taipei
 販売商品名:洋服A
 値段:3000
 カテゴリ:服飾品
 
販売商品レコードを作成したら、税額項目を確認していきましょう。
2_で設定した税額で計算されていれば成功です!
販売商品①:洗剤A
日本の税率10%で計算

販売商品②:冷凍ピザ
日本の税率(低減税率)8%で計算

販売商品③:扇風機A
フランスの税率20%で計算

販売商品③:洋服A
台湾の税率5%で計算

期待通りの結果になっていることが確認できました。

では、フランスの税率が15%に減税になった場合どうなるかを見ていきましょう。
消費税カスタムメタデータ型のフランスのレコードの税率を20→15に変更します。

税率の変更後、販売商品レコードを以下のように作成して、税額がどうなるかを確認します。
①取引先:株式会社Paris
 販売商品名:扇風機B
 値段:5000
 カテゴリ:電化製品

販売商品①:扇風機B
フランスの変更後の税率15%で計算

期待通りに15%での計算結果を得ることができました。

カスタムメタデータ型の活用方法の1つとして、ロジックに変更を加えること無く計算や自動化の結果を変えられることがお分かりいただけたでしょうか。

おわりに

カスタムメタデータ型の基本的な機能と活用例をご紹介させていただきましたが、いかがだったでしょうか。

今回の記事を参考にみなさんにカスタムメタデータ型をまず知っていただき、お仕事で活用できるSalesforceの機能の1つとなれば幸いです。

TerraSkyBaseでは他にもカスタムメタデータ型に関する記事を公開していますので、そちらもご一読ください!
また、リリース管理ツール「Flosum」を利用すれば、カスタムメタデータレコードの登録がスムーズに行えます。
Flosumの機能については、Flosumのwebサイトをご覧ください。
https://www.terrasky.co.jp/flosum/

最後までご覧いただきありがとうございました!

参考

64 件
     
  • banner
  • banner

関連する記事