0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Streaming API(Integration Architecutre デザイナー)

Posted at

Streaming API

特徴

  • **Publish/Subscribe(公開/登録)**モデル
  • PushTopic汎用ストリーミングプラットフォームイベント変更データキャプチャに分類される 参考ページ

PushTopic

  • 設計パターンの「データの変更に基づくUIの更新」に該当する
  • Salesforceとクライアント間の接続をポーリングする為にBayeuxプロトコルを実装したCometDを利用する
  • Publish側は公開用チャネルのPushTopicオブジェクトにレコードを作成する
  • Publish/Subscribe間でロングポーリングを行う事でセッション維持通知の確認を行っている
  • クライアントは外部クライアントまたはSalesforce内のページ
  • 外部クライアントはCometDのライブラリを利用して実装する必要がある
  • Salesforce内のページはVisualforceまたはLWC
  • ロングポーリングの通知結果でSubscribe側がPublishであるSalesforce側からデータを取得する場合、ストリーミングAPIイベント数がカウントされる(ポーリング時はカウント対象外)
  • 通知内容は1日キューイングされる
  • 再送通知保証しない(UDPみたい)
  • 外部クライアントが通知内容を再取得したい場合はCometD経由でReplayIdを指定する事で再取得可能

汎用ストリーミング

  • Salesforce内のデータ変更に関連しない通知を行いたい場合に利用する

プラットフォームイベント

  • リモートプロセスの呼び出しーファイアアンドフォーゲット」に該当する設計パターン
  • Salesforce内外(内部だけではなく外部からも通知可能!)からイベント通知を行う仕組み
     こちらのページの図が非常に分かり易い
  • Salesforce内としてはプロセスビルダーフローからも通知可能

コード(PushTopic)

PushTopic topic = new PushTopic();
topic.Name = 'Architecuter News';
topic.NotifyForOperationCreate = true;
topic.NotifyForOperationUpdate = true;
topic.NotifyForOperationDelete = true;
topic.Query =  'SELECT Name From Lead Where Company= \'Salesforce\'';
topic.NotifyForFields = 'All';
insert topic;

通知されるまでの流れ

以下の3条件が全て満たされる場合に通知される

  1. レコードが更新 かつ
  2. NotifyForFiledsを満たす場合 かつ
  3. QueryのWhere句の条件が一致する場合

Query項目

  • チャネルへの送信をトリガするレコードへの変更を特定するSOQLクエリステートメント
  • リレーション名などでの項目はサポート外

NotifyForFields項目

選択値 説明 備考
All レコードのいずれかの項目が更新された場合 NameまたはCompany
Referenced Select句、Where句で使用されている項目のどれかが更新されたら場合 NameまたはCompany
Select Select句で使用されている項目のどれかが更新されたら場合 Name
Where Where句で使用されている項目のどれかが更新されたら場合 Company

Streaming APIを選択するシナリオ

  • 準リアルタイムで他システムにSalesforceデータの変更を教えたい場合
  • ただし確実に通知させるほどではない場合(スマホのYoutubeチャンネルの新規投稿通知みないな感じ)

リファレンス

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?