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

データ型

プリミティブデータ型に加えて、API では、項目の次のデータ型を定義します。

文字列を含む項目の場合、API バージョン 15.0 以降の動作は異なります。バージョン 15.0 より前の API では、項目に値を指定し、その値が大きすぎる場合、値は切り捨てられます。API バージョン 15.0 以降では、大きすぎる値が指定されると、操作は失敗し、失敗コード STRING_TOO_LONG が返されます。AllowFieldTruncationHeader ヘッダーを使用すると、API バージョン 15.0 以降の新しい動作ではなく、以前の動作である切り捨てを使用するように指定できます。このヘッダーはバージョン 14.0 以前の製品には無効です。影響を受ける項目は、anyType、email、encryptedstring、multipicklist、phone、picklist、string、および textarea です。

メモ

データ型 項目に含まれる内容
address 住所項目データを含む複合データ型。「住所複合項目」を参照してください。
anyType

関連する項目によって、string、picklist、reference、boolean、currency、int、double、percent、ID、date、datetime、url、email データのいずれかを返す多様なデータ型。「anyType データ型」を参照してください。

calculated 数式によって定義されている項目。「calculated データ型」を参照してください。
combobox 列挙型値のセットを含むコンボボックスで、ユーザはリストにない値も指定できます。「comboBox データ型」を参照してください。
currency 通貨の値。「currency データ型」を参照してください。
DataCategoryGroupReference データカテゴリグループまたはカテゴリの一意名への参照。「DataCategoryGroupReference データ型」 を参照してください。
email メールアドレス。「email データ型」を参照してください。
encryptedstring 暗号化されたテキスト項目には、暗号化書式で格納された文字、数字、または記号の組み合わせを入力できます。最大文字数を 175 文字までに設定できます。API バージョン 11.0 以降で使用できます。
ID オブジェクトの主キー項目。「ID データ型」を参照してください。

.NET や WSC などのほとんどの Web サービスツールでは、API WSDL (Enterprise または Partner) で定義されたシンプルな ID 型を文字列に対応付けます。ただし、その他のツールでは、シンプルな ID 型を表すのに特定の ID クラスを生成します。詳細は、Web サービスツールキットのドキュメントを参照してください。

メモ

JunctionIdList 基盤となる連結エンティティの多対多リレーションを表す参照 ID 値の文字列配列。1 回の API コールで基盤となる連結エンティティをクエリおよび操作するには、文字列配列をクエリおよび操作します。「JunctionIdList データ型」を参照してください。

JunctionIdList 項目名を fieldsToNull プロパティに追加すると、関連するすべての連結レコードが削除されます。このアクションは元に戻すことができません。

警告

location 地理位置情報項目の緯度と経度の値を含む複合データ型。「地理位置情報の複合項目」を参照してください。
masterrecord レコードがマージされた場合、保存されたレコードの ID (他のレコードは削除されます)。
multipicklist 複数の値を選択可能な列挙型値のセットを含んだ複数選択の選択リスト。「multipicklist データ型」を参照してください。
percent パーセント値。「percent データ型」を参照してください。
phone 電話番号。値には英字を含めることもできます。電話番号の書式は、クライアントアプリケーションが指定します。「phone データ型」を参照してください。
picklist 1 つの値を選択可能な列挙型値のセットを含んだ複数選択の選択リスト。「picklist データ型」を参照してください。
reference 別のオブジェクトへの相互参照。SQL の外部キー項目に似ています。「reference データ型」を参照してください。
textarea 複数行のテキスト項目として表示される文字列。「textarea データ型」を参照してください。
url URL 値。通常クライアントアプリケーションでは、URL はハイパーリンクとして表示されます。「url データ型」を参照してください。

データ型はプリミティブデータ型を拡張します。これらのデータ型の多くはメタデータで明示的に指定された一般的なデータ型変換に従います。ただし、データ型によっては独自の特徴のあるものもあり、クライアントアプリケーションで使用する前に理解しておかなければなりません。

これらのデータ型は、標準項目とカスタム項目の両方に適用されます。DescribeSObjectResult の fields プロパティに記述されている、Field データ型の type 項目で列挙されています。

数値項目によっては、精度と桁に制限があります。また、いくつかのテキスト項目には長さの制限があります。これらの制限は、create() または update() でオブジェクトを作成または更新するときに適用されます。ただし、API はこの制限に影響を受けないデータを返す可能性があります。

メモ

anyType データ型

