MatchingMapのヘルプは

https://help.co-meeting.co.jp/matchingmap」に移動しました

MatchingMapに表示する求人施設や求職者レコードには地理位置情報が登録されている必要があります。MatchingMapはこれらのレコードの住所情報を用いてGoogle Geocoding APIから取得した地理位置情報(緯度・経度)を保存する機能を提供しています。

この機能には、Apexスケジュールを利用して定期的に実行する「地理位置情報取得バッチ」と、レコードの住所項目が変更されたら起動するレコードトリガーフローから呼び出すことができるApexアクション「MatchingMap 位置情報セット アクション」があります。

このページでは、地理位置情報取得対象となるオブジェクトの設定と、Apexスケジュールに登録する地理位置情報取得バッチの設定方法について解説します。

レコードトリガーフローの設定については、オブジェクト設定を行ったあとに「地理位置情報を取得するレコードトリガーフローを設定する」を参照ください。

※ 本機能は、Salesforce標準のデータインテグレーション機能を使用する場合は設定する必要はありません。

1. 地理位置情報取得バッチが更新する項目について

地理位置情報取得バッチは、求人施設または求職者オブジェクト レコードの住所を地理位置情報に変換する機能を提供しますが、一度地理位置情報の取得に成功したレコードについては、定期実行の度に再取得が実行されないように地理位置情報の取得の成否を保存したり、取得した地理位置情報の精度が悪い場合に住所を見直すために取得結果の精度をレコードに保存することができます。

これらの項目は必要に応じて求職者や求人施設オブジェクトに項目を追加する必要がありますので、地理位置情報取得バッチの設定を開始する前に予めオブジェクトに項目を追加しておくと作業をスムーズにすすめることができます。

以下、地理位置情報取得バッチ設定で指定する項目について解説します。必要に応じてオブジェクトに項目を追加したあと、「2. 地理位置情報取得バッチの設定画面を開く」以降の説明に従って設定してください。

住所を参照する項目

取引先やリードなどの標準オブジェクトの場合は、住所型の項目を使用します。

カスタムオブジェクトには住所型の項目が使えませんので、「〒162-0828 東京都新宿区袋町5丁目1 」のような住所の値が入っている「テキスト型」または「テキストエリア型」の項目か、都道府県、市区町村など項目を分かれている場合はそれを連結して住所の値を返す「数式」項目を作成する必要があります。

・項目の表示ラベル: 任意、例「住所」
・項目名: 任意、例「AddressText」
・データ型: テキスト型、テキストエリア型、数式(テキスト)のいずれか
・文字数: 255

地理位置情報を保存する項目

取引先やリードなどの標準オブジェクトの場合は、住所型の項目に地理位置情報も保存できるので、別途項目を用意する必要はありません。

カスタムオブジェクトを使用している場合は、対象となる求職者・求人施設オブジェクトに「地理位置情報型」の項目を追加します。

・データ型:「地理位置情報」
・項目の表示ラベル: 任意、例「地理位置情報」
・項目名: 任意、例「Geolocation」
・緯度および経度表示の表記法: 「少数」
・小数点の位置:「7」

地理位置情報取得結果を保存する項目 (オプション)

Google Geocoding APIを実行した際に地理位置情報に成功したかどうかの結果を保存する項目です。

この項目に設定された値は、地理位置情報取得が必要かどうかの判定に使用されます。

住所を参照する項目として使用する項目が項目履歴管理の対象として設定されている場合は、設定は必須ではありません。

設定する場合は以下の項目を追加します。

・項目の表示ラベル: 任意、例「地理位置情報取得結果」
・項目名: 任意、例「GeocodingStatus」
・データ型: テキスト型
・文字数: 255

項目には、地理位置情報の取得に成功した場合は「OK」がセットされ、エラーの場合はエラーメッセージが保存されます。

地理位置情報精度を保存する項目 (オプション)

