Salesforceの外部IDによるデータローダの参照関係更新、使い方をご紹介
IT・技術関連
更新日:2024.09.05


Salesforceの外部IDとは?
Salesforceにおける外部IDとは、外部システムの一意のレコード識別子を含む、カスタム項目です。データロード時の名前解決や外部システムのID参照に使用できます。
以下の項目を設定できます。
・自動採番項目
・メール項目
・数値項目
・テキスト項目 25 項目まで
外部IDの活用例、メリット

データインポートの重複防止
データインポートウィザードを実行する際、Salesforce内に登録されている、インポートファイルのデータと同一の外部IDの値をもつレコードを検出します。これにより、重複したレコードが作成されるのを防止できます。外部IDの活用例:データロード時の名前解決
Salesforceでは、オブジェクトIDを参照してレコードを取得可能です。しかし、組織ごとに割り振られるオブジェクトIDの性質上、組織間で共有する情報については、組織ごとのマスタが必要になってしまいます。この問題を、外部IDの活用で解決できます。オブジェクトIDは組織をまたいで参照できない
Salesforceでは、全てのオブジェクトに対して、オブジェクトIDという15桁もしくは18桁の文字列が割り当てられます。オブジェクトIDは、オブジェクトが生成された時に採番されるユニークなIDで、オブジェクトの新規作成やデータをロードした際に割り振られます。 オブジェクトIDを任意で指定することはできず、割り振られないとわかりません。 例えば、取引先責任者などの複数の組織で共通するデータを保持する項目でも、それぞれの組織で、ユニークなオブジェクトIDを持つことになります。参照項目がある場合は、各組織のオブジェクトIDが反映されます。 そのため、複数の組織をまたいで、オブジェクトIDによる参照を行うことはできません。一旦エクスポートして再ロードでは手間がかかる
これを解決するためには、オブジェクトIDが振られた後に一旦データをエクスポートし、参照項目にオブジェクトIDを埋め込んで、再度ロードするという手順が必要になります。外部IDの活用で解決できる!
外部IDの活用によって、この問題を解決することができます。マスタのIDとして外部IDを定義することで、データロード時にオブジェクトIDの名前解決が可能です。 ロード時の参照先に外部IDを指定しておくと、データがロードされた際に参照されます。外部IDを設定しないと使用できません。これによって、組織に依存しないマスタ管理を実現できます。外部IDの活用例:Upsertのキーとして使用
データローダを実行する際、外部IDをUpsert(更新/挿入)のキーとして指定可能です。以下の通り、外部IDを使用して、新規レコード作成、既存レコード更新のいずれかを判別します。 ・外部IDが一致しない → 新規レコードを作成する ・外部IDが一度だけ一致した → 既存レコードを更新する ・外部IDが複数回一致した → エラー 作成も更新もなし この方法でデータインポートする手順について、次項で詳しくご説明します。外部ID項目を使ったデータインポートの手順

