No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
住所複合項目
標準住所 (Salesforce の標準オブジェクトに作成される住所) は、構造化された複合データ型である Address および個別の住所要素として、SOAP と REST API からアクセスできます。
API 30.0 以降の SOAP と REST API では、標準住所を、次の項目を組み合わせる構造化されたデータ型である Address 型の複合項目として使用できます。
- City
- Country
- CountryCode
- Latitude
- Longitude
- PostalCode
- State
- StateCode
- Street
住所項目は、取引先、取引先責任者、見積、ユーザなどの多くの標準オブジェクトで提供されています。一部のオブジェクトには、複数の住所のための項目があります。たとえば、取引先に 4 つの異なる住所があるとします。この場合、BillingCity、BillingState のように、住所項目名の前に住所の種別が付けられます。
複合住所項目の取得
複合項目を使用すると、特に SOQL クエリで住所を処理するコードを簡略化できます。SOQL SELECT 句では、個別のすべてのコンポーネント項目を参照するのではなく、住所を直接参照できます。
1SELECT Name, BillingAddress
2FROM AccountAPI 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 件の取引先を取得する 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