anyType データ型は動的であり、関連する項目によって stringdatenumberboolean のいずれかを返します。たとえば、SOAP メッセージの要素には項目が string 型の場合、xsi:type="xsd:string" 属性があります。このデータ型は、NewValue および OldValue 項目の履歴オブジェクトで使用されます。また、fieldType および soapType の有効なデータ型でもあります。

ほとんどの SOAP ツールキットは、この要素を適切なネイティブ型に並列化します。

メモ

calculated データ型

calculated 項目は、API の参照のみ項目です。これらの項目は、他の項目、式、または値から値を取得するアルゴリズムである数式で定義されています。これらの項目は SOQL で絞り込むことができますが、複製することはできません。calculated 項目のテキストの長さは 3900 文字以下で、この長さを超えたものは切り捨てられます。

calculated 項目は、Salesforce ユーザインターフェースでは数式項目と呼ばれます。

comboBox データ型

コンボボックスとは、リストに指定されていない値をユーザが入力できる選択リストです。コンボボックスは文字列として定義されます。

currency データ型

currency 項目には、Campaign の ExpectedRevenue 項目のように通貨の値が格納され、double 型として定義されます。

マルチ通貨が有効になっている組織では、currency 項目を持つすべてのオブジェクトで CurrencyIsoCode 項目が定義されています。CurrencyIsoCode 項目と currency 項目は特別な形でリンクされています。特定のレコードで、CurrencyIsoCode 項目はそのレコードの通貨を定義します。したがって、レコードのすべての currency 項目の値はこの通貨で表されます。

ほとんどの場合、お客様はオブジェクトの CurrencyIsoCode 項目と currency 項目のリンクについて考える必要はありません。ただし、次の点に留意してください。

  • CurrencyIsoCode 項目は、複数通貨サポートを有効にしている組織にのみ存在します。
  • ユーザインターフェースで通貨の値を表示するとき、それぞれの通貨の値の先頭に CurrencyIsoCode の値と空白の区切り文字を付けることをお勧めします。
  • CurrencyIsoCode 項目は制限つき選択リスト項目です。CurrencyType オブジェクトで定義された設定可能な値は、組織ごとに異なる場合があります。組織で定義されていない値を設定しようとすると、操作が拒否されることがあります。
  • オブジェクトの CurrencyIsoCode 項目を更新すると、そのオブジェクトのすべての通貨の値が暗黙的に新しい通貨コードに変換されます。この項目は、Salesforce ユーザインターフェースで組織に対して定義された変換レートを使用します。その同じ update() コールで通貨の値を指定した場合、指定した新しい通貨の値は換算されずに新しい CurrencyIsoCode 項目値に設定されます。
  • CurrencyIsoCode 項目の選択リストの値は、Salesforce に表示されているラ��ルと完全には一致しません。

通貨の変換を行うには、クライアントアプリケーションから CurrencyType オブジェクトの CurrencyIsoCode を参照します。

DataCategoryGroupReference データ型

データカテゴリグループには、Salesforce ナレッジの記事のアンサー機能の質問を分類するカテゴリがあります。すべての記事および質問オブジェクトには、DataCategoryGroupReference 型の項目が 2 つあり、それぞれカテゴリグループとカテゴリ一意名が含まれます。describeDataCategoryGroups() および describeDataCategoryGroupStructures() コールを使用して、カテゴリグループとこれらのオブジェクトに関連付けられているカテゴリを取得できます。

email データ型

email 項目にはメールアドレスが格納されます。クライアントアプリケーションは、create() および update() コールで有効で適切な形式のメールアドレスを指定する必要があります。

ID データ型

例外はあるものの、API のすべてのオブジェクトに ID データ型の項目があります。これは Id という名の項目であり、オブジェクトのレコードごとに一意の識別子を含みます。これは、リレーショナルデータベースの主キーに似ています。create() で新しいレコードを作成すると、Web サービスは、組織のデータ内で一意となるようにレコードの ID 値を生成します。ID 項目に update() コールは使用できません。ID 値は変わることはないため、その後は API コールから ID 値を指定してレコードを参照できます。また、ID 値にはオブジェクトの種別を識別する 3 文字のコードが含まれます。クライアントアプリケーションは describeSObjects() コールでこのコードを取得できます。

カスタムオブジェクトを含む特定のオブジェクトには 1 つ以上の reference データ型の項目があり、関連するレコードの ID 値が格納されます。これらの項目の名前の最後には「-Id」と付けられています。たとえば、取引先オブジェクトの OwnerId などです。OwnerId にはオブジェクトの所有者の ID が含まれてます。Id という名前の項目とは異なり、reference 項目は外部キーに似ており、update() コールで変更できます。詳細は、「reference データ型」を参照してください。

