この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Salesforce API によるイベントメッセージの公開

外部アプリケーションは API を使用してプラットフォームイベントメッセージを公開します。

イベントを公開するには、sObject を挿入する方法と同じ方法でイベントを公開します。SOAP API、REST API、Bulk API など、任意の Salesforce API を使用してプラットフォームイベントを作成できます。

イベントメッセージを公開すると、API から返された結果に、操作が成功したかどうかと、発生したエラーに関する情報が含まれます。success 項目が true の場合、標準量イベントのイベントが公開されています。大規模イベントの場合、公開要求が Salesforce のキューに入れられ、イベントメッセージがすぐに公開されないことがあります。詳細は、「大規模プラットフォームイベントの保持」を参照してください。successfalse の場合、イベント公開操作でエラーが発生しており、エラーは errors 項目で返されています。

返される結果には Id システム項目も含まれます。Id 項目値は、登録者に配信されるイベントメッセージには含まれません。これは、イベントメッセージの識別に使用されず、必ずしも一意ではありません。登録者は、配信されたメッセージに含まれる ReplayId システム項目を使用して、ストリーム内のイベントの位置を特定できます。

次のセクションの例は、大量のプラットフォームイベントに基づいています。

REST API

REST API を使用してプラットフォームイベントメッセージを公開するには、POST 要求を次のエンドポイントに送信します。

1/services/data/v49.0/sobjects/Event_Name__e/

Low Inkという名前のプラットフォームイベントを定義している場合、Low_Ink__e データを追加して、イベント通知を公開します。この例では、種別 Low_Ink__e の 1 つのイベントを REST API で作成します。

REST エンドポイント:

1/services/data/v49.0/sobjects/Low_Ink__e/

リクエストボディ:

1{
2   "Printer_Model__c" : "XZO-5"
3}

プラットフォームイベントメッセージが公開されると、REST 応答が次の出力のように表示されます。簡潔にするため、ヘッダーは削除しています。

1HTTP/1.1 201 Created 
2
3{
4  "id" : "e01xx0000000001AAA",
5  "success" : true,
6  "errors" : [ {
7    "statusCode" : "OPERATION_ENQUEUED",
8    "message" : "232fd30e-0a71-42bd-a97b-be0e329b2ded",
9    "fields" : [ ]
10  } ]
11}

REST API 複合リソース

1 つの REST API 要求で複数のプラットフォームイベントメッセージを公開するには、composite リソースを使用します。次のエンドポイントに POST 要求を送信します。

1/services/data/v49.0/composite/

各プラットフォームイベントを Composite 要求ボディのサブ要求として追加します。

この Composite 要求には、リクエストボディに 2 つのプラットフォームイベントが含まれています。

1{
2  "allOrNone": true,
3  "compositeRequest": [
4    {
5      "method": "POST",
6      "url": "/services/data/v49.0/sobjects/Low_Ink__e",
7      "referenceId": "event1",
8      "body": {
9        "Serial_Number__c" : "1000", 
10        "Printer_Model__c" : "XZO-5"
11      }
12    },
13    {
14      "method": "POST",
15      "url": "/services/data/v49.0/sobjects/Low_Ink__e",
16      "referenceId": "event2",
17      "body": {
18        "Serial_Number__c" : "1001",
19        "Printer_Model__c" : "XY-10"
20      }
21    }
22  ]
23}

プラットフォームイベントメッセージが公開されると、REST 応答が次の出力のように表示されます。このサンプル応答からヘッダーが削除されます。

1{
2  "compositeResponse" : [ {
3    "body" : {
4      "id" : "e01xx0000000001AAA",
5      "success" : true,
6      "errors" : [ {
7        "statusCode" : "OPERATION_ENQUEUED",
8        "message" : "436ccd6f-cc43-4861-a260-a3ffbc1bc27c",
9        "fields" : [ ]
10      } ]
11    },
12    "httpStatusCode" : 201,
13    "referenceId" : "event1"
14  }, {
15    "body" : {
16      "id" : "e01xx0000000001AAA",
17      "success" : true,
18      "errors" : [ {
19        "statusCode" : "OPERATION_ENQUEUED",
20        "message" : "85d962fb-f05c-4ccf-9ee1-ac751d0fc07f",
21        "fields" : [ ]
22      } ]
23    },
24    "httpStatusCode" : 201,
25    "referenceId" : "event2"
26  } ]
27}

