2018.09.27
Dreamforce2018 day2:Trigger and Batch Apex with External Objects
私が向かったのは、「Trigger and Batch Apex with External Objects」というセッションでした。開場する前にもかかわらず、すでに長い行列ができていました。
セッションでは、外部オブジェクトを利用してビジネスを自動化する方法を説明することで、いくつかの新しい情報が紹介されました。外部オブジェクトReference
Platform EventsとChange Data Capture Event (CDC Event)
外部オブジェクトの動きをより理解するために、Platform EventsとChange Data Captureについて少しお話しましょう。 Platform Eventsとは、データの変化を都度記録するものです。一つのオブジェクトのようにSalesforce環境にて定義することができます。Eventは作成できますが、変更と削除はできません。 Change Data Capture EventはPlatform Eventsの一種です。変更が発生した際に自動生成し、レコードに紐付けされます。レコードにどのような変更をされたかをデータとして保持します。
プロセスビルダーの利用
プロセスビルダーを利用して、Platform Eventが作成される際に外部オブジェクトや、外部オブジェクトの親オブジェクトに対して更新ができます。また、外部オブジェクトレコードに対して作成、削除もできます。
Apexトリガーの利用
今まで、外部オブジェクトではトリガー機能利用不可でしたが、Winter’19のバージョンアップでBeta機能として提供されます。外部オブジェクト作成時、トリガー有効化すると利用できるようになります。 ただし、外部オブジェクトトリガーは標準オブジェクト及びカスタムオブジェクトトリガーと決定的な違いがあります。外部オブジェクトレコードの作成/更新/削除でトリガーがキックされるのではなく、外部オブジェクトレコードの作成/更新/削除によるCDC Eventの作成によってトリガーがキックされます。そのため、外部オブジェクトのトリガーは、After Insertしか支持しません。トリガーにCDC Eventのレコードが渡され、そちらから変更された情報を取得し、処理を行うという仕組みです。
その他
Winter’18から、外部オブジェクトにもQuery Locatorを利用することができました。 また、外部オブジェクトの変化を検知し、追跡(OData4.0のみ)及びStreaming APIを利用してクライアントへ通知することもできるようです。
さらに、今後のロードマップについても発表されました。上述の外部オブジェクトトリガーの正式な実装とフロー及びプロセスビルダーの利用はSpring’19に予定されているようです。
おわりに
本日の夜、待望のDreamfestにMetallicaとJanet Jacksonが来たようです!セッション以外も多彩なイベントが盛りたくさんのDreamforce2018、まだまだ続きます。 3日目以降も、Tech Blogで現地の様子や最新情報をお伝えしていきますので、ぜひお楽しみください。