Google Geocoding APIから取得した地理位置情報の精度をレコードに記録します。精度はレポートなどで表示し住所の見直しに使用します。

設定する場合は以下の項目を追加します。

・項目の表示ラベル: 任意、例「地理位置情報精度」
・項目名: 任意、例「GeocodeAccuracy」
・データ型: テキスト
・文字数: 255

地理位置情報精度を保存する項目には、以下のいずれかの値がセットされます。

  • 「ROOFTOP」: 正確な地理位置情報。住所の番地まで特定できた場合。

  • 「RANGE_INTERPOLATED」: 2番目の精度、交差点など正確に特定可能な2地点から補正された近似値。

  • 「GEOMETRIC_CENTER」: 特定可能な道路や地域の中心点。

  • 「APPROXIMATE」: 曖昧な結果。住所の見直しが必要。

  • 「ZERO_RESULTS」: 住所から地理位置情報が取得できなかった場合 (※)。

※ 地理位置情報精度の値はGoogle Geocoding APIの応答に含まれる「geometry.location_type」の値を保存していますが、「ZERO_RESULTS」のみ異なり「status」の値をセットしています。

地理位置情報取得対象とするかを表すチェックボックス項目(オプション)

オブジェクトのレコードの一部がMatchingMapで表示する対象ではない場合、例えば求人施設に取引先オブジェクトを設定していて、取引先には求人施設以外のレコードが含まれている場合、それらを地理位置情報取得対象から除外することができます。

対象オブジェクトにチェックボックス型の項目を用意し、設定した項目の値が「True」のレコードのみ地理位置情報取得の対象とすることができます。

設定する場合は以下の項目を追加します。

・項目の表示ラベル: 任意、例「地理位置情報取得対象」
・項目名: 任意、例「IsGeocodingActive」
・データ型: 数式
・数式の戻り値のデータ型: チェックボックス
・数式: 真偽値を返す数式を入力、例「RecordType.DeveloperName = 'WorkPlace'」

例えば、上記の例で求人施設を表すレコードタイプ「求人施設 (WorkPlace)」であった場合、レコードタイプ名が「WorkPlace」の場合にTrueとなる数式項目を用意します。

2. 地理位置情報取得バッチの設定画面を開く

地理位置情報をセットするオブジェクトとオブジェクトに用意した項目は「MatchingMap」アプリケーション「MatchingMap管理」タブ内の「地理位置情報取得バッチ設定」タブで登録します。

また、「地理位置情報取得バッチ設定」では地理位置情報取得バッチをスケジュールジョブとして登録したり、現在登録されているジョブを確認することができます。

「地理位置情報取得バッチ設定」の画面構成は以下のように、左にオブジェクト設定、右にバッチ実行設定が配置されています。

3. 地理位置情報を取得するオブジェクトを設定する

Google Geocoding APIを利用して地理位置情報をセットする求職者または求人施設オブジェクトを設定する手順について解説します。

「地理位置情報取得バッチ設定」の左側には、地理位置情報取得対象として追加したオブジェクト設定ごとのタブを含みます。

設定が一つもなく新規に開いた場合は、以下のように「新しい設定」のタブのみが表示された状態で表示されます。

以下、新しくオブジェクト設定を登録する手順について説明します。

3-1. 地理位置情報取得対象のオブジェクトを選択

「地理位置情報を取得するオブジェクト」で、地理位置情報をセットするオブジェクトを選択します。

オブジェクトを選択すると以下のプルダウンリストで、選択したオブジェクトの項目を選択できるようになります。

また、オブジェクトにレコードタイプが複数存在する場合は、対象とするレコードタイプを選択することができます。

「すべてのレコード」を選択している場合は、レコードタイプに依らずすべてのレコードが対象となります。

「レコードタイプ」を指定を選択すると、オブジェクトに定義されているレコードタイプを選択可能になり、「選択済みのレコードタイプ」に追加されたレコードタイプが設定されたレコードのみが地理位置情報の取得対象となります。

