-
SalesforceレコードIDの15桁と18桁は相互に変換できる
- 2021年5月28日
- Salesforce
SalesforceレコードID (SFID) には15桁と18桁の2種類があり、同一のレコードに対してどちらの種類のIDも存在します。
異なるのは、末尾の3桁だけです。
a1z9D000000ABTH
a1z9D000000ABTHQA4
(IDはサンプル)
18桁の方は後発で、世の中に大文字小文字の区別をしないRDBMSがあるために生まれました。
すなわち、15桁の方は大文字小文字の区別をもって一意とし、18桁の方は大文字小文字の区別なく一意となります。
増えた3桁は、15桁のSFIDの何桁目が大文字であるかを保持しています。
18桁→15桁
上記のような所以なので、末尾3桁を削除すればOKです。
15桁→18桁
増えた3桁は15桁のSFIDの何桁目が大文字であるかを表すので、15桁のSFIDから算出することができます。
やっていることは、
- 5桁ずつ3ブロックに分ける
- 1ブロックにつき、その中の何桁目が大文字であるかを表す1文字を算出
- それぞれ16, 17, 18桁目に追加
これだけです。
先述の a1z9D000000ABTH
を例に実際にやってみます。
1. 15桁のSFIDを5桁ずつ3ブロックに区切る
a1z9D / 00000 / 0ABTH
2. 各ブロックについて対応する文字を算出
3. くっつける
a1z9D / 00000 / 0ABTH / Q / A / 4
→ a1z9D000000ABTHQA4
参考(Salesforceヘルプ)
- Salesforce での一意のレコード ID の特定
- レコード ID を 15 文字から 18 文字に変換する
- ミニマイズされたブックマークレットがあります。prettierとかに突っ込むと、上記の処理をビットシフトを使ってうまくやっているのを見ることができます
この記事を書いた人 : 池上龍一
スタッフブログタグ:
AWS bluebird css CSV docker docker compose electron ES6 es2015 Git Heroku ITコンサルティング JavaScript justinmind less mongoDB Node.js php PostgreSQL Private Space Promise React react-router reactjs Salesforce scss Selenium Builder selenium IDE Selenium WebDriver stylus TypeScript VirtualBox VisualStudioCode vue vuejs webpack システム開発プロジェクト セキュリティ ワイヤーフレーム 上流工程 卒FIT 帳票 要件定義 設計 電力小売業界
一覧へ戻る
AWS bluebird css CSV docker docker compose electron ES6 es2015 Git Heroku ITコンサルティング JavaScript justinmind less mongoDB Node.js php PostgreSQL Private Space Promise React react-router reactjs Salesforce scss Selenium Builder selenium IDE Selenium WebDriver stylus TypeScript VirtualBox VisualStudioCode vue vuejs webpack システム開発プロジェクト セキュリティ ワイヤーフレーム 上流工程 卒FIT 帳票 要件定義 設計 電力小売業界