PushTopic 通知メッセージの順序
API バージョン 37.0 以降の PushTopic 通知メッセージの順序
API バージョン 37.0 以降の場合、Salesforce は PushTopic 通知メッセージをイベントバスに一時的に保存します。PushTopic 通知メッセージを保存する前に、Salesforce はそのメッセージに再実行 ID 値を割り当てます。登録者は、再実行 ID の順にイベントバスから通知メッセージを受け取ります。一般的に、PushTopic メッセージの通知順序は、Salesforce でコミットされたレコード変更に対応するトランザクションと同じになります。1 つの例外は、レコードが同じトランザクション内の複数の通知をトリガーしたときで、この場合、最後の通知が最初に配信されます。詳細は、「トランザクション内ではストリーミング API 通知は逆順で送信」を参照してください。
次の例では、2 つの新しい請求書明細に対する 2 つの PushTopic 通知メッセージを示しています。INV-0001 は INV-0002 よりも先に作成されており、replayId は小さい値が割り当てられています。
1{
2 "data": {
3 "event": {
4 "createdDate": "2021-08-05T17:49:08.990Z",
5 "replayId": 2,
6 "type": "created"
7 },
8 "sobject": {
9 "Description__c": "New invoice statement #2",
10 "Id": "a02RM00000013VrYAI",
11 "Status__c": "Open",
12 "Name": "INV-0002"
13 }
14 },
15 "channel": "/topic/InvoiceStatementUpdates"
16}
17
18{
19 "data": {
20 "event": {
21 "createdDate": "2021-08-05T17:33:48.324Z",
22 "replayId": 1,
23 "type": "created"
24 },
25 "sobject": {
26 "Description__c": "New invoice statement",
27 "Id": "a02RM00000013VmYAI",
28 "Status__c": "Open",
29 "Name": "INV-0001"
30 }
31 },
32 "channel": "/topic/InvoiceStatementUpdates"
33}API バージョン 36.0 以前の PushTopic 通知メッセージの順序
API バージョン 36.0 以前では、組織内のデータの変更は順々に行われます。ただし、受信する PushTopic イベントの通知メッセージの順番は保証されません。クライアント側では、createdDate を使用して、チャネルに返される通知メッセージの順序を指定できます。createdDate の値は、イベントの発生時期を示す UTC 日付/時間の値です。
次の例では、2 つの新しい請求書明細に対する 2 つの PushTopic 通知メッセージを示しています。INV-0001 は INV-0002 よりも先に作成されており、createdDate の値は INV-0002 よりも小さいです。
1{
2 "data": {
3 "event": {
4 "createdDate": "2013-05-10T18:16:19.000+0000",
5 "type": "created"
6 },
7 "sobject": {
8 "Description__c": "New invoice statement #2",
9 "Id": "a00D0000008pvxcIAA",
10 "Status__c": "Open",
11 "Name": "INV-0002"
12 }
13 },
14 "channel": "/topic/InvoiceStatementUpdates"
15}
16
17{
18 "data": {
19 "event": {
20 "createdDate": "2013-05-10T18:15:11.000+0000",
21 "type": "created"
22 },
23 "sobject": {
24 "Description__c": "New invoice statement #1",
25 "Id": "a00D0000008pvzdIAA",
26 "Status__c": "Open",
27 "Name": "INV-0001"
28 }
29 },
30 "channel": "/topic/InvoiceStatementUpdates"
31}