menu
%}

Salesforce IDの15桁と18桁の違いとは?

 2023.02.28 support_service_staff

こんにちは!アドミニストレーターのОです。
サークレイスに入社してから1年経ちますが、まだまだ学ぶことが多い日々を送っています。

ところで皆さん、Salesforceには各レコードを識別するための「Salesforce ID」がありますが、どの程度ご存じでしょうか?
Salesforceのシステム管理者の方であれば「あぁ!あの15桁と18桁のIDのことでしょ?」と、誰でも知っていると思いますが、そのしくみや18桁が生成されている理由等については意外と知られていないと思います。 

ちょっとマイナーな内容ですが、なかなか奥深いので、今回はSalesforce IDの取得、変換方法とあわせてSalesforce IDのしくみについてご紹介したいと思います!

Salesforce IDとは

Salesforce IDとは、レコードの作成時に自動生成される英数字で構成された15桁または18桁の一意の識別子になります。つまり、その識別子(=Salesforce ID)があれば、何のオブジェクトでどのレコードかを特定することができます。

◆URLからSalesforce IDを確認する
開いているレコードページからSalesforce IDが確認できます。
※Lightning Experienceでは18桁、Classicでは15桁

 

◆URLからSalesforce IDを入力してレコードページを開く
15桁でも18桁でも、どちらで入力しても開くことができます。


 

◆Salesforce IDの先頭3桁からどのオブジェクトのレコードか判断する
IDの先頭3桁はオブジェクト固有のものになります。(KeyPrefix)
よってIDの先頭3桁からどのオブジェクトのレコードかを判断することができます。

例)
0012v00003DjJcTAAV    ・・・001=取引先
0032v00000B3cVeAAJ   ・・・003=取引先責任者
0062v00000Cb3zMAAR ・・・006=商談

IDの先頭3桁のKeyPrefixの一覧の取得は開発者コンソール等から取得することができます。
SOQLクエリ↓

SELECT QualifiedApiName,Label,KeyPrefix FROM EntityDefinition

 

Salesforce IDの15桁と18桁の違いと注意

18桁のIDは、大文字小文字の区別をしないRDBMS(リレーショナルデータベース管理システム)が世に出たことにより、大文字小文字を区別する15桁では対応できないため、誕生したそうです。
Salesforceのヘルプなどで、「15桁は大文字小文字を区別する、18桁は大文字小文字を区別しない」とあるため誤解されがちですが、18桁のSalesforce IDは大文字と小文字を区別しないわけではありません
大文字小文字を区別できる場合は15桁でレコードを特定でき、大文字小文字を区別できない場合は18桁でないとレコードを特定できないということです。

・15桁:大文字小文字を区別する
 例)①0012v00003DjJc
   ②0012v00003DjJct
   →上記2つはそれぞれ異なるレコードとして識別されます。

・18桁:大文字小文字を区別しない 
 例)①0012v00003DjJcTAAV
   ②0012v00003DjJcTAAv
   →手動で大文字と小文字を変換した②のIDはエラーとなります。

IDの15桁と18桁の違いに関する詳細は、『SOAP API 開発者ガイド』の「ID データ型の15 文字と 18 文字の ID および大文字と小文字の区別」を参照してください。

Salesforceのシステム管理者として注意したいところは、Excelでの検索や関数(VLOOKUPなど)を使用してSalesforce IDをキーにしてデータ加工を行う際に、15桁のSalesforce IDを使用すると関数が大文字小文字を区別できずに間違ったデータが反映されてしまうことです。
大文字小文字を区別できないシステムでSalesforce IDをキーにする場合は必ず18桁のSalesforce IDを使うようにしましょう。

18桁のSalesforce IDの生成工程

18桁は15桁を元に以下の工程で自動生成されます。

①15桁を5桁ずつの3ブロックに分割


②各ブロックを反転する


③各ブロックにて以下の変換を行い、2進数を作成する。
 ・英字大文字を「1」に変換
 ・その他の文字を「0」に変換


④各ブロックごとに2進数を10進数に変換する


⑤以下の「A~5」の文字列を「0(ゼロ)番目~31番目」と見なした場合、
 各ブロックの10進数が何番目のどの文字に該当するかを特定する。



⑥15桁の後ろに特定した文字を追加する。


Salesforce IDの取得方法

Salesforce IDは、以下の方法で取得することができますが、15桁と18桁で取得方法が異なります。

◆15桁のSalesforce IDを取得する方法
  ▪Classic画面のURLで確認する
  レポートでID項目を表示、またはエクスポートする
    →表示項目の検索ボックスに「ID」と入力すると、IDに関する項目名を選択することができます。
  数式で取得する
    数式:Id

◆18桁のSalesforce IDを取得する方法
  ▪Lightning画面のURLで確認する
  ▪数式で取得する
    数式:CASESAFEID(Id)
  ▪データローダでID項目をエクスポートする
  ▪15桁を18桁に変換するツールを使用する
   こちらのSalesforceヘルプ「Salesforce での一意のレコード ID の特定」の追加情報に
   18桁へ変換するコンバータがのリンクがあります。

   また、Salesforceヘルプ「レコード ID を 15 文字から 18 文字に変換する」では、
   ブックマークレットで18桁に変換できるJavaScriptも公開されていいます。

   試してみました!

最後に

Salesforce IDのしくみについてご紹介いたしましたが、いかがでしたでしょうか?
Salesforce IDを理解することで、レコードの作成・更新・削除・検索の作業効率アップにも繋がりますので、ぜひ役立ててみてください。

「設定で長時間悩んでしまう」「効果的に利用できているのかわからない」「運用を任せられる人がいない」など、Salesforceをうまく活用できていないと感じることはありませんか?

サークレイス社の運用保守サービスは、日々のSalesforce運用を力強くサポートします。
Salesforce認定アドミニストレーターが、ちょっとしたお問い合わせ対応から運用を丸ごと任せたいというご要望まで、幅広くお応えいたします。詳しくは以下の特設ページをご覧ください。
 
Salesforce/Account Engagement(旧Pardot)活用相談室-2024