上記の場合は、レコードタイプ「Bussiness Account」のレコードのみが対象となり、「個人取引先」またはレコードタイプが空のレコードは対象外となります。

3-2. 住所および地理位置情報を保存する項目を選択

Google Geocoding APIを呼び出す際にパラメータとして渡す住所の値を設定します。

Salesforceで緯度経度を保持する項目のデータ型には、住所型と地理位置情報型があります。地理位置情報型は緯度経度のみで住所情報が含まれないため、カスタムオブジェクトなどで地理位置情報を選択する場合は、住所のテキストを含む項目を別途選択する必要があります。

① 住所型の項目を使用する場合

取引先や取引先責任者などの標準オブジェクトには、住所情報と地理位置情報の両方を保持できる住所型の項目があります。

「住所項目を使用」を選択し、「住所項目」プルダウンで住所型の項目を選択します。

② 地理位置情報型の項目を使用する場合

カスタムオブジェクトには住所型の項目が使えないので、テキスト型の住所項目と地理位置情報型の項目を組み合わせて使用します。
使用する項目の作成方法については、「住所を参照する項目」、「地理位置情報を保存する項目」を参照ください。

「地理位置情報型項目+テキスト型項目を使用」を選択し、「地理位置情報項目」のプルダウンで地理位置情報を保持する項目を、「住所(テキスト)項目」のプルダウンで住所を保持する項目を選択します。

3-3. 地理位置情報取得結果を保存する項目を選択

Google Geocoding APIの呼び出しに成功したかどうかの結果をレコードに記録します。

地理位置情報精度を保存する項目 (オプション)」で用意した項目を設定します。

※「地理位置情報取得結果を保持する項目」は「住所項目」または「住所(テキスト)項目」で選択した項目が項目履歴管理の対象として設定できない場合、地理位置情報取得対象レコードかどうかの判定に使用されるため設定が必須となります。

詳細は、「5. 地理位置情報取得対象レコードを抽出に関する仕様」を参照ください。

※ 地理位置情報取得バッチの実行結果はメールでも通知されますが、メールに含まれるエラーのレコード数は100件までです。それを超えるエラー以上ある場合はこの地理位置情報取得結果に設定した項目で検索し、各レコードの住所の値を見直しをする必要があります。

3-4. 地理位置情報精度を保存する項目を選択

Google Geocoding APIから取得した地理位置情報の精度をレコードに記録します。精度はレポートなどで表示し住所の見直しに使用できます。

地理位置情報精度を保存する項目 (オプション)」で用意した項目を選択します。

3-5. 地理位置情報取得対象とするかを表すチェックボックス項目を選択

オブジェクトのレコードの一部がMatchingMapで表示する対象ではない場合、例えば求人施設に取引先オブジェクトを設定していて、取引先には求人施設以外のレコードが含まれている場合、それらを地理位置情報取得対象から除外することができます。

地理位置情報取得対象とするかを表すチェックボックス項目(オプション)」で用意した項目選択します。

4. 地理位置情報取得バッチ定期実行の登録

地理位置情報取得バッチの定期実行は、以下の手順で登録します。

4-1. オブジェクトを地理位置情報取得対象として有効化

設定を登録したオブジェクトを地理位置情報取得バッチの処理対象とするには、「地理位置情報取得バッチ定期実行の対象とする」スイッチをオンにします。

4-2. 地理位置情報取得バッチの定期実行を登録

地理位置情報取得バッチは、Apexスケジューラとして提供されています。

定期実行を登録するには、右側の「定期実行設定」の「10分毎に定期実行を登録する」スイッチをオンにするか、Salseforceの「設定」の「Apexクラス」の「Apexスケジュール」から手動で登録します。

4-2-1. 10分毎に実行する

右側の「定期実行設定」の「10分ごとの定期実行を登録する」スイッチを有効化すると、10分ごとに地理位置情報取得バッチが起動されるようになります。

