SalesforceのレコードIDの15桁と18桁の違いと、数式のカスタム項目によるコンバート
#Salesforce #カスタム項目 #コンバート #レコードID
目次
SalesforceのレコードIDには15桁と18桁が存在しています。
本記事では15桁IDと18桁IDの違いや、15桁IDと18桁IDのコンバート方法について解説します。
SalesforceのIDには15桁と18桁が存在する
SalesforceにはすべてのレコードにIDが付与されています。
実はこのレコードIDには15桁のものと18桁のものが存在します。
レコードIDの15桁と18桁の違い
レコードIDの15桁と18桁の違いは下記のとおりです。
■15桁ID:大文字・小文字の区別あり
(例:0017F00000okECd)
■18桁ID:大文字・小文字の区別なし
(例:0017F00000okECdQAM)
15桁と18桁どちらのIDも同一のレコードを指し示すものになります。
レコードは18桁IDで動作して15桁IDで動作しないケースもある
レコードには、15桁と18桁両方のIDが利用できる状態ならではの問題があります。Salesforceの機能によっては15桁IDではうまく動作せず、18桁IDでしか正常動作しないケースもありました。
たとえば、Lightningコンポーネントの「lightning:input」における場合です。
- 主従関係や参照関係のinputのvalueにIDをセット
- 自動的にルックアップが起動して値が反映
- 結果:15桁ID動作なし・18桁ID正常動作
「lightning:input」の場合はこのようにトリッキーな結果を出す可能性のある仕様になっています。Salesforceの仕様は変わるため修正される可能性もあります。現状の15桁IDと18桁IDのどちらも常に使える状態だと開発や検証に役立ちます。
カスタム項目による2パターンの表示
数式のカスタム項目では、15桁ID表示と18桁IDの2パターン表示を実現します。
カスタム項目による2パターンの表示は、ノンコーディングで簡単に実現可能です。利用するのは数式項目の関数のみとなります。
取引先でサンプルを作成
カスタム項目による2パターンの表示の例として、「取引先」でサンプルを作成していきます。
はじめに、15桁IDを表示するカスタム項目を作成します。「項目とリレーション」から「新規」で、新たな項目の作成です。
データ型にて「数式」を選択して「次へ」をクリックします。
「項目の表示ラベル」と「項目名」を入力します。(今回は『Id15』に設定)「データ型」の『テキスト』を選択して「次へ」をクリックします。
数式は単純に、[Id]となります。
取引先を手打ちで作成
カスタム項目による表示は、手打ちでも可能です。あえて「項目の挿入」を使う場合は、次の手順になります。
- 「取引先」画面の取引先 IDから「挿入」を選択
- 数式を入力
- 「次へ」を選択
項目レベルセキュリティを適切に設定して「次へ」を選択します。
ページレイアウトへの追加を適切に設定して「保存」で作成完了です。
※あえて表示しなくてもよいケースがほとんどだと思います。今回はテスト表示のためのページレイアウトとして追加しました。
次に18桁IDを表示するカスタム項目を作成します。数式までは15桁IDと同じなのです。数式には、[CASESAFEID(Id)]と入力します。関数の「CASESAFEID(id)」は、15IDを18IDに変換します。
その後も同じ手順で保存まで進みます。すると、15桁ID表示用のカスタム項目と18桁ID表示用のカスタム項目の完成です。
取引先のレコードでテスト
できあがったカスタム項目を取引先の適当なレコードで表示してみると、問題なく15桁IDと18桁IDが表示されています。
SalesforceのレコードIDの15桁と18桁の違い
SalesforceのレコードIDの15桁と18桁は、末尾3桁のみが違うだけです。15桁と18桁の違いを比較してみましょう。
15桁:大文字小文字で区別
18桁:大文字小文字で区別しない
上記の違いを利用して次のような変換が可能です。
18桁から15桁への変換:末尾3文字の削除のみで可能
15桁から18桁への変換:増えた3文字に関して桁内の大文字判定を表示
15桁のレコードIDから次のように算出されます。
- 5桁ごとのブロックが3つ作成される
- 1ブロックごとに何行目が大文字か、表示される1文字を算出
- 算出したブロックごとの1文字を16桁目、17桁目、18桁目に分配
上記の流れでSalesforceのレコードIDの15桁と18桁を相互に変換できます。
今回のまとめ
今回ご紹介した例は、SalesforceのレコードIDが15桁と18桁が混在する特殊な仕様ならではのTipsです。意外と利用するシーンは多いのではないでしょうか。
思ったように動作しないで困った場合は、ID関係を疑ってみるのも解決法のひとつとなるでしょう。
ApexやVisualforce、Lightningコンポーネントのコーディングの際は、必要に応じてID変換のコードを書いても問題ありません。
毎回書くのが面倒であれば、数式項目で用意することで使い回しも効いて利用も簡単です。
弊社ではSalesforceの支援も行っております。ご相談に対しても対応が可能ですので、是非お気軽にお問い合わせください。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら