SlideShare a Scribd company logo
Summer ’17 リリースノート輪読
- Apexまわり -
Salesforce DG Meetup #15
Takahiro Yonei (@yonet77)
1. Apexからのメタデータ操作
2. プラットフォームイベント
 Summer ‘17 で、Apexからメタデータ操作が可能になった
 これまでメタデータを取得するには、Metadata APIを使うしかなかった
• Apex Wrapper Salesforce Metadata API
• https://github.com/financialforcedev/apex-mdapi
• JSforce
• https://jsforce.github.io/
 他には Ajax Toolkit で、describeLayout() を使って、ページレイアウト
を取得する など
• describeLayout() は、レコードタイプと関連づいたページレイアウトを取得す
るのみで、指定したページレイアウトを取得できない
• ツラい
 Summer ‘17 で、Apexからメタデータ操作が可能になった
 一方で、Metadata APIを使うには「すべてのデータ編集権限」が必要
 すべてのユーザが、そんな権限を持っているとは限らない
↓
 今回のリリースで、メタデータ操作が可能になった!
(ただし一部に限る...)
 操作可能なメタデータの種類
 レイアウト
 カスタムメタデータ の2種類のみ
 レイアウトの取得
 レイアウトの取得
 レイアウトの取得
 階層が結構深いので、フィールドの情報までたどり着くにはなかなか大変か
も
 住所型のフィールドだと詳細が取得できない(国、都道府県、市区郡、町名
番地)
• Ajax Toolkit の describeLayout() だと、詳細も取得できる
 カスタムメタデータの取得
 カスタムメタデータの取得
 ただ、SOQLでも似たような情報は取得できそう
 Metadata.Operations.retrieve() との違いは?(権限に関連する?)
 所感
 ページレイアウトの情報を取得するには、これまでMetadata APIを使う他に方法
がなかった。
それがApexから可能になったことは非常に良い。
 カスタムメタデータの取得は SOQL の代替として利用するくらいか?
 その他、ISVアプリケーションのインストール後のアクションとして、ページレイア
ウト、カスタムメタデータのデプロイできる。
が、パッケージ内にページレイアウト、カスタムメタデータを追加しておいても良
いのでは?
※ ページレイアウトは後から変更可能
※ カスタムメタデータも、定義によっては後から変更可能
※ 極力、管理パッケージ内にコンポーネントを含めずに配布する、という点では有効
 プラットフォームイベントとは?
 システム内外で利用できるイベントを、ユーザが自由に定義できる
 カスタムオブジェクトを定義する感じで、プラットフォームイベントを
定義する
 プラットフォームイベントの作成方法
 カスタムオブジェクトを定義するのとほぼ同じ
 プラットフォームイベントの作成方法
 カスタムオブジェクトを定義するのとほぼ同じ
 プラットフォームイベントの作成方法
 カスタムオブジェクトを定義するのとほぼ同じ
 プラットフォームイベントの注意事項
プラットフォームイベントに対するパー
ミッション設定
「参照」「作成」を設定できる
フィールドレベルセキュリティ 不要
※イベントのフィールドは参照、編集不可
なので「不要」
サポートするエディション Professional, Group EditionはNG
データストレージ カウント対象外(に思える)
 プラットフォームイベントの注意事項
Apex, SOQL,
API関連
• SOQLによるクエリはサポート対象外
• トリガは after insert のみ
• EventBus.publish() の呼び出しはDML制約に
カウントされる
• APIからの登録では API要求数にカウントされる
• リトライはAPI経由のみ
トランザクション ロールバックはサポート対象外
• APIからの登録では allOrNoneHeader は無視される
• Apexからの登録では Database.rollback() はサポートされ
てない
 実際にやってみた
←ここでイベントを publish する
 実際にやってみた
 取引先を新規追加しても、一向に投稿されない
 API経由で登録しても、成功するけど、一向に投稿されない
 状態が「実行中」のまま変化しないけど良いのか?
 あと、プロセスビルダーには、今のところ未対応?
 所感
 まだよく分からなかったので、乞うご期待