※ バッチ起動時に前のバッチ処理が完了していなかった場合は、バッチ処理の実行はスキップされます。

4-2-1. 「設定」の「Apexスケジュール」から手動登録する

Salseforceの「設定」の左上のクイック検索で「Apex」と入力し、表示される「Apex クラス」を開き、「Apex をスケジュール」ボタンをクリックします。

「Apexをスケジュール」の登録画面で以下を入して「保存」ボタンをクリックして保存します。

  • ジョブ名: わかりやすい任意の値を入力します

  • Apexクラス: 「SetGeolocationScheduler」を入力します。

  • Apex の実行をスケジュール: バッチを起動する時刻を選択します。

    • 頻度: バッチを起動する日を指定します。毎日の場合は、「毎週」を選択しすべての曜日にチェックを入れます。

    • 開始: 入力した日付より定期実行が開始されます。

    • 終了: 指定した日時以降はバッチ起動が無効化されます。「終了」の日付は十分に長く設定してください。

    • 希望開始時刻: バッチを起動する時刻を指定します。

4-3. 登録されている定期実行スケジュールの確認

4-2.の手順で登録した定期実行のスケジュールは「現在登録されているスケジュール」で確認することができます。

5. 地理位置情報取得対象レコードを抽出に関する仕様

定期実行時には、以下の条件を満たすレコードが地理位置情報を取得する対象となります。

①「住所項目」、または「住所(テキスト)項目」に対して、項目履歴管理を有効にしている場合

  • 前回実行日時以降に住所項目が変更されたレコード

※ 住所項目にテキストを返す数式を指定している場合、数式から参照される項目に対して項目履歴管理を有効化しても変更を捕捉できません。

②「住所項目」、または「住所(テキスト)項目」に対して、項目履歴管理を有効にしていない場合

  • 地理位置情報結果項目に設定した項目の値が空のレコード

※ 住所項目が変更された場合に地理位置情報結果項目を空にするフローを実装するなどすると便利です。

まとめると以下のフローチャートに従って、地理位置情報取得対象レコードかどうかを判定します。


MatchingMapで利用しているGoogle Geocoding APIは1000件につき$5の費用が発生します(詳細)。地理位置情報取得バッチ定期実行の運用は、判定条件をよくご理解いただき注意深く設計してください。

6. 地理位置情報取得バッチを即時実行

地理位置情報取得バッチを即時実行することもできます。

MatchingMap導入時にすぐに地理位置情報取得を試したい場合や、地理位置情報取得に失敗したレコードの住所を修正して地理位置情報取得バッチを再実行したいときにご利用ください。

即時実行するには、各オブジェクト設定の「即時実行」ボタンをクリックします。

「差分」実行するか「全件」を対象とするかを選択し、「実行」をクリックすると地理位置情報取得バッチが起動します。

「差分」を選択した場合は、定期実行の仕様「5. 地理位置情報取得対象レコードを抽出に関する仕様」に従って対象レコードを抽出します。

「全件」を選択した場合は、以下の条件を満たすレコードが地理位置情報を取得する対象となります。

  • 「地理位置情報取得結果」に指定した項目の値が、空またはエラーステータスのレコード

  • 「地理位置情報取得結果」の項目が設定されていない場合は住所を持つ全レコード

7. オブジェクト設定の削除

設定しているオブジェクトをMatchingMapで使用することがなくなった場合は以下の、「設定の解除・削除 」セクションの「削除実行」をクリックします。

8. 地理位置情報取得バッチ完了通知の設定

デフォルトでは、地理位置情報取得バッチは処理完了時に取得対象レコードが1つ以上存在した場合には成否に関わらず実行者に完了通知のメールを送信します。取得対象レコードが1つも存在しない場合はメールは送信されません。

すべてのレコードが正常だった場合のメール通知が不要であれば、右側にある「通知設定」セクションの「地理位置情報取得バッチ正常完了時も通知メールを受け取る」を「オフ」にします。

回答が見つかりましたか?