Composite REST 要求および SOAP API の allOrNone ヘッダーは、[コミット後に公開] オプションで定義されたプラットフォームイベントにのみ適用されます。詳細は、「プラットフォームイベントトランザクション」を参照してください。

メモ

SOAP API

SOAP API を使用してプラットフォームイベントメッセージを公開するには、create() コールを使用します。

この例は、1 回のコールで 3 つのプラットフォームイベントメッセージを作成する要求の SOAP メッセージ (Partner API を使用) を示しています。各イベントに Printer_Model__c という名前の 1 つのカスタム項目が含まれます。

1<?xml version="1.0" encoding="UTF-8"?>
2<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:sobject.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:partner.soap.sforce.com">
3<SOAP-ENV:Header>
4    <ns2:SessionHeader>
5        <ns2:sessionId>00DR00000001fWV!AQMAQOshATCQ4fBaYFOTrHVixfEO6l...</ns2:sessionId>
6    </ns2:SessionHeader>
7    <ns2:CallOptions>
8        <ns2:client>Workbench/34.0.12i</ns2:client>
9        <ns2:defaultNamespace xsi:nil="true"/>
10        <ns2:returnFieldDataTypes xsi:nil="true"/>
11    </ns2:CallOptions>
12</SOAP-ENV:Header>
13<SOAP-ENV:Body>
14    <ns2:create>
15        <ns2:sObjects>
16            <ns1:type>Low_Ink__e</ns1:type>
17            <ns1:fieldsToNull xsi:nil="true"/>
18            <ns1:Id xsi:nil="true"/>
19            <Printer_Model__c>XZO-600</Printer_Model__c>
20        </ns2:sObjects>
21        <ns2:sObjects>
22            <ns1:type>Low_Ink__e</ns1:type>
23            <ns1:fieldsToNull xsi:nil="true"/>
24            <ns1:Id xsi:nil="true"/>
25            <Printer_Model__c>XYZ-100</Printer_Model__c>
26        </ns2:sObjects>
27        <ns2:sObjects>
28            <ns1:type>Low_Ink__e</ns1:type>
29            <ns1:fieldsToNull xsi:nil="true"/>
30            <ns1:Id xsi:nil="true"/>
31            <Printer_Model__c>XYZ-9000</Printer_Model__c>
32        </ns2:sObjects>
33    </ns2:create>
34</SOAP-ENV:Body>
35</SOAP-ENV:Envelope>

Partner SOAP API 要求の応答は、次のように表示されます。簡潔にするため、ヘッダーは削除しています。

1<?xml version="1.0" encoding="UTF-8"?>
2<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com">
3<soapenv:Header>
4 ...
5</soapenv:Header>
6<soapenv:Body>
7    <createResponse>
8        <result>
9            <id>e00xx000000000F</id>
10            <success>true</success>
11            <errors>
12               <message>04b8724e-e7e7-4caf-9bcd-0d14c9f97e31</message>
13               <statusCode>OPERATION_ENQUEUED</statusCode>
14            </errors>
15        </result>
16        <result>
17            <id>e00xx000000000G</id>
18            <success>true</success>
19            <errors>
20               <message>7378b9cc-d381-4150-b093-336e3a0e4018</message>
21               <statusCode>OPERATION_ENQUEUED</statusCode>
22            </errors>
23        </result>
24        <result>
25            <id>e00xx000000000H</id>
26            <success>true</success>
27            <errors>
28               <message>32da1ef3-6877-485a-8dde-1174f589e31a</message>
29               <statusCode>OPERATION_ENQUEUED</statusCode>
30            </errors>
31        </result>
32    </createResponse>
33</soapenv:Body>
34</soapenv:Envelope>