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

複合項目の考慮事項と制限

住所複合項目と地理位置情報複合項目は便利で、コードがより簡潔でわかりやすくなります。アプリケーションでこれらの項目を使用するときには、次の点に注意してください。
住所複合項目と地理位置情報複合項目のどちらにも、次の制限があります。
  • 複合項目は参照のみです。項目値を更新するには、個別の項目コンポーネントを変更します。
  • 複合項目は、SOAP および REST API を介してのみアクセスできます。複合バージョンの項目は、Salesforce ユーザインターフェースのどこからもアクセスできません。
  • 複合項目は、Location および Address Apex クラスを使用してクエリ可能ですが、実際の項目のコンポーネントとしてのみ編集可能です。地理位置情報項目コンポーネントの参照と設定を行うには、通常の「__c」の代わりに「__latitude__s」または「__longitude__s」を項目名に追加します。次に例を示します。
    1Double theLatitude = myObject__c.aLocation__latitude__s;
    2myObject__c.aLocation__longitude__s = theLongitude;
    複合値に対するアクセスや設定はできません。
  • 複合項目は、<apex:outputField> など、Visualforce では使用できません。項目値のアクセスまたは更新には、個別の項目コンポーネントを使用します。
  • データローダでエクスポート対象として複合項目を選択すると、エラーメッセージが表示されます。値をエクスポートするには、個別の項目コンポーネントを使用します。
  • 標準住所のカスタム地理位置情報および位置の項目は、メールテンプレートではサポートされません。
  • 指定した範囲内または範囲外で距離を絞り込む場合を除き、複合項目をルックアップ検索条件で使用することはできません。距離のルックアップ検索条件は、メタデータ API でのみ使用できます。
  • 複合項目を使用できる数式関数は、ISBLANKISCHANGED、および ISNULL のみです。BLANKVALUECASENULLVALUEPRIORVALUE、または等価演算子および比較演算子では、複合項目を使用できません。等価演算子と比較演算子には、= および == (等号)、<> および != (不等号)、< (より小さい)、> (より大きい)、<= (以下)、>= (以上)、&& (AND)、|| (OR) があります。
住所複合項目には、次の制限があります。
  • 複合住所項目は、Salesforce に含まれる標準オブジェクトの一部として存在する住所項目でのみ使用できます。カスタム複合住所項目は作成できません。
  • Developer Edition、Professional Edition、Enterprise Edition、Unlimited Edition、および Performance Edition では、Salesforce によって Account、Contact、Lead、WorkOrder レコードに自動的に地理位置情報項目が追加または更新されます。この機能を使用するには、システム管理者が各オブジェクトの地理データインテグレーションルールを有効にする必要があります。その他すべてのオブジェクトおよびエディションについては、SOQL、ワークベンチ、SOAP、REST API、または地理コードサービスを使用して緯度と経度の値を設定します。これにより、住所項目を場所の値として使用できます。地理コードサービスを見つけるには、AppExchange を検索します。
  • 住所項目の精度サブ項目は、住所が地理コード化されるときにのみ入力されます。通常、地理コードサービスプロバイダは住所の緯度および経度座標に対する精度データを提供します。
  • 住所項目は SOQL の WHERE ステートメントでは使用できません。住所項目の絞り込みはできませんが、DescribeFieldResult Apex クラスの isFilterable() メソッドは、住所項目について誤って true を返します。
地理位置情報複合項目には、次の制限があります。
  • 地理位置情報項目は、カスタム設定ではサポートされません。
  • 地理位置情報項目は、ダッシュボードまたはスキーマビルダーでは使用できません。
  • 地理位置情報項目は Visual Workflow および数式ベースのワークフローと承認で使用できますが、検索条件ベースのワークフローの更新と承認では使用できません。
  • DISTANCE 数式は次でサポートされています。
    • ワークフロールールと承認プロセスの開始条件
    • ワークフロールールと承認プロセスでの項目自動更新アクション
    • カスタム入力規則
    • ルックアップ検索条件 (メタデータ API のみ)
  • 地理位置情報項目と標準住所の緯度および経度は、Salesforce to Salesforce ではサポートされません。
  • Developer Edition、Professional Edition、Enterprise Edition、Unlimited Edition、および Performance Edition では、Salesforce によって Account、Contact、Lead、WorkOrder レコードに自動的に地理位置情報項目が追加または更新されます。この機能を使用するには、システム管理者が各オブジェクトの地理データインテグレーションルールを有効にする必要があります。その他すべてのオブジェクトおよびエディションについては、SOQL、ワークベンチ、SOAP、REST API、または地理コードサービスを使用して緯度と経度の値を設定します。これにより、住所項目を場所の値として使用できます。地理コードサービスを見つけるには、AppExchange を検索します。
  • 地理位置情報項目は、SOQL でサポートされますが、次の制限があります。
    • DISTANCEGEOLOCATION は、SOQL の WHERE 句および ORDER BY 句ではサポートされますが、GROUP BY 句ではサポートされません。DISTANCESELECT 句でサポートされます。
    • DISTANCE は、論理演算子 > および < のみをサポートし、指定された半径内 (<) または外 (>) の値を返します。
    • SOQL クエリで GEOLOCATION 関数を使用する場合、地理位置情報項目を緯度および経度座標よりも前に入力する必要があります。たとえば、DISTANCE(warehouse_location__c, GEOLOCATION(37.775,-122.418), 'km') は機能しますが、DISTANCE(GEOLOCATION(37.775,-122.418), warehouse_location__c, 'km') は機能しません。
    • Apex バインド変数は、DISTANCE 関数の単位パラメータではサポートされません。次のクエリは機能しません。
      1String units = 'mi';
      2List<Account> accountList = 
      3    [SELECT ID, Name, BillingLatitude, BillingLongitude 
      4     FROM Account 
      5     WHERE DISTANCE(My_Location_Field__c, GEOLOCATION(10,10), :units) < 10];
    詳細と例は、『SOQL および SOSL リファレンス���を参照してください。