18
#salesforcedevjp カスタムメタデータを受託の案件に 使ってみた話 @yonet77 TAOドライブ株式会社

カスタムメタデータを受託の案件で使ってみた話

Embed Size (px)

Citation preview

Page 1: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

カスタムメタデータを受託の案件に使ってみた話

@yonet77TAOドライブ株式会社

Page 2: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

⾃⼰紹介

2016/02/232

Page 3: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

アジェンダ

2016/02/233

1.  カスタムメタデータとは?

2.  カスタムメタデータを使ったデータ移⾏プログラムについて

3.  カスタムメタデータを使ったメリットとは?

4.  最後に

Page 4: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1.  カスタムメタデータとは?

2016/02/234

Page 5: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/235

カスタムメタデータは•  カスタマイズ可能•  リリース可能•  パッケージ化可能•  アップグレード可能

なアプリケーションメタデータです 〜ヘルプより抜粋〜

Page 6: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/236

これまで...ü  データの型(カスタムオブジェクトやカスタムフィールドなど)は

パッケージに含めることはできるü  ただし、定義した型に合わせたデータ(レコード)はパッケージ化できない

Page 7: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/237

カスタムメタデータによって...ü  データの型(オブジェクトやカスタムフィールドなど)と、そのデータ(レコー

ド)をまとめてパッケージ(or 変更セット)に含めて配布できる

Page 8: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/238

(サンプル)カスタムメタデータ型の定義※カスタムオブジェクトと割と似ている

Page 9: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/239

(サンプル)カスタムメタデータ

Page 10: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

1. カスタムメタデータとは?

2016/02/2310

(サンプル)変更セットへのカスタムメタデータの追加

Page 11: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

2.  カスタムメタデータを使ったデータ移⾏プログラムについて

2016/02/2311

Page 12: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

2. カスタムメタデータを使った移⾏プログラム(1)

2016/02/2312

旧システムSalesforce

Logデータ

本番データ

1.  旧システムのデータをCSVデータとして抽出する2.  CSVデータをSalesforce側に⽤意したLogデータオブジェクトに格納する3.  Logデータを本番データ⽤オブジェクトにデータを変換する

Apex

※エラーがあれば戻す

① ② ③

Page 13: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

2. カスタムメタデータを使った移⾏プログラム(2)

2016/02/2313

Logデータ 本番

データ

カスタムメタデータ

From Toaaa__c 1aaa__cbbb__c 2bbb__cccc__c 3ccc__c

•  カスタムメタデータにLogデータ側のフィールドAPIと、本番データ側のフィールドAPIのマッピングを定義する

Logデータ側のフィールドAPI

本番データ側のフィールドAPI

aaa__c bbb__c ccc__c ……XXX YYY ZZZ ……

1aaa__c 3ccc__c 2bbb__c ……XXX ZZZ YYY ……

Logデータ

本番データ

Apex

•  Logデータと、カスタムメタデータから本番データを⽣成する

Page 14: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

3.  カスタムメタデータを使ったメリットとは?

2016/02/2314

Page 15: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

3. カスタムメタデータを使ったメリットとは?

2016/02/2315

n  Logデータ -> 本番データ のマッピングを宣⾔的に定義できるü  マッピング定義と、それを処理する部分を分離できる

ü  マッピング定義は⾮エンジニアに任せることで分業する

n  Sandbox -> 運⽤環境 に変更セットで送信できるü  ⼿で運⽤環境にコピーするのは⾮効率かつトラブルの温床となる

ü  ⾮エンジニアでも運⽤環境に反映できるようにする

n  クエリしてもガバナ制限のリミットにカウントされないü  ⼼理的に安⼼する

Page 16: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

4.  最後に

2016/02/2316

Page 17: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

4. 最後に

2016/02/2317

n  アプリケーションの「設定」と「コード」を分離する、という点でカスタムメタデータは有⽤ü  リスト型のカスタム設定でも似たようなことはできるが、変更セットに追加

してデプロイ可能という点ではカスタムメタデータの⽅が有利と考える。

n  今回は受託案件での事例ではあるが、パッケージ開発でも⾮常に有⽤(きっと)ü  アプリケーション設定に関するデータをカスタム設定やカスタムオブジェク

トに格納している場合には、カスタムメタデータに置き換えてパッケージで配布すると、アプリケーションの配布にかかる⼿間を軽減できる。

n  Herokuが提唱している「The Twelve-Factor App」の「Ⅲ.設定(設定を環境変数に格納する)」も併せて参考に

参考URL: http://12factor.net/config

Page 18: カスタムメタデータを受託の案件で使ってみた話

#salesforcedevjp

END

2016/02/2318