Upload
takahiro-yonei
View
399
Download
0
Embed Size (px)
Citation preview
#salesforcedevjp
カスタムメタデータを受託の案件に使ってみた話
@yonet77TAOドライブ株式会社
#salesforcedevjp
⾃⼰紹介
2016/02/232
#salesforcedevjp
アジェンダ
2016/02/233
1. カスタムメタデータとは?
2. カスタムメタデータを使ったデータ移⾏プログラムについて
3. カスタムメタデータを使ったメリットとは?
4. 最後に
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/234
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/235
カスタムメタデータは• カスタマイズ可能• リリース可能• パッケージ化可能• アップグレード可能
なアプリケーションメタデータです 〜ヘルプより抜粋〜
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/236
これまで...ü データの型(カスタムオブジェクトやカスタムフィールドなど)は
パッケージに含めることはできるü ただし、定義した型に合わせたデータ(レコード)はパッケージ化できない
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/237
カスタムメタデータによって...ü データの型(オブジェクトやカスタムフィールドなど)と、そのデータ(レコー
ド)をまとめてパッケージ(or 変更セット)に含めて配布できる
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/238
(サンプル)カスタムメタデータ型の定義※カスタムオブジェクトと割と似ている
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/239
(サンプル)カスタムメタデータ
#salesforcedevjp
1. カスタムメタデータとは?
2016/02/2310
(サンプル)変更セットへのカスタムメタデータの追加
#salesforcedevjp
2. カスタムメタデータを使ったデータ移⾏プログラムについて
2016/02/2311
#salesforcedevjp
2. カスタムメタデータを使った移⾏プログラム(1)
2016/02/2312
旧システムSalesforce
Logデータ
本番データ
1. 旧システムのデータをCSVデータとして抽出する2. CSVデータをSalesforce側に⽤意したLogデータオブジェクトに格納する3. Logデータを本番データ⽤オブジェクトにデータを変換する
Apex
※エラーがあれば戻す
① ② ③
#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データと、カスタムメタデータから本番データを⽣成する
#salesforcedevjp
3. カスタムメタデータを使ったメリットとは?
2016/02/2314
#salesforcedevjp
3. カスタムメタデータを使ったメリットとは?
2016/02/2315
n Logデータ -> 本番データ のマッピングを宣⾔的に定義できるü マッピング定義と、それを処理する部分を分離できる
ü マッピング定義は⾮エンジニアに任せることで分業する
n Sandbox -> 運⽤環境 に変更セットで送信できるü ⼿で運⽤環境にコピーするのは⾮効率かつトラブルの温床となる
ü ⾮エンジニアでも運⽤環境に反映できるようにする
n クエリしてもガバナ制限のリミットにカウントされないü ⼼理的に安⼼する
#salesforcedevjp
4. 最後に
2016/02/2316
#salesforcedevjp
4. 最後に
2016/02/2317
n アプリケーションの「設定」と「コード」を分離する、という点でカスタムメタデータは有⽤ü リスト型のカスタム設定でも似たようなことはできるが、変更セットに追加
してデプロイ可能という点ではカスタムメタデータの⽅が有利と考える。
n 今回は受託案件での事例ではあるが、パッケージ開発でも⾮常に有⽤(きっと)ü アプリケーション設定に関するデータをカスタム設定やカスタムオブジェク
トに格納している場合には、カスタムメタデータに置き換えてパッケージで配布すると、アプリケーションの配布にかかる⼿間を軽減できる。
n Herokuが提唱している「The Twelve-Factor App」の「Ⅲ.設定(設定を環境変数に格納する)」も併せて参考に
参考URL: http://12factor.net/config
#salesforcedevjp
END
2016/02/2318