設問
Northern Trail Outfitters(NTO)は関連会社を持っており、Salesforceで商談(Opportunity)が更新された際に即座に通知を受けたいと考えています。関連会社は CometD クライアントを使用しています。この要件を満たすにはどのソリューションが最適でしょうか?
選択肢
A. フローの一部として、Onchangeトリガーイベントで Apexのサブスクライバーを呼び出すように外部サービスを設定します。
B. SOAP API getUpdatedメソッドを呼び出して更新された各レコードのID値を取得するポーリングメカニズムをクライアントに実装します。
C. OpportunityオブジェクトにPushTopic更新イベントを作成し、サブスクライバーがストリーミングAPIに反応できるようにします。
D. 関連組織で接続アプリケーションを作成し、「CometD APIリクエストを受け入れる」を選択します。
解答
C. OpportunityオブジェクトにPushTopic更新イベントを作成し、サブスクライバーがストリーミングAPIに反応できるようにします。
解説
A. フローの一部として、Onchangeトリガーイベントで Apexのサブスクライバーを呼び出すように外部サービスを設定します。
不正解です。
外部サービスは通常、SalesforceからAPIコールアウトを行うためのものです。クライアントはCometDを使用してトピックをサブスクライブするとあり、外部クライアントがサブスクライブする必要があるため、この選択肢は不適切です。
B. SOAP API getUpdatedメソッドを呼び出して更新された各レコードのID値を取得するポーリングメカニズムをクライアントに実装します。
不正解です。
Streaming APIはポーリングの必要性を排除してサーバー負荷を軽減すると明記されています。また、getUpdatedはポーリング手法であり、リアルタイム通知には適していません。
C. OpportunityオブジェクトにPushTopic更新イベントを作成し、サブスクライバーがストリーミングAPIに反応できるようにします。
正解です。
PushTopicは特定オブジェクトのデータ変更などをリッスンするイベント条件を含むと説明されています。また、SOQLクエリで条件を定義し、通知する操作を指定するとあり、CometDクライアントがリアルタイムで商談の変更を受け取るための推奨ソリューションです。
D. 関連組織で接続アプリケーションを作成し、「CometD APIリクエストを受け入れる」を選択します。
不正解です。
接続アプリケーションは認証のためのものであり、Streaming APIオプションを有効にするやPushTopicがデータ変更の通知条件を定義する)が示すように、リアルタイム通知にはPushTopicの作成が必要です。
第53問
こちらをクリック