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

Apex および API を使用したプラットフォームイベントの公開および登録に関する考慮事項

Apex または Salesforce の API を使用してプラットフォームイベントの公開および登録を行う前に、次の考慮事項をよく理解してください。
after insert トリガのみをサポート
イベント通知を更新することはできないため、プラットフォームイベントでは after insert トリガのみがサポートされます。イベント通知は挿入 (公開) されるのみです。
トリガの無限ループおよび制限
イベントをトリガから公開するときは注意してください。トリガの無限ループに入り込み、制限を超える可能性があります。たとえば、同じイベントオブジェクトに関連付けられたトリガからイベントを公開した場合、トリガは無限ループの中で起動されます。
イベントの公開に関する Apex DML の制限
EventBus.publish メソッドコールは DML ステートメントとみなされるため、DML の制限が適用されます。
プラットフォームイベントトリガ: 新規レコードの ownerId 項目
プラットフォームイベントトリガで、ownerId 項目が含まれる Salesforce レコードを作成する場合、ownerId 項目を適切なユーザに明示的に設定します。プラットフォームイベントトリガは自動化プロセスエンティティの下で実行されます。この項目が含まれるレコードで ownerId 項目を設定しない場合、システムはデフォルト値の [自動化プロセス] を設定します。この例では、別のレコードから取得した ID を使用して商談の ownerId 項目が明示的に入力されます。
1Opportunity newOpp = new Opportunity(
2    OwnerId = customerOrder.createdById,
3    AccountId = acc.Id, 
4    StageName = 'Qualification', 
5    Name = 'A ' + customerOrder.Product_Name__c + ' opportunity for ' + acc.name, 
6    CloseDate = Date.today().addDays(7));
ケースやリードの場合、代わりに割り当てルールを使用して所有者を設定することもできます。SOAP API については、AssignmentRuleHeader を参照し、Apex については、「DML オプションの設定」を参照してください。
イベントの公開に関する API 要求の制限
プラットフォームイベントはイベント sObject の挿入により公開されるため、API 要求の制限が適用されます。詳細は、『Salesforce の制限クイックリファレンスガイド』「API 要求の制限および割り当て」を参照してください。
過去のイベントの再生
過去 24 時間以内に送信したプラットフォームイベントを再生できます。プラットフォームイベントは API (CometD) を使用して再生できますが、Apex を使用して再生できません、プラットフォームイベントの再生プロセスは、他のストリーミング API イベントの再生プロセスと同じです。詳細は、次のリソースを参照してください。

まれに、Salesforce アプリケーションサーバの一部のメンテナンス活動で、保持されたイベントが消去されることがあります。たとえば、予期しない機能停止後のサーバの障害回復、Salesforce インスタンスのサイトの切り替え、新しいデータセンターへの組織の移行など、いくつかのメンテナンス活動で、保持されたイベントが消去される可能性があります。イベントを失わないようにするには、キューの先端部を登録することで最新のイベントのみを受信します (-1 再生オプション)。

メモ

登録の際の絞り込み条件の設定
プラットフォームイベントでは、ストリーミング API における登録の際の絞り込み条件の設定はサポートされません。
参照のみモードでのイベントの公開
参照のみモード中にプラットフォームイベントを公開すると、例外が発生し、イベントは公開されません。これに対して、大量プラットフォームイベントは参照のみモードで公開できます。Salesforce メンテナンス実施期間中、組織は参照のみモードになります。
DateTime 項目のミリ秒時間精度
JSON 形式で CometD クライアントに配信されたイベントメッセージでは、DateTime 項目にミリ秒数が含まれます。ISO 8601 標準の日付形式は YYYY-MM-DDTHH:mm:ss.sssZ です。API バージョン 42.0 以前の DateTime 項目に時間のミリ秒部分は含まれず、その DateTime 形式は YYYY-MM-DDTHH:mm:ssZ です。
Apex トリガに配信されるイベントメッセージの場合、Salesforce オブジェクトの DateTime 項目のように DateTime 項目にミリ秒精度が含まれません。