retrieve()delete() など、一部の API コールは、ID の配列をパラメータとして受け入れます。配列では各要素が取得または削除する行を一意に識別します。同様に、update() コールは sObject レコードの配列を受け取ります。各 sObject に Id 項目があり、sObject を一意に識別します。

Salesforce ユーザインターフェースの ID 項目は、base-62 の文字を 15 個含み、大文字と小文字を区別します。15 個の文字にはそれぞれ数字 (0-9)、英小文字 (a-z)、英大文字 (A-Z) を指定できます。2 つの一意の ID の違いが、大文字小文字の違いのみの場合があります。

Access などの一部のアプリケーションは、50130000000014c と 50130000000014C が異なる ID であることを認識しません。そのため、すべての API コールで、大文字と小文字を区別しない 18 文字の ID が返されます。18 文字の ID は、Lightning Platform API でそれぞれの ID の末尾に文字を付け加えることで生成されます。18 文字の ID は、大文字と小文字を区別しないアプリケーションでも一意な識別が可能で、データの作成、編集、削除の API コールで使用できます。

18 文字の ID を 15 文字のバージョンに変換するには、最後の 3 文字を切り捨てます。Salesforce は 18 文字の ID の使用をお勧めしています。

.NET や WSC などのほとんどの Web サービスツールでは、API WSDL (Enterprise または Partner) で定義されたシンプルな ID 型を文字列に対応付けます。ただし、その他のツールでは、シンプルな ID 型を表すのに特定の ID クラスを生成します。詳細は、Web サービスツールキットのドキュメントを参照してください。

メモ

JunctionIdList データ型

API バージョン 34.0 以降では、JunctionIdList データ型を使用して、エンティティの多対多リレーションを直接操作できます。基礎となる連結エンティティレコードを操作する必要はなくなりました。JunctionIdList 項目は、エンティティの他の項目と同様にクエリや更新ができます。JunctionIdList 項目へのクエリまたは更新は、基礎となる連結エンティティレコードへのクエリまたは更新として動作します。データ型 JunctionIdList の項目は、WSDL に ID 型の無制限の配列として表示されます。

他の項目と同様に JunctionIdList 項目を照会します。TaskWhoIds JunctionIdList 項目を含む SOQL クエリの例を次に示します。

1SELECT Id, Subject, TaskWhoIds 
2FROM Task
3WHERE LastModifiedDate > LAST_WEEK

multipicklist データ型

照会するいずれかの項目が JunctionIdList データ型の場合、1 つの SOQL クエリで照会できるレコードの総数が 500 を超えることはできません。返されたレコード数が 500 を超える場合、「EXCEPTION: System.UnexpectedException: Truncated (EXCEPTION: System.UnexpectedException: 切り捨て)」が表示されます。

この制限は、(エンティティレコードの総数) * (エンティティの JunctionIdList 項目内のレコードの総数) <= 500 で表されます。

たとえば、EventWhoIds JunctionIdList 項目を照会してイベントのリストを取得するとします。101 件のイベントがあり、各イベントの EventWhoIds JunctionIdList に 5 件のレコードが含まれます。つまり、SOQL クエリは合計で 505 件のレコードを照会し、500 の制限を超えるため、例外が発生します。

メモ

multipicklist 項目には、ユーザが複数のデータを選択可能な 1 つ以上のデータのリストが含まれます。データの 1 つをデフォルトデータに設定できます。選択は、セミコロンで区切られた一連の属性の文字列として保持されます。たとえば、クエリを実行すると、複数選択の選択リストの値が「1 つ目の値 ; 2 つ目の値 ; 3 つ目の値」として返されます。複数選択リストのクエリの詳細は、『Salesforce SOQL および SOSL リファレンス』の「複数選択リストのクエリ」を参照してください。

percent データ型

percent 項目にはパーセント値が含まれます。パーセント��目は double データ型として定義されます。

phone データ型

phone 項目には電話番号が格納されますが、番号には英字を含めることができます。電話番号の書式は、クライアントアプリケーションが指定します。

picklist データ型

picklist 項目には、ユーザが単一のデータを選択可能な 1 つ以上のデータのリストが含まれます。Salesforce ユーザインターフェースのドロップダウンリストとして表示されます。データの 1 つをデフォルトデータに設定できます。

DescribeSObjectResult に関連付けられた Field オブジェクトでは、restrictedPicklist 項目は、選択リストが制限されているかどうかを定義します。API は、create() または update() で推奨 (非制限) 選択リスト項目の値リストを適用しません。PicklistEntry のない非制限選択リスト項目を挿入するには、システムは「無効な」選択リストを作成します。この値は、Salesforce ユーザインターフェースで選択リストの値を追加すると「有効な」選択リストとなります。

