外部 ID および OData エンティティキー
Salesforce Connect の OData 2.0、4.0、または 4.01 アダプターを使用して外部データにアクセスする場合、外部オブジェクトの外部 ID 標準項目の値は、OData サービスメタデータドキュメントに定義されたエンティティキーに従って生成されます。
必要なエディション
| 入手可能: Salesforce Classic と Lightning Experience の両方 (大量データの外部オブジェクトには非対応) |
使用可能なエディション: Developer Edition 有料オプションで使用可能なエディション: Enterprise Edition、Performance Edition、および Unlimited Edition |
各外部オブジェクトには [外部 ID] 標準項目があります。その値により、組織内の各外部オブジェクトレコードが一意に識別されます。外部オブジェクトが外部参照関係で親の場合、外部 ID 標準項目が子レコードの識別に使用されます。
- 子レコードの外部参照関係項目に、親レコードの外部 ID 値が保存および表示されます。
- Salesforce では、内部使用のみを目的として、外部システムから取得された各行の外部 ID 値を保存します。この動作は、大量データの外部データソースに関連付けられた外部オブジェクトには適用されません。
次の Order_Detail 外部オブジェクトのリストビューには、外部 ID の値が表示されています。
各外部 ID の値は、リモートデータサービス (OData プロデューサー) の OData サービスメタデータドキュメントに定義されたエンティティキーに従って生成されます。エンティティキーは、エンティティ種別のプロパティのサブセットで形成されます。
次の OData サービスメタデータドキュメントからの抜粋は、Order_Detail 外部オブジェクトの外部 ID の値が OrderID および ProductID プロパティから生成されることを示しています。
<EntityType Name="Order_Detail">
<Key>
<PropertyRef Name="OrderID"/>
<PropertyRef Name="ProductID"/>
</Key>
<Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
<Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
<Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4"/>
<Property Name="Quantity" Type="Edm.Int16" Nullable="false"/>
<Property Name="Discount" Type="Edm.Single" Nullable="false"/>
...次のレコード詳細ページには、[OrderID] および [ProductID] 項目が表示されています。これらの値を組み合わせて外部 ID 標準項目の値が作成されます。
書き込み可能な外部オブジェクトを有効にする場合、外部システムでエンティティキーの値を指定するための書き込み操作が必要かどうかを判別します。たとえば、多くの外部システムは、新しい外部オブジェクトレコードが Salesforce で作成されるとエンティティキーの値を生成します。外部システムでエンティティキーの値を指定するための書き込み操作が必要な場合、外部 ID 標準項目値とエンティティキー値が互いに矛盾しないようにします。書き込み操作ごとに、外部 ID 標準項目値か、エンティティキーを構成するカスタム項目値のいずれかを含めます。決して両方を含めないでください。
