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

Salesforce Connect 外部オブジェクトに関する Apex の考慮事項

Apex コードは、Salesforce Connect アダプター経由で外部オブジェクトデータにアクセスできますが、いくつかの要件と制限が適用されます。
  • 以下の機能は、外部オブジェクトでは使用できません。
    • Apex による共有管理
    • Apex トリガー (ただし、OData 4.0 接続からの外部変更データキャプチャイベントに対するトリガーは作成できます)。
  • 開発者が Apex を使用して外部オブジェクトレコードを操作する場合、非同期のタイミングと有効なバックグラウンドキューにより、保存時の競合の可能性が最小限に抑えられます。一連の特殊な Apex メソッドとキーワードにより、書き込み実行で生じる可能性があるタイミングの問題が処理されます。Apex では、削除操作や更新/挿入操作の結果も取得できます。BackgroundOperation オブジェクトを使用して、API または SOQL を介して書き込み操作のジョブの進行状況を監視します。
  • ポータルユーザーがコミュニティメンバーの場合でも、Database.insertAsync() メソッドをポータルユーザーのコンテキストで実行することはできません。Apex で外部オブジェクトレコードを追加するには、Database.insertImmediate() メソッドを使用します。

外部データソースに対して反復可能な Apex 一括処理ジョブを実行すると、ジョブの実行中に外部レコードが Salesforce に保存されます。ジョブが完了すると、ジョブが正常に終了したかどうかにかかわらず、データはストレージから削除されます。Database.QueryLocator を使用する Apex 一括処理ジョブの実行中に外部データは保存されません。

重要

  • Database.QueryLocator で Apex 一括処理を使用して、Salesforce Connect の OData アダプター経由で外部オブジェクトにアクセスする場合、次の点に注意してください。