変更データキャプチャイベント
Salesforce 変更データキャプチャでは、Salesforce レコードの変更を表す変更イベントが公開されます。変更には、レコードの作成、既存のレコードの更新、レコードの削除、レコードの復元が含まれます。変更データキャプチャイベントは API バージョン 44.0 以降で使用できます。
変更イベント名
変更イベントは、すべてのカスタムオブジェクト、および標準オブジェクトのサブセットで使用できます。変更イベントの名前は、変更がキャプチャされる対応するオブジェクトの名前に基づきます。
- 標準オブジェクトの変更イベント名
-
1<Standard_Object_Name>ChangeEvent - 例: AccountChangeEvent
- カスタムオブジェクトの変更イベント名
-
1<Custom_Object_Name>__ChangeEvent - 例: Employee__ChangeEvent
登録チャネル
変更イベントの登録チャネルは、通知を受信する変更イベントの名前によって異なります。また、すべての通知を受信するための汎用チャネルが提供されています。
- すべての変更イベントのチャネル
- 変更データキャプチャで選択されているすべてのオブジェクトのイベントメッセージを受信するには、次のチャネルを使用します。
1/data/ChangeEvents - 標準オブジェクトのチャネル
- 標準オブジェクトの変更に対するイベントメッセージを受信するには、次のチャネルを使用します。
1/data/<Standard_Object_Name>ChangeEvent - 例: AccountChangeEvent
- カスタムオブジェクトのチャネル
- カスタムオブジェクトの変更に対するイベントメッセージを受信するには、次のチャネルを使用します。
1/data/<Custom_Object_Name>__ChangeEvent - 例: Employee__ChangeEvent
変更イベント項目
変更イベントのレコード項目は、関連付けられた Salesforce オブジェクトまたは変更をトリガしたエンティティの項目に対応します。イベントメッセージには新規項目または更新された項目のみが含まれます。
たとえば、取引先オブジェクトの変更イベントで送信できる項目は取引先項目です。標準オブジェクトの項目を確認するには、『Salesforce および Lightning プラットフォームのオブジェクトリファレンス』を参照してください。
各変更イベントにはヘッダー項目も含まれます。ヘッダー項目は ChangeEventHeader 項目の中に含まれます。ヘッダー項目には、変更が更新または削除のどちらであるかや、エンティティの名前 (取引先など) など、イベントに関する情報が含まれます。
次の例は、変更イベントメッセージの構造を示しています。
1{
2 "data": {
3 "schema": "<schema_ID>",
4 "payload": {
5 "ChangeEventHeader": {
6 "entityName" : "...",
7 "recordIds" : ["..."],
8 "changeType" : "...",
9 "changeOrigin" : "...",
10 "transactionKey" : "...",
11 "sequenceNumber" : "...",
12 "isTransactionEnd" : "...",
13 "commitTimestamp" : "...",
14 "commitUser" : "...",
15 "commitNumber" : "..."
16 },
17 "field1":"...",
18 "field2":"...",
19 . . .
20 },
21 "event": {
22 "replayId": <replayID>
23 }
24 },
25 "channel": "/data/<channel>"
26}イベントメッセージの例
次のイベントは新規取引先に対して送信されます。
1{
2 "data": {
3 "schema": "IeRuaY6cbI_HsV8Rv1Mc5g",
4 "payload": {
5 "ChangeEventHeader": {
6 "entityName": "Account",
7 "recordIds": [
8 "<record_ID>"
9 ],
10 "changeType": "CREATE",
11 "changeOrigin": "com/salesforce/api/soap/44.0;client=Astro",
12 "transactionKey": "001b7375-0086-250e-e6ca-b99bc3a8b69f",
13 "sequenceNumber": 1,
14 "isTransactionEnd": true,
15 "commitTimestamp": 1501010206653,
16 "commitNumber": 92847272780,
17 "commitUser": "<User_ID>"
18 },
19 "Name": "Acme",
20 "Description": "Everyone is talking about the cloud. But what does it mean?",
21 "OwnerId": "<Owner_ID>",
22 "CreatedDate": "2017-07-25T19:16:44Z",
23 "CreatedById": "<User_ID>",
24 "LastModifiedDate": "2017-07-25T19:16:44Z",
25 "LastModifiedById": "<User_ID>"
26 },
27 "event": {
28 "replayId": 6
29 }
30 },
31 "channel": "/data/ChangeEvents"
32}リソース
変更データキャプチャについての詳細は、『変更データキャプチャ開発者ガイド』を参照してください。