SlideShare a Scribd company logo
#salesforcedevjp
Salesforce DUG [Tokyo]
Meetup #9
(リリースノートでも読んでみよう)
TAOドライブ株式会社
Takahiro Yonei (@yonet77)
#salesforcedevjp
Agenda
n API
1.  REST API
2.  Metadata API
#salesforcedevjp
n 新しく追加されたリソース
ü  Batch
ü  SObject Tree
API
- 1. REST API
クライアントとサーバ間の往復回数を最小限に
抑えることでアプリケーションの
パフォーマンスを高める
(リリースノートより抜粋)
#salesforcedevjp
n Batch
API
- 1. REST API
URI : /v34.0/composite/batch
{
"batchRequests" : [{
"method" : "PATCH",
"url" : "v34.0/sobjects/account/001D000000K0fXOIAZ",
"richInput" : {"Name" : "AccountNewName"}
},{
"method" : "GET",
"url" : "v34.0/sobjects/account/001D000000K0fXOIAZ"
}]
}
request body :
複数の
要求を
まとめて
送信
※FacebookのBatch Requestsに類似した形式…
https://developers.facebook.com/docs/graph-api/making-multiple-requests
#salesforcedevjp
n Batch
API
- 1. REST API
{
"hasErrors" : false,
"results" : [{
"statusCode" : 204,
"result" : null
},{
"statusCode" : 200,
"result" : { (Account attributes) }
}]
}
response body :
要求の順番で結果が得られる
#salesforcedevjp
n Batch (気をつけるべき特徴)
ü 一度に送信できる要求は、最大25件
ü  25件を超えるとエラーが戻ってくる
ü API消費数は、要求数 + 1
API
- 1. REST API
result : [ {
"errorCode" : "OPERATION_TOO_LARGE",
"message" : "Only 25 requests are allowed in a single batch operation"
} ]
#salesforcedevjp
n SObject Tree
ü  (パイロットプログラムで使用可能)
ü  SObject Treeリソースを使用すると、ルートレコード
タイプを共有する複数のsObjectツリーを作成できる。
ü  sObjectツリーは、同じルートレコードを持つネストさ
れた親­子レコードのコレクションである。
→ 親子関係のレコードを一度に作れる!
ü  1つの要求に最大で200件のレコードを格納できる。
API
- 1. REST API
#salesforcedevjp
n SObject Tree
API
- 1. REST API
{
"records" :[{
"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount",
"Contacts" : {
"records" : [{
"attributes" : {"type" : "Contact", "referenceId" : "ref2"},
"lastname" : "Smith",
},{
"attributes" : {"type" : "Contact", "referenceId" : "ref3"},
"lastname" : "Evans",
}]
}
},{
"attributes" : {"type" : "Account", "referenceId" : "ref4"},
"name" : "SampleAccount2",
}]
}
レコードの種類とレコードの参照Idを指定
#salesforcedevjp
n 更新されたメタデータコール
ü  deploy()
→ 新しいリリースオプション testLevel が追加
→ deploy() コールで実行するテストを制御
Ø  RunLocalTests
-  インストール済の管理パッケージから発生
したテストを除き、組織のすべてのテスト
を実行する
API
- 2. Metadata API
パッケージをカスタマイズする場合には重宝するリリースオプション!
#salesforcedevjp
n 新しいメタデータ型
ü  CustomMetadata
→  プラットフォーム開発者は一般に、カスタム設定やカスタムオ
ブジェクトを使用して設定を定義し、再利用可能なアプリケー
ションのコンポーネントや機能を作成します。
→  ただし、これらのエンティティのレコードがメタデータではな
くデータのため、これらの型を管理しやすい方法でパッケージ
化、リリース、アップグレード、カスタマイズすることができ
ません。
→  カスタムメタデータ型を利用すると、メタデータの独自の型で
定義され駆動するアプリケーションを構築できます。
API
- 2. Metadata API
(リリースノートより抜粋)
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
従来:
­  データの型(カスタムオブジェクトやカスタムフィールドなど)はパッケー
ジに含めることができた
­  定義した型に合わせたデータ(レコード)は、パッケージに含められない..
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
これから:
­  データの型(カスタムオブジェクトやカスタムフィールドなど)と、その
データ(レコード)をまとめてパッケージに含めて配布することができる
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
【参考】Custom Settings との比較
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
詳細は以下のブログで…
- Introducing custom metadata types:
the app configuration engine for Force.com
https://developer.salesforce.com/blogs/engineering/2015/04/custom-metadata-types-ga.html
- How to use custom metadata types
to save years of development on app configurations
https://developer.salesforce.com/blogs/engineering/2015/05/how-to-use-custom-metadata-types.html
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
【手順】
1.  カスタムメタデータ型を定義する
•  カスタムメタデータ用のxmlファイルを作成する
•  カスタムオブジェクトの定義とほぼ類似
2.  カスタムメタデータを用意する
•  カスタムメタデータ型に合わせたデータのxmlファイルを作成する
3.  Salesforce環境にデプロイする
•  移行ツール(ant-salesforce.jar)を使ってデプロイする
サンプルファイル等
https://gist.github.com/takahiro-yonei/54a6e4f32ad481a9d91b
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
(サンプル)カスタムメタデータの定義
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
(サンプル)SOQLで参照可能 ※編集不可…
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata
(サンプル)パッケージに、カスタムメタデータとメタデータレコードを追加
#salesforcedevjp
API
- 2. Metadata API
n Custom Metadata(推奨する用法)
l  インストール先の環境でも変更されたくない設定
→ Custom Metadataを使って定義&管理パッケージで配布する
ü  データをパッケージに含めて配布できる
­  インストールスクリプトとか面倒な処理を省ける
­  パッケージアップグレードでのみ変更できる
ü  カスタム設定と違って、メタデータなのでApexから変更できない
ü  Custom Metadataを操作するためのUIがない
Ø  自作してるヒトもいる -> https://github.com/jbpringuey/SFDCConfig
l  インストール先の環境で変更してもよい設定
→ Custom Metadataを使って定義&非管理パッケージで配布する
ü  インストール先の環境で、変更できる(らしい)
#salesforcedevjp
END
Thank you !!