無効な選択リストを新たに作成する場合、API は一致があるかどうかを確認します。この確認は大文字と小文字を区別しません。

DescribeSObjectResult に関連付けられた Field オブジェクトで、項目には、picklistValues 項目の配列が含まれます (PicklistEntry オブジェクト)。各 PicklistEntry はデータのラベル、値、選択リストのデフォルトデータであるかどうかを定義します (選択リストのデフォルト値は 1 つだけです)。

列挙型の項目では、ラベルのユーザ言語へのローカライズをサポートしています。たとえば、Account の Industry 項目の「Agriculture」という値はさまざまな言語に翻訳できます。列挙型の項目の値自体は固定であり、ユーザの言語に応じて変更されることはありません。ただし、それぞれの値固有の「ラベル」項目があり、その値のローカライズされたラベルが設定されています。項目を挿入または更新する場合は、必ず値を使用してください。query() コールは常にラベルではなく値を返します。ユーザインターフェースでユーザに値を表示する場合は、describeSObjectResult 内の値に対応するラベルを使用してください。

API は、CaseStatus、ContractStatus、LeadStatus、OpportunityStage、PartnerRole、SolutionStatus、TaskPriority、TaskStatus について、特定の選択リストの取得をサポートしています。選択リストの値は、それぞれのオブジェクト名に対応しています。これらの選択リストのエントリは、状況が変換されたかどうかなど常に他の情報を指定します。クライアントアプリケーションは、これらのどのオブジェクト (CaseStatus など) に対しても query() コールを呼び出して選択リストの値セットを取得できます。その後、その情報を他のオブジェクト (Case オブジェクトなど) の処理で使用し、そのオブジェクト (ケースなど) の詳細な情報を取得できます。これらのオブジェクトは、API では参照のみがサポートされます。選択リストのデータの変更には、Salesforce ユーザインターフェースを使用する必要があります。

reference データ型

reference 項目は、別のオブジェクトの一意なレコード (通常は親レコード) を示す Id を含みます。reference 項目は、リレーショナルデータベースの外部キーの概念に似ています。命名規則では、reference 項目の名前の末尾は Id という文字です ( CaseId または OpportunityId など)。たとえば、OpportunityCompetitor オブジェクトで、OpportunityId 項目は Opportunity オブジェクトを示す reference 項目です。この項目には、Opportunity レコードを一意に識別する ID 値が含まれます。

場合によって、オブジェクトは同じ種別の別のオブジェクトを参照できます。たとえば、Account は別の Account を示す親リンクを含むことができます。

Event オブジェクトと Task オブジェクトは、共に、WhoIdWhatId という相互参照型の ID 項目を含んでいます。これらの項目はそれぞれ、他のオブジェクトの 1 つを参照します。WhoId 項目は Contact または Lead を参照し、WhatId 項目は Account、Opportunity、Campaign、Case を参照します。また、WhoId 項目が Lead を参照している場合、WhatId 項目は空でなければなりません。

相互参照されるオブジェクトは、個々に記述して、照会することができます。クエリを実行すると、適切な種類のオブジェクトの ID が返されます。そのクエリの id 項目を使用し、その ID へのクエリを実行しオブジェクトについての詳細情報を取得できます。

相互参照型の ID 項目の値は次のいずれかになります。

  • 組織で有効なレコード
  • 空の参照を示す空の値

項目の値が null でない場合、組織内のオブジェクトであることが保証されます。ただし、そのオブジェクトへのクエリの実行は保証されません。「すべてのデータの参照」権限を持つユーザは、いつでもそのオブジェクトへのクエリを実行できます。その他のユーザは、参照オブジェクトの表示または編集が制限される可能性があります。

create() または update() コールで相互参照型の ID 項目の値を指定する場合、その値は ID データ型の有効な値でなければなりません。また、ユーザにはそのオブジェクトへの適切なアクセス権が必要です。正確な要件は項目ごとに異なります。

textarea データ型

textarea 項目には、4000 バイト以上のテキストを含めることができます。string 項目とは異なり、textarea 項目は query() コールの queryString の WHERE 句には指定できません。この項目でレコードを絞り込むには、QueryResult でのレコード処理で絞り込まなければなりません。この制限のある項目の場合、Field 型の filterable 項目 (DescribeSObjectResult の fields プロパティで記述) が false となります。

url データ型

url 項目には URL が含まれます。クライアントアプリケーションは、create() および update() コールで有効で適切な形式の URL を指定する必要があります。