カスタムメタデータ型をフローで活用してみよう
はじめに
この記事では、Salesforceの「カスタムメタデータ型」という機能とその使い方の一例について解説します。
カスタムメタデータ・・・知っていたら大変便利な機能ですが、あまり馴染みのない機能でもあると思うので、カスタムメタデータとは? から こんな使い方ができる! を紹介をしていきます。
カスタムメタデータ型とは?
公式のHelp記事にはこう書かれています。
カスタムメタデータは、カスタマイズ可能、リリース可能、パッケージ化可能、アップグレード可能な
アプリケーションメタデータです。最初に、アプリケーションメタデータの形式を定義するカスタムメ
タデータ型を作成します。次に、その型のメタデータに基づいて動作を決める再利用可能な機能を作成
します。
やはり翻訳もあり、業界用語だらけで難しく感じます。。
小さなカスタムオブジェクト などと称されることが多い機能ですが
スーパー要約(意訳)すると 頻繁には変更されない情報をまとめて管理できる特別な仕組み です!
フローでの応用例
果物オブジェクト(カスタムオブジェクト)で、りんごを選択した場合、フルーツ名(英語表記) に ★apple★と自動入力したい。
カスタムメタデータ型化前のフローイメージ
項目の値の数だけ要素が必要・・・
ちなみに、フローの判定要素ですが、左から順に処理を通ります。
例えば上記のフローを有効化した状態で、フルーツ名が「ぶどう」のレコードが作成された場合、
「りんご」じゃない、「バナナ」じゃない、「いちご」じゃない、「ぶどう」だ!!という流れ判定されています。そのため、今後フルーツが追加されるたびに処理が増えてしまいます。分岐が増えることで処理中の負荷が高くなりエラーが発生するリスクも高くなってしまいます。
フルーツが追加されるたびに判定要素にもフルーツを追加するというメンテナンスをしないといけない
もちろん更新要素もフルーツの種類分追加が必要
セットで管理したいものの組み合わせをカスタムメタデータ内のレコードで設定
フルーツの種類(選択リスト)と英語表記(テキスト)の組み合わせは固定されており、今後、果物オブジェクトには新しいフルーツが追加される可能性があるため、カスタムメタデータを使用してフルーツと英語表記の組み合わせを管理します。
この場合、果物オブジェクトのフルーツという選択リスト項目に「マンゴー」という値が新たに追加されたら、カスタムメタデータにも表示ラベル「マンゴー」英語表記「★mango★」の追加が必要です
カスタムメタデータ型化後のフローイメージ
無駄な処理を大幅にカット
トリガレコードのフルーツの値と表示ラベルが一致するカスタムメタデータレコードを取得します。
このとき、表示ラベル(Label) と 表示ラベル(MasterLabel) がありますが、表示ラベル(MasterLabel) を選択します。
LabelとMasterlabelの違い
例えば、カスタムメタデータレコードの表示ラベルが「りんご」で、API名が「Apple」で作成した場合、MasterLabelにはユーザーが入力したテキストが格納されます。レコード作成と同時にシステムが自動でLabelにAPI名を格納されています。
MasterLabel ”りんご” ユーザーが入力した表示ラベルの値
Label ”Apple” ユーザーが入力したAPI名の値をシステムが自動で格納
そのため、フローで「りんご」を指定する際はMasterLabelを使用しましょう!
※DataLoaderなどでCSVを使用してカスタムメタデータレコードを作成する際は、SalesforceのメタデータAPIの仕様により、MasterLabelではなくLabelが必須です。また、インポート時に設定するLabelの値は、実際にはMasterLabelとして保存されます。
取得したメタデータレコードの「英語表記」の値でトリガレコードの「フルーツ(英語)(Fruit_English__c)」を更新するだけで要素がたくさんあった最初のフローと同じ処理ができます!
このようにカスタムメタデータ型を使用すると、毎度フローの判定・更新要素を追加せずともカスタムメタデータ型にレコードを追加するだけでフローの処理の負荷を上げることなく同様の処理が可能になります。
さいごに
今回はカスタムメタデータ型をフローで使用する例を簡単なシナリオに基づいて紹介しましたが、具体的なユースケースも簡単にご紹介します!
最初にも記載しましたが、カスタムメタデータ型とは頻繁には変更されない情報をまとめて管理できる特別な仕組みですので、カスタムオブジェクトを作成するまでもないな・・・といったものを管理できます。
例えば 税率、手数料率などを商品とセットで管理したり、部署の連絡先情報や業務プロセスのルールなどをカスタムメタデータ型で管理することで、変更があった際に一元的に更新でき、フローでも活用できます。
汎用性の高い「カスタムメタデータ型」をぜひ活用してみましょう!
Discussion