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

住所複合項目

標準住所 (Salesforce の標準オブジェクトに作成される住所) は、構造化された複合データ型である Address および個別の住所要素として、SOAP と REST API からアクセスできます。
API 30.0 以降の SOAP と REST API では、標準住所を、次の項目を組み合わせる構造化されたデータ型である Address 型の複合項目として使用できます。
  • Accuracy
  • City
  • Country
  • CountryCode
  • Latitude
  • Longitude
  • PostalCode
  • State
  • StateCode
  • Street

StateCodeCountryCode は、組織で州/国選択リストが有効であるかどうかに関係なく、複合住所項目で常に使用できます。

メモ

Address 型は、複合地理位置情報項目に使用されるデータ型である Location 型を拡張します。

住所項目は、取引先、取引先責任者、見積、ユーザなどの多くの標準オブジェクトで提供されています。一部のオブジェクトには、複数の住所のための項目があります。たとえば、取引先に 4 つの異なる住所があるとします。この場合、BillingCityBillingState のように、住所項目名の前に住所の種別が付けられます。

標準住所の複合項目は参照のみであり、SOAP および REST API を使用してのみアクセスできます。これによる制約の詳細は、「複合項目の考慮事項と制限」を参照してください。

メモ

住所が地理コード化されると、緯度項目と経度項目に座標が入力されます。関連する地理位置情報項目も入力されます。通常、地理コードサービスプロバイダによって住所が地理コード化され、地理コードの精度が評価されます。

精度サブ項目 GeocodeAccuracy には、地理コード化された位置の精度データが保存されます。外部地理位置情報アプリケーションは、API を介して地理コード化された住所の精度レベルを取得できます。API を介して住所を取得するときに、精度データが含まれます。必要に応じて、単独で精度情報を取得することもできます。

その親と同様に、複合 [住所] 項目、GeocodeAccuracy 項目は標準オブジェクトの標準住所項目でのみ使用できます。

複合住所項目の取得

複合項目を使用すると、特に SOQL クエリで住所を処理するコードを簡略化できます。SOQL SELECT 句では、個別のすべてのコンポーネント項目を参照するのではなく、住所を直接参照できます。
1SELECT Name, BillingAddress
2FROM Account
API 30.0 以前および API 30.0 以降と互換性があるコードを作成するには、個別の項目を使用します。
1SELECT Name, BillingStreet, BillingCity, BillingState, BillingPostalCode,
2       BillingCountry, BillingLatitude, BillingLongitude
3FROM Account

複合住所項目の値は、構造化されたデータ型 Address として返されます。複合住所項目を処理するコードでは、返される値の個別のコンポーネントを参照する必要があります。次のサンプルコードを参照してください。

SOAP API を使用した標準住所の複合項目の取得

次の Java メソッドでは、Salesforce SOAP API を使用して、取引先責任者リストの [住所(郵送先)] を取得および表示します。

1// Modified version of code in the SOAP API QuickStart
2private void querySample() {
3    String soqlQuery = "SELECT FirstName, LastName, MailingAddress FROM Contact";
4    try {
5        QueryResult qr = connection.query(soqlQuery);
6        boolean done = false;
7
8        if (qr.getSize() > 0) {
9            System.out.println("\nLogged-in user can see "
10              + qr.getRecords().length + " contact records.");
11
12            while (!done) {
13                System.out.println("");
14                SObject[] records = qr.getRecords();
15                for (int i = 0; i < records.length; ++i) {
16                    Contact con = (Contact) records[i];
17                    String fName = con.getFirstName();
18                    String lName = con.getLastName();
19
20                    // Access the compound address field MailingAddress
21                    Address addr = (Address) con.getMailingAddress();
22                    String streetAddr = "";
23                    if (null != addr) streetAddr = addr.getStreet();
24
25                    if (fName == null) {
26                        System.out.println("Contact " + (i + 1) + ": " + lName +
27                            " -- " + streetAddr);
28                    } else {
29                        System.out.println("Contact " + (i + 1) + ": " + fName +
30                            " " + lName +
31                            " -- " + streetAddr);
32                    }
33                }
34
35                if (qr.isDone()) {
36                    done = true;
37                } else {
38                    qr = connection.queryMore(qr.getQueryLocator());
39                }
40            }
41        } else {
42            System.out.println("No records found.");
43        }
44    } catch (ConnectionException ce) {
45        ce.printStackTrace();
46    }
47}

場所としての複合住所項目の使用

複合住所項目には、緯度項目と経度項目があります。住所項目は、SOQL の WHERE 句と ORDER BY 句で場所として使用できます。たとえば、サンフランシスコに最も近い 10 件の取引先を取得する GEOLOCATION 関数を使用する SOQL クエリは次のようになります。
1SELECT Id, Name, BillingAddress
2FROM Account
3WHERE DISTANCE(BillingAddress, GEOLOCATION(37.775,-122.418), 'mi') < 20 
4ORDER BY DISTANCE(BillingAddress, GEOLOCATION(37.775,-122.418), 'mi')
5LIMIT 10

住所項目の地理位置情報コンポーネントは、自動的に設定されません。SOQL、ワークベンチ、SOAP API、REST API、または地理コードサービスを使用して、住所の緯度と経度の値を設定します。これにより、住所項目を場所の値として使用できます。AppExchange で「geocode」を検索して、いくつかの可能なソリューションを見つけてください。

メモ