オープンソースのERP iDempiere(アイデンピエレ)のインストールパッケージに含まれているデータベースのダンプデータの中には、既に日本と都道府県のデータは含まれています。
しかし、残念ながら市区町村のデータまでは登録されていません。そこで、市区町村のデータをインポートする事ができる仕組みが必要となります。
インポートする市区町村データ
インポートするデータは総務省が公表している全国地方公共団体コードのExcelファイルをCSV形式で保存しなおして頂ければ、読み込む事ができます。
使用方法
仕様方法は、他のインポート処理と同様です。
これで、総務省が公開しているデータをそのまま、他のインポートの仕組みと同様に、中間テーブル(インポートテーブル)までデータを読み込む事ができます。
仕様
「名称(Name)」フィールドに入力した文字列(市区町村名)が、所属する地域(都道府県)に無い場合は、新規登録します。既にある場合は、更新処理を行います。
1回のインポートで処理するデータは全て同じ「国(Country)」である必要があります。言い換えると1回のインポート処理で異なる2つ以上の「国(Country)」のデータをインポートする事はできません。
インポートプロセスを実行するとまずは、都道府県名(Region Name)」から逆引きしてC_Region_IDを代入します。次に「国名(Country Name)」から逆引きしてC_Country_IDを代入します。
C_Region_IDと、C_Country_IDが正しく取得できれば、C_Cityテーブルにデータを登録します。
【注意】C_Region_IDを逆引きする際の都道府県名
iDempiereでは都道府県の情報がC_Regionテーブルに予め登録されており、市区町村のデータインポートの際に、インポートデータの都道府県名とC_Regionテーブルに登録されている都道府県名をマッチングさせてC_Region_IDをいわゆる逆引きしています。そのため、インポートデータと、C_Regionテーブルの両方の都道府県名が正しく登録されていないといけないのですが、C_Regionテーブルに登録されている"青森"と"神奈川"だけは"県"が抜けており、そのままでは正しくマッチングさせる事ができません。JPiere Plugin Import Cityを使用する際には、C_Regionテーブルの"青森"は"青森県"に、"神奈川"は"神奈川県"に修正してから実行して下さい。
技術情報
追加テーブル
◆I_CityJP
追加クラス
◆I_I_CityJP.java
◆X_I_CityJP.java
◆JPiereImportCity.java
更新情報
2023年3月6日(v10): インポート済みデータの削除処理のエラーを修正
過去にインポートしたデータを削除するDELETE文がエラーになるのを修正しました。
2018年6月8日
カスタマイズの管理区分をJPiere Plugins(JPPS)からJPiere Base Plugin(JPBP)に変更しいました。
関連するコンテンツ
- 【JPIERE-0083】住所入力関係
- 【iDempiere Lab】地域(都道府県)の選択リストをソートする(研究日誌:2013年11月28日)
- 【iDempiere Lab】市区町村(City)マスタの使い方(研究日誌:2014年9月3日)