事前準備
データローダを使用してデータをインポートするために、必要となる事前準備をご説明します。データローダは、Salesforceレコードを一括処理できるクライアントアプリケーションです。データローダでは、以下の操作を行えます。 ・インポート(挿入、更新、削除) ・エクスポート CSV ファイル①データローダを準備できていない場合
Salesforceの設定画面からダウンロードできます。 ・Salesforce Classic [設定] → [管理] → [データ管理] → [データローダ] ・Lightning Experience ギアアイコン → [設定] → [インテグレーション] → [データローダ]②インポートファイル(CSV形式)を用意する
外部ID項目とインポートデータを記載したCSVファイルを作成しておきます。ここでは、取引先を特定するIDとして「取引先コード」を使用します。 例) 外部ID項目の値:取引先コード インポートするデータ:取引先責任者1)外部ID項目を設定する
データローダでUpsertを実行する際に、レコードを関連づけるのが外部IDです。外部IDが共通するレコード同士を関連づけることができます。対象となるレコードに外部ID項目を作成し、入力する必要があります。①外部IDとなるカスタム項目を作成する
取引先には「取引先番号」という項目が用意されていますが、この項目には外部IDを追加できません。新規に、外部IDとなる項目を作成しなければなりません。ここでは、外部ID項目を「取引先コード」という名称で作成し、以下の通り選択していきます。 ・データ型 テキスト <一般的なオプション> ・必須 ・ユニーク 値の重複を許可しない。 「ABC」と「abc」を値の重複として扱う(大文字と小文字を区別しない)を選択する。 ・外部ID 外部システムの一意のレコード識別子として設定する。②外部ID(取引先コード)の値を入力する
①の項で作成した、外部ID項目(取引先コード)に値を入力します。この「取引先コード」がUpsertのキーとなります。 この作業も、データローダを使用してインポートすることが可能です。2)データをロードする
データローダを使用して、データ(取引先責任者の情報)のインポートを開始します。データローダを使用する際は、万が一に備えてデータのバックアップをとりましょう。 バックアップが完了したら、データローダを起動してUpsertを選択します。①Select data objects
登録先のオブジェクトとして「取引先責任者」を選択し、インポートファイルを指定します。新規登録の場合は、既存情報とのマッチング項目を指定する必要はありません。②Choose your related Objects
Upsertのキーとして、外部ID項目(取引先コード)を指定します。選択候補として、IDが表示される中に、外部ID項目(取引先コード)が含まれているでしょう。 これで、取引先責任者の項目と外部ID項目が関連づけられます。③Mapping Dialog
CSVのデータ「取引先責任者」のマッピング先として、該当するSalesforce上の項目を指定します。(ドラッグ&ドロップ) これで、外部ID項目(取引先コード)を参照して、インポートするデータ(取引先責任者)を取得するよう指定されました。④Finish
以上で、データインポートの手順は完了です。外部ID項目(取引先コード)に紐づくデータ(取引先責任者)が「取引先」に登録されました。 選択候補から、インポート結果の保存先を指定して終了します。外部IDを使用する際の注意点

APIの外部IDは大文字小文字を区別できない
外部IDの項目では、全角、半角、大文字、小文字が区別され、すべて使用できるようになっています。しかし、Upsertを含むAPIで返される外部IDでは、これらが区別されません。<解決策>
外部IDとして入力する文字に制限を設けることで、大文字、小文字の混在を避けられます。外部ID項目(カスタム項目)を作成する際、一般オプションで選択できます。 例)半角、小文字のみデータローダでは自動採番項目を外部IDとして使用できない
外部IDでは自動採番項目を設定できることになっていますが、データローダでUpsertを実行する際には、自動採番項目を選択できません。 データローダでは、自動採番の項目の作成および更新ができないため、表示されません。これはInsertエラーを防止するための仕様です。<解決策>
この問題には、主に以下の3つの解決策が考えられます。 1,APIに追加プログラムを実装する。 2,Apexトリガ、ワークフロールール、プロセスビルダーなどの自動化ツールを利用する。 ①外部キーとして使用したい自動採番の値を、テキスト型の項目にセットします。 ②自動採番の値と同じ値が保持されたテキスト型項目を、外部キーとして設定します。 3,自動採番からテキスト型に切り替える。 ①データローダを実行する際に自動採番項目をテキスト型に切り替えます。 ②実行後、自動採番に戻します。外部IDの制限

外部ID項目(カスタム項目)はオブジェクトあたり25個まで
カスタム項目として作成できるのは、オブジェクトごとに25個が上限となっています。 さらに、API、データインポートウィザードを使用する際、重複を避けるために [一意の] を選択した項目もカスタム項目としてカウントされますので、注意が必要です。 但し、Salesforceによってバックグラウンドで自動的に発生するカスタムインデックスはカウントされません。 追加の外部IDが必要となった場合には、Salesforceサポートに外部ID数の拡張をリクエストすることができます。外部オブジェクトでは使用できない
外部IDは、外部オブジェクトでは使用できません。外部オブジェクトには、[外部ID] 標準項目があり、外部オブジェクトが外部参照関係の親となる場合には、子レコードの識別に使用されます。多態的な項目では関連づけができない
外部IDが対応していない項目があります。多態的な項目は関連づけることができません。 ・標準の活動オブジェクトの関連先 (WhatId) 項目 ・名前 (WhoId) 項目 ・カスタムオブジェクトの所有者項目 など外部IDの活用でデータの移行、連携がスムーズに!

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。