S.B.S. Salesforce技術ブログ

教えて921さん!

データインテグレーションルールの緯度経度がずれる!?

こんにちは、Nambuです。
今回はデータインテグレーションを使用して緯度経度情報を取得した際にその値が住所の場所とずれてしまう現象について解説したいと思います。

データインテグレーションルールとは

まず初めにデータインテグレーションルールの機能について簡単に説明したいと思います。データインテグレーションルールを有効にするとSalesforceのレコードがデータサービスと照合されるようになり、取引先や取引先責任者などの住所項目に値を入れれば自動で緯度経度を取得できる機能です。

今回発生した事象について

今回私はこのデータインテグレーションルールを用いて緯度経度情報を入手し、以下のライトニングコンポーネント「Map」に利用していました。 developer.salesforce.com

ある時、このMap上でピンが立っている位置と住所に入力した場所とで差が発生していることに気が付きました。そこで、数式型で項目を作り表示された緯度経度の値で地図検索をするとやはり住所に入力した場所からはずれていました。
何故ずれているのかわからなかったので、一旦自分のデベロッパー環境でも同じように緯度経度情報を取得してみました。すると、今度の値は住所に入力した場所とずれていないのです。ここで途方に暮れてしまった私はSalesforceのサポートに問い合わせることにしました…

後日談というか今回のオチ

このお問い合わせをしてから約1カ月がかかりましたが原因は判明しました。結論から言うと組織のインスタンスが関係していたようです。
Salesforce組織を動作させるアーキテクチャにはファーストパーティデータセンターとHyperforceがあります。この2つの組織では元々別の緯度経度が取得出来る仕様でしたが、それは建物の中央の緯度経度か建物の隅の緯度経度かくらいの差でした。しかし、Hyperforceで緯度経度を求めるのに使っているデータベースの登録情報が不適切なことがあるようです。
つまり、ファーストパーティデータセンターとHyperforceではそもそも異なる緯度経度が得られる、その上Hyperforceではデータベースの情報が不適切なためおかしな緯度経度が取得されるということでした。
なお、今回のお問い合わせを基に既知の問題サイトに情報が登録されたので気になる方は以下のリンクから確認してみてください。

trailblazer.salesforce.com



最後に2つの組織の見分け方も載せておきます!なお、Salesforceにて組織を確認する方法ですが、本番環境であれば「設定」→「組織情報」→「インスタンス」。Sandbox環境であれば同じくインスタンスを一つずつ確認するか、本番環境にて「設定」→「Sandbox」→「場所」で確認できます。

・ファーストパーティデータセンター: 本番であれば「NA」など、Sandbox であれば「CS」などで始まる
・Hyperforce: 本番、Sandbox ともに「JPN」などで始まり、Sandbox の場合末尾に「S」がつく


今回はこのくらいで、また会いましょう!