Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
API spring’17
By flect
サクッと自己紹介:フレクトから来ました3人組です!ヤー
KANAMORI NAKAYAMA SAITO
・Chatter API
・Chatter ストリーミング
・非同期オブジェクト
・Rest API Composite
・SOSL WIT...
Chatter REST API
What's chatter REST API
Chatter REST APIとは
• 特にモバイルアプリでSaleseforceデータを利用するためのREST API
• FacebookやTwitterのREST APIに近い位置づけ
• Chatter以外(ファイル,通知,Data....
Chatter REST API <> REST API
• Webサイト、モバイルデバイス用にデータが構造化される
• ユーザーのタイムゾーンと言語にローカライズされる
• レート制限の単位が違う
Chatter REST API : ユーザ...
データの構造化
{
"aboutMe" : "自己紹介",
"additionalLabel" : null,
"address" : {
"city" : "Fujimino",
"country" : "JP"
…………
},
"banne...
Chatter REST APIとREST APIの使い分け
Chatter REST API
モバイルアプリケーションなどクライアントアプリ向け
例)スマホ向けのオリジナルChatterクライアントアプリ作成
REST API
SFとその他の...
Chatter REST API
Spring'17 Overview
Chatter REST API Spring'17 概観①
• 活動アラーム
• 非同期クエリ(Pilot)
• Chatter
• 絵文字
• ストリーム (new!!)
• Chatterフィード
• いいね!
• 投稿の共有 (new!...
Chatter REST API Spring'17 概観②
• コンテンツワークスペース:ユーザ権限の取得
• メール差し込み項目サービス
• ファイル
• 複数の組織、コミュニティ、コンテンツワークスペースと共有
• ファイル画像の情報取得...
Chatter REST API Spring‘17 概観:感想
• 新しい機能は最初からAPIを用意しているものが結構ある
• Chatterのストリーム、投稿の共有、ダイレクトメッセージ
• キャプチャした活動の共有 など
• 既存改善系は...
Chatter REST API Spring'17 概観
• 活動アラーム
• 非同期クエリ(Pilot)
• Chatter
• 絵文字
• ストリーム (new!!)
• Chatterフィード
• いいね!
• 投稿の共有 (new!!...
Chatter REST API
Async Query(Pilot)
非同期クエリ(Pilot):Spring’17での追加内容
• Boolean 項目によって BigObjects を絞り込む
• MIN() と MAX() を使用してデータをクエリする
• CALENDAR_YEAR() と CALENDA...
非同期クエリ(Pilot):Spring’17での追加内容
• Boolean 項目によって BigObjects を絞り込む
• MIN() と MAX() を使用してデータをクエリする
• CALENDAR_YEAR() と CALENDA...
非同期クエリ(Pilot)とは
• Winter’16で追加
• sObject,BigObjects,外部オブジェクトなどのデータにSOQLクエリをバックグラ
ウンドで実行する
• 結果は呼び出し側で選択したオブジェクトに格納
スライド引用元...
BigObjects
• Summer’15で追加
• Apache HbaseによるNOSQL データストア
• Apache Phoenix によってSQLで利用可能に(ユーザーが使うのはSOQL?)
外部のデータなどをNOSQLで取り込み...
Chatter REST API
Chatter Stream
Chatter ストリーム: Spring’17での追加内容
• ストリームフィードへの URL の取得
• ストリームのすべてのフィード要素の取得
• コンテキストユーザのストリームの取得
• ストリームの作成
• ストリームに関する情報の取...
ストリームAPI??
ストリームAPI??
Chatter ストリーム
Chatter ストリームを使用したカスタムフィードの作成
• 最大25個のエンティティをまとめてストリーム(情報のグループ)を
作れる
• ストリームは1人最大5個まで
• 作成、編集、削除は自由に可能
• フォロ...
Chatter ストリーム
私の上位の関心事
• デフォルトのストリーム
• Einstein AI で各ユーザ向けに役立つと思われるフィード
を表示
• 5つのストリームのうちの1つとしてカウント
• 削除も可能
SOSL
WITH HIGHLIGHT
SOSL : WITH HIGHLIGHT
• WITH HIGHLIGHT 句を使用した検索結果での
一致する語の強調表示
Salesforce Object Search Languageとは・・・
・1回のクエリですべてのオブジェクトを検...
SOSL : そもそもSOSLの使い方とは
<Apex>
FIND ’Salesforce‘ IN ALL FIELDS RETURNING Account(Name),Contact(FirstName,LastName,Department...
SOSL : WITH HIGHLIGHTの使い方
(例)
ハイライトをつけて、Salesforceという語を含む
取引先(Account)と取引先責任者(Contact)を検索します。
FIND {Salesforce} IN ALL FIE...
<mark>タグで
囲ってくれます
SOSL : 開発者コンソールで実行
最後にWITH
HIGHLIGHTをつける
FirstNameが
‘Salesforce’なのに、
ハイライトされないのはなぜ!?
ハイライトの対象は、テキスト項目のみ。
取引先責任者の姓名は
複合項目だからでないんだろうなー。
SOSL : リファレンスを読む
SOSL : WITH HIGHLIGHTまとめ
• ハイライトは別項目に<mark></mark>付きで返ってくる
• サポートしてるのは、REST APIかSOAP API
• 1回のクエリでハイライトは25レコードまで
• 対応している項...
REST API
Composite
REST API : Composite
• Composite リソースを使用した複数の要求の
一度での実行: 正式リリース
REST API : Compositeフレンドリーな説明文
モバイルアプリケーションを作成しているところを想像してみてください。
クライアントと Salesforce の間を往復する回数を減らすために、複数の
REST API 要求を 1 回...
REST API : Composite(リファレンスをチェックする)
リリースノートは、さらっとしか書いていないので
リファレンスをチェックしましょう!
https://developer.salesforce.com/docs/atlas....
REST API : BatchとCompositeの比較
Batch Composit <NEW!!>
サブ要求上限 25個 25個(内10個クエリ操作OK)
コミット単位 サブ要求単位 サブ要求か、全体のロールバック選べる、サブ要
求ごとに...
REST API : Compositeの使い方
(例)
取引先を作成し、
その取引先責任者を1回のRESTで作成する。
{
"compositeRequest" : [{
"method" : "POST”, "url" : "/servic...
取引先を作成してから、そのIDを
使って取引先責任者を作る
REST API : Composite(取引先と取引先責任者を作成)
Queryのselect2回
してみた
REST API : Composite(複数のクエリ実行)
REST API : Composite(エラー時のロールバック制御)
リクエストボディにAllOrNoneをtrueに指定することで、要求全体をロールバックすることができる。
allOrNone・・・ true の場合、Composite 要求全体がロールバックさ
れます。最上位レベルの要求は HTTP 200 を返し、各サブ要求の
応答が含まれます。
REST API : Composite(エラー時のロールバック...
REST API : Compositeまとめ
• サブ要求25個までOK
• サブ要求の結果を次のサブ要求で再利用できる
• トランザクションの制御ができる
• モバイルアプリケーションを作る際に、わざわざApexクラスでService
をク...
Bulk API
Bulk API Now Supports More Complex Queries
Introducing Bulk API 2.0 (Pilot)
BulkAPI Update
• 一括クエリ操作でのqueryAll,リレーションクエリが可能に
• Bulk API 2.0 (パイロット) の導入
BulkAPI Update
• 一括クエリ操作でのqueryAll,リレーションクエリが可能に
• Bulk API 2.0 (パイロット) の導入
BulkAPI:Update#1
Bulk API でより複雑なクエリをサポート
• 一括クエリ操作でのqueryAllが可能に
BulkAPIで使える演算子
OperationEnum 説明 DataLoader対応
query IsDeleted=Trueのレコードは含めない。 Export
queryall IsDeleted=Trueのレコードも含めてqueryで...
DataLoaderでの使い方
Setting
「Use Bulk API」=True
Export All を選択
コマンドラインでの使い方
ログイン
ジョブ作成
バッチ追加
ジョブ終了
バッチ状況の確認
バッチ結果の取得
BulkAPIでのqueryAll操作の使い所
• 論理削除済みレコード・アーカイブ済み活動のバックアップ?
• 特に「活動」レコードは大きくなりやすい(AppExchange等を入れると機能で活
動が生成され、数十万件になることがある)うえ、...
BulkAPI:Update#2
BulkAPI/一括クエリでの
SOQLリレーションが可能に(?)
• リレーションクエリはこういう感じの
SELECT Account.Name FROM Contact
SELECT Id, (SELECT...
• https://developer.salesforce.com/docs/atlas.ja-
jp.206.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_relationships_qu...
BulkAPI:Update#2
BulkAPI/一括クエリでの
SOQLリレーションが可能に(?)
• 試してみたけど、うまくいかず・・・
BulkAPI:Update#2
BulkAPI/一括クエリでの
SOQLリレーションが可能に(?)
• curlでBulkAPIを叩いてみたけど、やはり成功せず
• ↑のupdateが成功した方いたら教えてください
• https://rel...
Tooling API
New and Changed Objects
ToolingAPI Update
• ToolingAPIでコールできるオブジェクトに追加/変更あり
• 今回はToolingAPIが何かをご紹介します
ToolingAPIとは
• 開発者向けの他APIでは参照しにくい情報を公開しているAPI
• 例
• ApexClassMember
• FormulaFunction
• SandboxProcess
• GlobalValueSet
• ...
ToolingAPIとは
• curlしてみる
/services/data/v39.0/tooling/query
?q=SELECT+name,+label,+value+FROM+FormulaOperator+WHERE+durable...
ToolingAPIの使い所
• 使い所
SF組織のモニタリングするアプリ(管理者用)を作る、など
AppExで多数SF組織へアプリ提供している場合に便利かも
• 取れる情報
• クラスのカバレッジ
• Apex実行時のヒープ情報
• セキュリ...
今回ToolingAPIでの変更点
• 新しいオブジェクト
FormulaFunction
特定の用途に使用できる関数を取得します。たとえば、このオブジェクトを使
用して、フローまたは Visualforce ページで使用できる関数を検索します...
今回ToolingAPIでの変更点
変更されたオブジェクト
SecurityHealthCheck
次の項目が追加されました。
CustomBaselineID
項目の一意の識別子。設定のインポートとスコアの計算を行うために使用するベースライン...
Upcoming SlideShare
Loading in …5
×

Spring'17リリースノート輪読会 API By フレクト

8,917 views

Published on

2017年3月1日のSaleseforce Dvelopers Meetup #14( https://www.meetup.com/ja-JP/Tokyo-Salesforce-Developer-Group/events/237180781/ )
で「Spring'17輪読会」の一部として、APIをテーマに株式会社フレクトの有志3名が発表させていただきました。


Published in: Technology
  • Be the first to comment

Spring'17リリースノート輪読会 API By フレクト

  1. 1. API spring’17 By flect
  2. 2. サクッと自己紹介:フレクトから来ました3人組です!ヤー KANAMORI NAKAYAMA SAITO ・Chatter API ・Chatter ストリーミング ・非同期オブジェクト ・Rest API Composite ・SOSL WITH HIGHLIGHT ・Bulk API ・Tooling API
  3. 3. Chatter REST API What's chatter REST API
  4. 4. Chatter REST APIとは • 特にモバイルアプリでSaleseforceデータを利用するためのREST API • FacebookやTwitterのREST APIに近い位置づけ • Chatter以外(ファイル,通知,Data.comの購入など)にもアクセス可 Chatter REST API 開発者ガイド「 Chatter REST API の概要」より ・・・REST APIとは別物?
  5. 5. Chatter REST API <> REST API • Webサイト、モバイルデバイス用にデータが構造化される • ユーザーのタイムゾーンと言語にローカライズされる • レート制限の単位が違う Chatter REST API : ユーザ、アプリケーション、および時間ごと REST API : 組織ごと Chatter REST API 開発者ガイド「 Chatter REST API を使用するケースの決定」より
  6. 6. データの構造化 { "aboutMe" : "自己紹介", "additionalLabel" : null, "address" : { "city" : "Fujimino", "country" : "JP" ………… }, "bannerPhoto" : { "bannerPhotoUrl" : "https://… "bannerPhotoVersionId" : null, "chatterActivity" : { … } } Chatter REST API /services/data/v39.0/chatter/users/userId { "attributes" : { "type" : "User", "url" :"/services/data/v38.0/sobjects/User/xxx" }, "Id" : "00528000003heOUAAY", "Username" : "xxx@sample.com", "LastName" : "金森", "FirstName" : "政雄", "Name" : "金森 政雄”……… } REST API /services/data/v39.0/sobjects/user/userid 構造化されている filterGroup, exclude, includeで絞り込みも可能 属性が並んでいる
  7. 7. Chatter REST APIとREST APIの使い分け Chatter REST API モバイルアプリケーションなどクライアントアプリ向け 例)スマホ向けのオリジナルChatterクライアントアプリ作成 REST API SFとその他のシステムのシステム間連携向け 例)BtoC向けのWebサービスからSFのレコードを操作する
  8. 8. Chatter REST API Spring'17 Overview
  9. 9. Chatter REST API Spring'17 概観① • 活動アラーム • 非同期クエリ(Pilot) • Chatter • 絵文字 • ストリーム (new!!) • Chatterフィード • いいね! • 投稿の共有 (new!!) • ダイレクトメッセージ (new!!) • コミュニティの上位の未回答の質問のリスト (機能改善) • 確認待機中のフィード
  10. 10. Chatter REST API Spring'17 概観② • コンテンツワークスペース:ユーザ権限の取得 • メール差し込み項目サービス • ファイル • 複数の組織、コミュニティ、コンテンツワークスペースと共有 • ファイル画像の情報取得 • Files Connect • 外部ファイルURIからファイル参照を作成 • グループ • 管理トピック • キャプチャした活動(new!)の共有
  11. 11. Chatter REST API Spring‘17 概観:感想 • 新しい機能は最初からAPIを用意しているものが結構ある • Chatterのストリーム、投稿の共有、ダイレクトメッセージ • キャプチャした活動の共有 など • 既存改善系はより細かく、かつまとめて処理できるように • Chatterの絵文字、いいね!など • ファイルを複数の対象に共有できるように • 使えなくなっちゃうパラメータもある、、、 (ファイル共有のshareWithとかは残しても良かったんじゃ、、、)
  12. 12. Chatter REST API Spring'17 概観 • 活動アラーム • 非同期クエリ(Pilot) • Chatter • 絵文字 • ストリーム (new!!) • Chatterフィード • いいね! • 投稿の共有 (new!!) • ダイレクトメッセージ (new!!) • コミュニティの上位の未回答の質問のリスト (機能改善) • 確認待機中のフィード この二つに注目してみます!!
  13. 13. Chatter REST API Async Query(Pilot)
  14. 14. 非同期クエリ(Pilot):Spring’17での追加内容 • Boolean 項目によって BigObjects を絞り込む • MIN() と MAX() を使用してデータをクエリする • CALENDAR_YEAR() と CALENDAR_MONTH() を使用してデータをク エリする • 結果を対象の sObject に更新/挿入する
  15. 15. 非同期クエリ(Pilot):Spring’17での追加内容 • Boolean 項目によって BigObjects を絞り込む • MIN() と MAX() を使用してデータをクエリする • CALENDAR_YEAR() と CALENDAR_MONTH() を使用してデータをク エリする • 結果を対象の sObject に更新/挿入する
  16. 16. 非同期クエリ(Pilot)とは • Winter’16で追加 • sObject,BigObjects,外部オブジェクトなどのデータにSOQLクエリをバックグラ ウンドで実行する • 結果は呼び出し側で選択したオブジェクトに格納 スライド引用元:https://www.slideshare.net/developerforce/analyze-billions-of-records-on-salesforce-app-cloud-with-bigobject
  17. 17. BigObjects • Summer’15で追加 • Apache HbaseによるNOSQL データストア • Apache Phoenix によってSQLで利用可能に(ユーザーが使うのはSOQL?) 外部のデータなどをNOSQLで取り込み、 SF上で利用できるようにする スライド引用元:https://www.slideshare.net/developerforce/analyze-billions-of-records-on-salesforce-app-cloud-with-bigobject
  18. 18. Chatter REST API Chatter Stream
  19. 19. Chatter ストリーム: Spring’17での追加内容 • ストリームフィードへの URL の取得 • ストリームのすべてのフィード要素の取得 • コンテキストユーザのストリームの取得 • ストリームの作成 • ストリームに関する情報の取得 • ストリームの更新 • ストリームの削除 →CRUDができる ・・・・ストリーム???
  20. 20. ストリームAPI??
  21. 21. ストリームAPI??
  22. 22. Chatter ストリーム Chatter ストリームを使用したカスタムフィードの作成 • 最大25個のエンティティをまとめてストリーム(情報のグループ)を 作れる • ストリームは1人最大5個まで • 作成、編集、削除は自由に可能 • フォローしなくても追加可能→フォロー数制限を受けない • Lightning Experience限定
  23. 23. Chatter ストリーム 私の上位の関心事 • デフォルトのストリーム • Einstein AI で各ユーザ向けに役立つと思われるフィード を表示 • 5つのストリームのうちの1つとしてカウント • 削除も可能
  24. 24. SOSL WITH HIGHLIGHT
  25. 25. SOSL : WITH HIGHLIGHT • WITH HIGHLIGHT 句を使用した検索結果での 一致する語の強調表示 Salesforce Object Search Languageとは・・・ ・1回のクエリですべてのオブジェクトを検索できる ・テキスト検索が得意 ・グローバル検索を想像するとイメージしやすいかも
  26. 26. SOSL : そもそもSOSLの使い方とは <Apex> FIND ’Salesforce‘ IN ALL FIELDS RETURNING Account(Name),Contact(FirstName,LastName,Department) <開発者コンソール> FIND {Salesforce} IN ALL FIELDS RETURNING Account(Name), Contact(FirstName,LastName,Department) オススメ!TrailHead【SOSL クエリの作成】 https://trailhead.salesforce.com/ja/modules/apex_database/units/apex_database_sosl ApexとAPIでは記載が少し異 なる。初めて知りました。。
  27. 27. SOSL : WITH HIGHLIGHTの使い方 (例) ハイライトをつけて、Salesforceという語を含む 取引先(Account)と取引先責任者(Contact)を検索します。 FIND {Salesforce} IN ALL FIELDS RETURNING Account(Name), Contact(FirstName,LastName,Department) WITH HIGHLIGHT
  28. 28. <mark>タグで 囲ってくれます SOSL : 開発者コンソールで実行 最後にWITH HIGHLIGHTをつける FirstNameが ‘Salesforce’なのに、 ハイライトされないのはなぜ!?
  29. 29. ハイライトの対象は、テキスト項目のみ。 取引先責任者の姓名は 複合項目だからでないんだろうなー。 SOSL : リファレンスを読む
  30. 30. SOSL : WITH HIGHLIGHTまとめ • ハイライトは別項目に<mark></mark>付きで返ってくる • サポートしてるのは、REST APIかSOAP API • 1回のクエリでハイライトは25レコードまで • 対応している項目は、テキスト系のみ(メール、テキスト、テキストエ リア、ロングテキストエリア) 外部にコミュニティーサイトとか構築してたりすると、使えそう ロングテキストエリアも ハイライトできたよ!
  31. 31. REST API Composite
  32. 32. REST API : Composite • Composite リソースを使用した複数の要求の 一度での実行: 正式リリース
  33. 33. REST API : Compositeフレンドリーな説明文 モバイルアプリケーションを作成しているところを想像してみてください。 クライアントと Salesforce の間を往復する回数を減らすために、複数の REST API 要求を 1 回のコールで実行する必要があります。Batch リ ソースを検討しましたが、Batch ではサブ要求間で情報が渡されませ ん。これまでならあきらめるところですが、もうその必要はありません! Composite リソースを使用すると、1 回のコールで複数の要求を実行 でき、あるサブ要求の結果を後のサブ要求で参照できます。
  34. 34. REST API : Composite(リファレンスをチェックする) リリースノートは、さらっとしか書いていないので リファレンスをチェックしましょう! https://developer.salesforce.com/docs/atlas.ja- jp.206.0.api_rest.meta/api_rest/resources_composite.htm
  35. 35. REST API : BatchとCompositeの比較 Batch Composit <NEW!!> サブ要求上限 25個 25個(内10個クエリ操作OK) コミット単位 サブ要求単位 サブ要求か、全体のロールバック選べる、サブ要 求ごとに指定ができる リソース Limits,sObject,Query,Query ALL, Search,Connect,Chatter,Actions sObject,Query,QueryALL その他 リクエストボディの順番で実行 制限は10分 あるサブ要求の結果を、後のサブ要求で参照で きる 用途 1 回の要求でレコードを更新してその名 前と請求先の郵便番号をクエリする 取引先を作成してその情報を取得します。次に、 取引先データおよび Composite リソースの参照 ID 機能を使用して取引先責任者を作成し、取引 先データに基づいて項目に値を入力します。そ の後、要求文字列でクエリパラメータを使用して、 取引先の所有者に関する特定の情報を取得しま す。最後に、特定の日付以降メタデータが変更さ れた場合は、取引先のメタデータを取得します。
  36. 36. REST API : Compositeの使い方 (例) 取引先を作成し、 その取引先責任者を1回のRESTで作成する。 { "compositeRequest" : [{ "method" : "POST”, "url" : "/services/data/v38.0/sobjects/Account", "referenceId" : "refAccount", "body" : { "Name" : "Sample Account" } },{ "method" : "POST”, "url" : "/services/data/v38.0/sobjects/Contact", "referenceId" : "refContact", "body" : { "LastName" : "Sample Contact”, "AccountId" : "@{refAccount.id}" } }] } 取引先を作成する サブ要求 取引先責任者を作成する サブ要求
  37. 37. 取引先を作成してから、そのIDを 使って取引先責任者を作る REST API : Composite(取引先と取引先責任者を作成)
  38. 38. Queryのselect2回 してみた REST API : Composite(複数のクエリ実行)
  39. 39. REST API : Composite(エラー時のロールバック制御) リクエストボディにAllOrNoneをtrueに指定することで、要求全体をロールバックすることができる。
  40. 40. allOrNone・・・ true の場合、Composite 要求全体がロールバックさ れます。最上位レベルの要求は HTTP 200 を返し、各サブ要求の 応答が含まれます。 REST API : Composite(エラー時のロールバック制御) 本当はrefAccount.idで 取引先IDを指定するところを true値を指定してみる。 取引先責任者の作成に失 敗し、1つ目のサブ要求も ロールバックしている。
  41. 41. REST API : Compositeまとめ • サブ要求25個までOK • サブ要求の結果を次のサブ要求で再利用できる • トランザクションの制御ができる • モバイルアプリケーションを作る際に、わざわざApexクラスでService をクラスを作らなくても標準のREST APIで良いところまで実装できる • 1画面に複数のオブジェクトから情報を取得する際に1コールで取得 できる
  42. 42. Bulk API Bulk API Now Supports More Complex Queries Introducing Bulk API 2.0 (Pilot)
  43. 43. BulkAPI Update • 一括クエリ操作でのqueryAll,リレーションクエリが可能に • Bulk API 2.0 (パイロット) の導入
  44. 44. BulkAPI Update • 一括クエリ操作でのqueryAll,リレーションクエリが可能に • Bulk API 2.0 (パイロット) の導入
  45. 45. BulkAPI:Update#1 Bulk API でより複雑なクエリをサポート • 一括クエリ操作でのqueryAllが可能に
  46. 46. BulkAPIで使える演算子 OperationEnum 説明 DataLoader対応 query IsDeleted=Trueのレコードは含めない。 Export queryall IsDeleted=Trueのレコードも含めてqueryで きる。 ExportAll upsert ー Upsert update ー Update delete 論理削除その1。IsDeleted=Trueとなり、ゴ ミ箱へ移動 Delete hardDelete 論理削除その2。物理削除待ちとなり、プ ラットフォーム側で自動削除される。 物理削除ではない、というかSalesforce上 でユーザ側での物理削除はできない Hard Delete NEW!
  47. 47. DataLoaderでの使い方 Setting 「Use Bulk API」=True Export All を選択
  48. 48. コマンドラインでの使い方 ログイン ジョブ作成 バッチ追加 ジョブ終了 バッチ状況の確認 バッチ結果の取得
  49. 49. BulkAPIでのqueryAll操作の使い所 • 論理削除済みレコード・アーカイブ済み活動のバックアップ? • 特に「活動」レコードは大きくなりやすい(AppExchange等を入れると機能で活 動が生成され、数十万件になることがある)うえ、アーカイブされた活動も組 織のデータ使用量に含まれるため、定期的に消し込みしたいときがある
  50. 50. BulkAPI:Update#2 BulkAPI/一括クエリでの SOQLリレーションが可能に(?) • リレーションクエリはこういう感じの SELECT Account.Name FROM Contact SELECT Id, (SELECT LastName FROM Contacts) FROM Account SELECT o.Id, o.StageName, a.PersonContactId FROM Opportunity o, o.Account a
  51. 51. • https://developer.salesforce.com/docs/atlas.ja- jp.206.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_relationships_query_using.htm#sforce_api_calls_soql_relationships_query_using BulkAPI:Update#2 BulkAPI/一括クエリでの SOQLリレーションが可能に(?)
  52. 52. BulkAPI:Update#2 BulkAPI/一括クエリでの SOQLリレーションが可能に(?) • 試してみたけど、うまくいかず・・・
  53. 53. BulkAPI:Update#2 BulkAPI/一括クエリでの SOQLリレーションが可能に(?) • curlでBulkAPIを叩いてみたけど、やはり成功せず • ↑のupdateが成功した方いたら教えてください • https://releasenotes.docs.salesforce.com/ja-jp/spring17/release- notes/rn_api_bulk.htm#rn_api_bulk_queries BulkAPI
  54. 54. Tooling API New and Changed Objects
  55. 55. ToolingAPI Update • ToolingAPIでコールできるオブジェクトに追加/変更あり • 今回はToolingAPIが何かをご紹介します
  56. 56. ToolingAPIとは • 開発者向けの他APIでは参照しにくい情報を公開しているAPI • 例 • ApexClassMember • FormulaFunction • SandboxProcess • GlobalValueSet • 基本的に、SFユーザよりも開発者が利用する情報を取れる
  57. 57. ToolingAPIとは • curlしてみる /services/data/v39.0/tooling/query ?q=SELECT+name,+label,+value+FROM+FormulaOperator+WHERE+durableId='PLUS'
  58. 58. ToolingAPIの使い所 • 使い所 SF組織のモニタリングするアプリ(管理者用)を作る、など AppExで多数SF組織へアプリ提供している場合に便利かも • 取れる情報 • クラスのカバレッジ • Apex実行時のヒープ情報 • セキュリティヘルスチェック など
  59. 59. 今回ToolingAPIでの変更点 • 新しいオブジェクト FormulaFunction 特定の用途に使用できる関数を取得します。たとえば、このオブジェクトを使 用して、フローまたは Visualforce ページで使用できる関数を検索します。 FormulaOperator STAR (乗算)、AND など、使用可能なすべての数式演算子を取得します。 GlobalValueSet グローバル値セットまたはローカルのカスタム選択リストで使用される値の定 義を表します。 StandardValueSet 標準選択リスト項目の値のセットを表します。
  60. 60. 今回ToolingAPIでの変更点 変更されたオブジェクト SecurityHealthCheck 次の項目が追加されました。 CustomBaselineID 項目の一意の識別子。設定のインポートとスコアの計算を行うために使用するベースラインを特定しま す。 FlexiPage 次の項目が追加されました。 EntityDefinitionId Lightning ページが関連付けられている標準オブジェクトの名前またはカスタムオブジェクトの ID。種別 が AppPage または HomePage の Lightning ページでは、この項目は null です。SobjectType 項目を置 き換えます。 次の項目が廃止されました。 SobjectType API バージョン 39.0 で廃止されました。代わりに EntityDefinitionId を使用してください。

×