Meetup #15 : リリースノート輪読 / Apexまわり

More Related Content

PPTX
GraphQLのsubscriptionで出来ること
PPTX
モバイル・カスタム開発が加速するUser Interface APIのご紹介
PPTX
Microsoft Graphことはじめ クエリパラメータ編
PPTX
Microsoft Graph完全に理解した気がしてた
PDF
170827 jtf garafana
PPTX
第19回html5とか勉強会 pjax
PDF
MTCafe sapporo#4
PPTX
Power platform day summer 19
GraphQLのsubscriptionで出来ること
モバイル・カスタム開発が加速するUser Interface APIのご紹介
Microsoft Graphことはじめ クエリパラメータ編
Microsoft Graph完全に理解した気がしてた
170827 jtf garafana
第19回html5とか勉強会 pjax
MTCafe sapporo#4
Power platform day summer 19

Similar to Meetup #15 : リリースノート輪読 / Apexまわり (16)

PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
PPTX
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
PDF
Tableau Developers Club - Web Data Connector handson
PPTX
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
PDF
Developers.IO 2019 Effective Datalake
PPTX
sitTokyo2023_App&Dev_01_ariyama.pptx
PPT
ウェブアーキテクチャの歴史と未来
PPTX
dstn交流会_DataSpider のソーシャルとの融合、手組との融合
PPTX
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
PDF
IDEを目指す開発者コンソール
PDF
Skype for Business + Bot + Graph API
PDF
XPagesDay 2015 RESTの総復習
PDF
Ext.direct
PDF
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
PPTX
Spring tools4
ODP
お父さんのための実用JavaScriptプログラミング~入門篇~
ASP.NET シングル ページ アプリケーション (SPA) 詳説
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
Tableau Developers Club - Web Data Connector handson
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Developers.IO 2019 Effective Datalake
sitTokyo2023_App&Dev_01_ariyama.pptx
ウェブアーキテクチャの歴史と未来
dstn交流会_DataSpider のソーシャルとの融合、手組との融合
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
IDEを目指す開発者コンソール
Skype for Business + Bot + Graph API
XPagesDay 2015 RESTの総復習
Ext.direct
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
Spring tools4
お父さんのための実用JavaScriptプログラミング~入門篇~
Ad

More from Takahiro Yonei (15)

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
PDF
カスタムメタデータを受託の案件で使ってみた話
PDF
Visualforceをあきらめない
PDF
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
PDF
Salesforce dug tokyo_meetup#8_about_releasenote
PDF
SDUG Tokyo Meetup#7 About ReleaseNote
PDF
DCMax CrowdHackathonチャレンジ②
PDF
Salesforce DUG Tokyo meetup#5
PDF
Cloudforce2012 LT
PDF
Force.com Developer Group Japan Meetup#2
PDF
Force.com Developer Group Japan Meetup#1
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
EC-CubeをHerokuでも
ApexトリガのBest Practiceを目指して
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
カスタムメタデータを受託の案件で使ってみた話
Visualforceをあきらめない
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce dug tokyo_meetup#8_about_releasenote
SDUG Tokyo Meetup#7 About ReleaseNote
DCMax CrowdHackathonチャレンジ②
Salesforce DUG Tokyo meetup#5
Cloudforce2012 LT
Force.com Developer Group Japan Meetup#2
Force.com Developer Group Japan Meetup#1
Ad

Meetup #15 : リリースノート輪読 / Apexまわり

Editor's Notes

  • #8: あれ?編集用のレイアウトは??
  • #23: 無理すれば、ちょっとした Function as a Service みたいなことはできるかなぁ、と。 処理の実態はApexで記述する。エンドポイントは、プラットフォームイベントにつながるREST API とか。 でもスケールするわけでもないし、ちょっとツラいか。