More Related Content

PPTX
メタプログラミングRuby勉強会#7(fluentプラグイン)
PPTX
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
PDF
Pycon2014 django performance
PDF
Force.com Developer Group Japan Meetup#1
PDF
Cloudforce2012 LT
PDF
DCMax CrowdHackathonチャレンジ②
PDF
Visualforceをあきらめない
PDF
カスタムメタデータを受託の案件で使ってみた話
メタプログラミングRuby勉強会#7(fluentプラグイン)
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Pycon2014 django performance
Force.com Developer Group Japan Meetup#1
Cloudforce2012 LT
DCMax CrowdHackathonチャレンジ②
Visualforceをあきらめない
カスタムメタデータを受託の案件で使ってみた話

Similar to Salesforce DUG Japan Meetup#9(REST API, Metadata API etc) (12)

PDF
Spring12新機能webinar
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PPTX
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
PDF
Streaming API で実現する クラウド ⇔ イントラ連携
PDF
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
PPTX
Spring'17リリースノート輪読会 API By フレクト
PPTX
Salesforceのソースエンドポイントとしての利用
PDF
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
PDF
Spring '15 開発者向け新機能Webinar
PDF
Summer '14開発者向け新機能Webinar
PDF
Spring16 リリース開発者向け新機能Webセミナー
PDF
SDUG Tokyo Meetup#7 About ReleaseNote
Spring12新機能webinar
Microsoft Graph APIを活用した社内アプリケーション開発
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
Streaming API で実現する クラウド ⇔ イントラ連携
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Spring'17リリースノート輪読会 API By フレクト
Salesforceのソースエンドポイントとしての利用
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
Spring '15 開発者向け新機能Webinar
Summer '14開発者向け新機能Webinar
Spring16 リリース開発者向け新機能Webセミナー
SDUG Tokyo Meetup#7 About ReleaseNote
Ad

More from Takahiro Yonei (9)

PDF
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
PDF
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
PPTX
EC-CubeをHerokuでも
PPTX
ApexトリガのBest Practiceを目指して
PPTX
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
PPTX
Meetup #15 : リリースノート輪読 / Apexまわり
PDF
Salesforce dug tokyo_meetup#8_about_releasenote
PDF
Salesforce DUG Tokyo meetup#5
PDF
Force.com Developer Group Japan Meetup#2
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
EC-CubeをHerokuでも
ApexトリガのBest Practiceを目指して
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Meetup #15 : リリースノート輪読 / Apexまわり
Salesforce dug tokyo_meetup#8_about_releasenote
Salesforce DUG Tokyo meetup#5
Force.com Developer Group Japan Meetup#2
Ad

Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)