プライスリストのインポートプロセスです。JPiereではプライスリストのインポートの方法として、CSVインポートファイルローダーを使用する方法(フロントエンドの方法)と、インポートプロセスによる方法(バックエンドの方法)と2つ用意しています。
インポートプロセスによる方法(バックエンドの方法)
インポートプロセスの方法では、既存のプライスリストのインポートテーブル(I_PriceList)を使用しています。他のJPiereのインポートプロセスでは、専用のインポートテーブルを使用していますが、プライスリスト自体は、設定項目が少なく、標準のインポートテーブルで項目的にはほぼ足りているため、JPiereのプライスリストのインポート処理では流用する事にしました。
iDempiere標準のプライスリストインポートプロセスとの違いは、下記の2つです。
- インポート処理しているレコード登録件数を表示するようにしました。
- 取引先別分岐価格設定のインポート処理において、取引先の情報が入力されていない場合でも、分岐値(BreakValue)の値が0より大きい場合は、インポートできるように修正しました。(2019年7月14日追加)
プライスリストインポートテーブル(JPiere)ウィンドウ
◆分岐値[BreakValue]
分岐値が0以上の場合は、プライスリストの取引先別分岐価格タブ(M_ProductPriceVendorBreak)に登録されます。それ以外の場合は、品目価格タブ(M_ProductPrice)に登録されます。
CSVインポートファイルローダーによる方法(フロントエンドの方法)
JPiereでは、CSVインポートファイルローダーを使用して、プライスリストをインポートできるように設定しています。
iDempiere標準のプライスリストウィンドウから、インポートファイルローダーを使用して、プライスリストタブとバージョンタブの情報を登録できるようにあらかじめ設定してあります。
インポートファイルローダーを使用して、品目価格タブの情報を登録できるように、プライスリストインポート(インポートファイルローダー)ウィンドウを用意しています。
推奨のプライスリストのインポート手順
iDempiere標準のインポートプロセスでは、バージョンタブの名称欄は"プライスリストの名称 + 有効開始日"になってしまいます。さらに、バージョンタブのベースプライスリストは、最初に登録された(IDの値が小さい)プライスリストスキーマに固定されてしまいます。
そしてプライスリストは3タブ構成になっており、インポートファイルローダーでは一括で登録する事は難しいです。
これらの理由により、プライスリストはインポートファイルローダーとインポートプロセスを併用して登録する事をオススメします。
- プライスリストタブ(親タブ) … インポートファイルローダー
- バージョンタブ(子タブ) … インポートファイルローダー
- 品目価格タブ(孫タブ) … インポートプロセス
- 取引先別分岐価格設定(孫タブ) … インポートプロセス
初期環境設定を考えた場合、プライスリストは取引先グループや取引先マスタに設定する事を考えると品目マスタを登録する前にプライスリストタブの情報だけは登録しておく必要があります。そのような事を考慮して、インポートファイルローダーを使用して、プライスリストタブとバージョンタブを登録し、品目マスタを登録した後で、品目価格タブをインポートプロセスでインポート処理する手順は合理的です。
カスタマイズ情報
関連するクラス
- jpiere.base.plugin.org.adempiere.process.JPiereImportPriceList
更新履歴
2023年3月6日(v10): インポート済みデータの削除処理のエラーを修正
過去にインポートしたデータを削除するDELETE文がエラーになるのを修正しました。
2019年7月14日
取引先別分岐価格設定のインポート処理において、取引先の情報が入力されていない場合でも、分岐値(BreakValue)の値が0より大きい場合は、インポートできるように修正しました。