2018.09.27

Dreamforce2018 day2:Trigger and Batch Apex with External Objects

Dreamforceの2日目に迎えまして、ホテル付近を通過する列車の響き渡る深夜の汽笛にも、サンフランシスコの景色を柔らかく包み込む朝の霧にも慣れました。バスに30分ほど揺れられ、饒舌な運転手さんの話を聞き流しながら8時20分頃に会場に辿り着きました。

あちらこちらに設置されているDreamforceの看板、すごく可愛いです

私が向かったのは、「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 EventsとChange Data Capture Event (CDC Event)

Platform Events Reference

Change Data Capture Reference

Platform Events Trailhead

プロセスビルダーの利用

プロセスビルダーを利用して、Platform Eventが作成される際に外部オブジェクトや、外部オブジェクトの親オブジェクトに対して更新ができます。また、外部オブジェクトレコードに対して作成、削除もできます。

プロセスビルダーで外部オブジェクトを更新する

Apexトリガーの利用

今まで、外部オブジェクトではトリガー機能利用不可でしたが、Winter’19のバージョンアップでBeta機能として提供されます。外部オブジェクト作成時、トリガー有効化すると利用できるようになります。 ただし、外部オブジェクトトリガーは標準オブジェクト及びカスタムオブジェクトトリガーと決定的な違いがあります。外部オブジェクトレコードの作成/更新/削除でトリガーがキックされるのではなく、外部オブジェクトレコードの作成/更新/削除によるCDC Eventの作成によってトリガーがキックされます。そのため、外部オブジェクトのトリガーは、After Insertしか支持しません。トリガーにCDC Eventのレコードが渡され、そちらから変更された情報を取得し、処理を行うという仕組みです。

外部オブジェクトトリガーの書き方

その他

Winter’18から、外部オブジェクトにもQuery Locatorを利用することができました。 また、外部オブジェクトの変化を検知し、追跡(OData4.0のみ)及びStreaming APIを利用してクライアントへ通知することもできるようです。

External Data Change Tracking

さらに、今後のロードマップについても発表されました。上述の外部オブジェクトトリガーの正式な実装とフロー及びプロセスビルダーの利用はSpring’19に予定されているようです。

おわりに

本日の夜、待望のDreamfestにMetallicaとJanet Jacksonが来たようです!セッション以外も多彩なイベントが盛りたくさんのDreamforce2018、まだまだ続きます。 3日目以降も、Tech Blogで現地の様子や最新情報をお伝えしていきますので、ぜひお楽しみください。

Trailhead会場の様子です!明日はぬいぐるみ集めします( ̄ー ̄)bグッ!

14 件
     
  • banner
  • banner

関連する記事