Salesforceで取引先が増えてくると、同じ会社が複数登録されてしまう問題がおこりがちです。そこで、極力重複を避けるため、また重複を発見しやすくするために、国税庁の法人番号公表サイトというのを利用してみました。こちらのサイト、Web-APIというのが用意されていて、プログラム的にもアクセスすることができます。今回はこちらについて私どものやっている方法を紹介します。
取引先に「法人チェック」追加
取引先オブジェクトに「法人チェック」というボタンを追加し、取引先名から法人番号検索を行えるようにしています。該当するのが1社でない場合や間違っている場合もありますので、確認してもらってから「適用」で上の情報を取引先オブジェクトに書き込むようにしています。
法人番号サイトを利用するメリット
法人番号は企業をユニークに特定することができますので、取引先オブジェクトに法人番号をカスタムフィールドとして追加することで重複を検出することができます。
ただそれ以外にも、法人番号サイトは(企業が登録していれば)次の情報を提供してくれます。
-
ヨミガナ - これ強力です。取引先にヨミガナのカスタムフィールドを追加することで、50音順にソート表示することができるようになり、企業の検索や重複の発見に役立ちます
-
住所 - 取引先の住所を埋めるのもいいですが、企業名で法人番号を検索すると同名の会社が複数出てくることがありますので、どれが目的の企業か識別するのにも役立ちます
-
英語名 – 英語名を登録している企業は多くありませんが、海外と取引している場合は便利です。英語の住所も登録されている場合があります
すべての企業が法人番号サイトに登録されているわけではありませんが、私の取引先のほとんどは登録されていました。
法人番号の取得
Web-APIの利用には手続きが必要です。「法人番号システムWeb-APIのみを利用される方」だとだいぶ手続きが簡単になります。
API自体はすごくシンプルで、次のような感じで呼び出しができます。Salesforceのリモートサイトの設定もお忘れなく。
呼び出しが成功すると、次のようなヘッダー行つき ’/r/n’ 改行の csv形式の文字列がレスポンスボディに返されます。詳しくは Web-API の仕様書をご参照ください。
検索する法人名について
先ほどのコードでは coreName という変数で指定している法人名ですが、いくつか注意が必要です。(私が開発していたとき(2023年10月前後)の情報ですので、変わっているかもしれません)
- 英数記号も含め全角である必要があります
- 「株式会社」など法人格がついていると検索に失敗します
- スペースなどは削除します
私のところではSalesforceの法人名は法人格つき半角英数記号にしているので、変換が必要です。
下はコード例です:
きれいなコードではないですが、全角に変換するコードも紹介します:
返される法人名について
返される法人名についてもいくつか注意が必要です
- 法人格つきの全角英数記号となります
- 記号が統一されておらず ‘-‘ など紛らわしいものがある。検索結果を表示するとき、完全一致か部分一致か区別して案内しているので厄介でした
Salesforceでは法人名半角英数記号にしているので変換しています。以下コード例です:
あと、Apexで CSV を扱う良い方法を知らずつい手書きしてしまいましたので、ご参考までこちらも共有します。ダブルクォーテーションで囲まれた文字列の中にカンマがあることがあるので、単純に Split(‘,’) ではうまくいきません。
本日は以上です。この機能でだいぶ重複登録を減らすことができました。今回紹介した実装は Salesforceで1取引先について照合する機能ですが、実際はすでに登録済みの取引先に対してバッチ処理で企業情報を取得する Python コードも書いております。
ご意見ご感想ご指導など、コメントお待ちしております。