iDempiere 得意先(顧客)の使い方|販売管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。
得意先(顧客)は、取引先マスタ(C_BPartner)を「販売の相手先」という視点に絞り込んで表示するウィンドウです。与信限度額・価格表・支払条件といった販売条件に加え、その顧客の営業案件・営業活動・リクエスト・受注明細までを1つの画面で確認できます。
📌 ポイント: このウィンドウは取引先マスタと同じ
C_BPartnerテーブルを扱います。ここで登録した顧客は 取引先マスタ にも表示され、仕入先情報や銀行口座などの全項目はそちらで編集します。得意先ウィンドウは販売側の項目に絞った「作業しやすい入口」と考えてください。
得意先(顧客)でできること
Section titled “得意先(顧客)でできること”- 顧客の基本情報登録(検索キー・名称・取引先グループ・納税者番号)
- 与信限度額・与信利用額・与信管理ステータスによる与信管理
- 価格表・割引スキーマ・割引率の設定(受注時に自動適用)
- 支払方法・支払条件・請求ルール・請求スケジュールの既定値設定
- 出荷ルール・配送方法などの物流既定値の設定
- 顧客担当者(コンタクト)と住所(出荷先/請求先/入金先/支払先)の管理
- 品目単位の契約金額(顧客別価格)の登録
- 顧客ごとの営業案件・営業活動・リクエスト・受注明細の照会
得意先(顧客)は8タブ構成です。ヘッダーの顧客を選択すると、その顧客に関する情報が各タブに展開されます。
| タブ名 | テーブル | 階層 | 項目数 | 役割 |
|---|---|---|---|---|
| 得意先(顧客) | C_BPartner | 0 | 約47項目 | 顧客の基本情報・与信・販売条件 |
| 営業案件(オポチュニティ) | C_Opportunity | 1 | 約18項目 | この顧客の商談 |
| 顧客担当者 | AD_User | 1 | 約22項目 | 顧客側の担当者(コンタクト) |
| 営業活動(アクティビティ) | C_ContactActivity | 2 | 約11項目 | 担当者ごとの活動履歴 |
| 住所 | C_BPartner_Location | 1 | 約14項目 | 出荷先・請求先などの住所 |
| 契約金額 | M_BP_Price | 1 | 約15項目 | 顧客別・品目別の契約価格 |
| リクエスト | R_Request | 1 | 約17項目 | 問い合わせ・クレーム等 |
| 見積/受注明細 | RV_OrderDetail | 1 | 約21項目 | 受注明細の照会(ビュー) |
graph TD
T1["🏢 得意先(顧客)<br/>C_BPartner<br/>約47項目"]
T2["🎯 営業案件<br/>C_Opportunity"]
T3["👤 顧客担当者<br/>AD_User"]
T3a[" └ 営業活動<br/> C_ContactActivity"]
T4["📍 住所<br/>C_BPartner_Location"]
T5["💴 契約金額<br/>M_BP_Price"]
T6["📨 リクエスト<br/>R_Request"]
T7["📄 見積/受注明細<br/>RV_OrderDetail(ビュー)"]
T1 --> T2
T1 --> T3
T3 --> T3a
T1 --> T4
T1 --> T5
T1 --> T6
T1 --> T7
💡 ヒント: 「見積/受注明細」タブは
RV_OrderDetailというレポート用ビューです。編集はできませんが、未出荷数量・未請求数量まで含めて受注の残高を素早く確認できます。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>販売管理 > 見込顧客管理 > 得意先(顧客)"] --> B["➕ 新規で顧客を登録<br/>(検索キー・名称・取引先グループ)"]
B --> C["💳 与信限度額を設定"]
C --> D["💴 価格表・割引スキーマ<br/>支払方法・支払条件を設定"]
D --> E["💾 保存"]
E --> F["📍 住所タブで出荷先・請求先を登録"]
F --> G["👤 顧客担当者タブで<br/>コンタクトを登録"]
G --> H{個別価格あり?}
H -->|あり| I["💴 契約金額タブで<br/>品目別価格を登録"]
H -->|なし| J["✅ 受注伝票で顧客を選択可能に"]
I --> J
アクセス方法
Section titled “アクセス方法”メニューから「販売管理 > 見込顧客管理 > 得意先(顧客)」を開きます。
⚠️ 注意: 「得意先」(
IsCustomer)チェックが外れている取引先は、受注伝票の取引先候補に表示されません。新規登録時は必ずチェックが入っていることを確認してください。
新規登録(顧客の基本情報)
Section titled “新規登録(顧客の基本情報)”- ツールバーの「新規」ボタンをクリック
- 必須項目を入力:
- 検索キー: 顧客コード(一意)
- 名称: 顧客名
- 取引先グループ: 会計設定・割引の基準となるグループ
- 与信限度額: 与信の上限額(既定は 0)
- 販売条件を設定:
- 価格表: 適用する価格表
- 割引スキーマ / 割引率: 取引先別の値引ルール
- 支払方法 / 支払条件: 入金方法と支払期日ルール
- 請求ルール / 請求スケジュール: 請求のまとめ方
- 出荷ルール / 配送方法: 出荷タイミングと配送手段
- 必要に応じて属性情報を入力:
- 読み方: 名称のふりがな(
Name2) - 納税者番号 / D-U-N-S / NAICS/SIC / レイティング
- 社内担当者: 担当営業
- 常連/見込顧客: 見込客として管理する場合にチェック
- 読み方: 名称のふりがな(
- 「保存」をクリック
- 「住所」タブに移動し「新規」をクリック
- 名称と住所(住所ダイアログで入力)を登録
- 用途フラグを設定:
- 出荷納品先(
IsShipTo): 出荷先として使う住所 - 請求先(
IsBillTo): 請求書の送付先 - 入金先(
IsPayFrom): 入金元 - 支払先(
IsRemitTo): 支払先
- 出荷納品先(
- 電話番号・FAX・販売地域を必要に応じて入力
- 「保存」をクリック
💡 ヒント: 受注伝票では「取引先住所」に出荷納品先フラグが立った住所、「請求先住所」に請求先フラグが立った住所が候補として表示されます。用途フラグの設定漏れは伝票入力時のトラブルの典型原因です。
契約金額(顧客別価格)の登録
Section titled “契約金額(顧客別価格)の登録”- 「契約金額」タブに移動し「新規」をクリック
- 価格情報を入力:
- 品目: 対象品目(必須)
- 分岐値: 数量割引の下限値(必須)
- 通貨: 価格の通貨(必須)
- 営業定価 / 実績価格 / 限度価格: 定価・標準価格・最低価格(いずれも必須)
- 有効開始日 / 有効終了日: 適用期間
- Price Override Type: 固定価格で上書きするか、定価からの割引率で指定するか
- 「保存」をクリック
項目リファレンス(得意先タブ・主要項目)
Section titled “項目リファレンス(得意先タブ・主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 検索キー | 必須 | 文字列 | 顧客コード(一意) |
| 名称 | 必須 | 文字列 | 顧客名 |
| 読み方 | - | 文字列 | 名称の別表記(ふりがな等) |
| 得意先 | 必須 | チェック | 得意先として扱うか |
| 取引先グループ | 必須 | 選択 | 会計・割引の基準グループ |
| 与信限度額 | 必須 | 金額 | 与信の上限額 |
| 与信利用額 | 必須 | 金額 | 現在の与信使用額(自動更新) |
| 与信管理ステータス | - | リスト | 与信状態(与信保留・与信停止等) |
| 債権債務残高 | - | 金額 | 会計通貨ベースの未決済残高 |
| 納税者番号 | - | 文字列 | 税務上の識別番号 |
| 税金免除 | - | チェック | 売上税を免除するか |
| 価格表 | - | 選択 | 適用する価格表 |
| 割引スキーマ / 割引率 | - | 選択 / 数値 | 値引ルール |
| 支払方法 | - | リスト | 入金方法 |
| 支払条件 | - | 選択 | 支払期日ルール |
| 請求ルール / 請求スケジュール | - | リスト / 選択 | 請求のまとめ方 |
| 出荷ルール / 配送方法 | - | リスト | 出荷タイミング・配送手段 |
| 督促 | - | 選択 | 滞留債権の督促ルール |
| 社内担当者 | - | 選択 | 担当営業 |
| 常連/見込顧客 | 必須 | チェック | 見込客として管理するか |
| 売上予想 / 売上実績 | - | 金額 | ライフタイムバリューの見込・実績 |
全項目は 画面リファレンス: 得意先(顧客) を参照してください。
与信管理の流れ
Section titled “与信管理の流れ”graph TD
A["得意先マスタ<br/>与信限度額を設定"] --> B["受注伝票の作成"]
B --> C{与信チェック}
C -->|限度内| D["受注を完成"]
C -->|超過| E["与信管理ステータスに応じて<br/>警告または処理停止"]
D --> F["出荷伝票"]
F --> G["売上請求書<br/>与信利用額が増加"]
G --> H["入金処理<br/>与信利用額が減少"]
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 得意先ウィンドウと取引先マスタは何が違いますか?
Section titled “Q. 得意先ウィンドウと取引先マスタは何が違いますか?”同じ C_BPartner テーブルを扱う別ウィンドウです。得意先ウィンドウは販売側の項目に絞り、営業案件・リクエスト・受注明細といった販売視点の子タブを備えています。仕入先情報・銀行口座・会計設定などを含む全項目は 取引先マスタ で編集します。
Q. 「与信利用額」を手で修正できますか?
Section titled “Q. 「与信利用額」を手で修正できますか?”与信利用額(SO_CreditUsed)は請求・入金の処理に伴ってシステムが更新する項目です。手作業での書き換えは残高不整合の原因になるため避けてください。値がずれている場合は、請求書・入金の消込状況を確認します。
Q. 顧客ごとの特別価格はどこで設定しますか?
Section titled “Q. 顧客ごとの特別価格はどこで設定しますか?”「契約金額」タブ(M_BP_Price)で品目単位に設定します。品目・分岐値・通貨・営業定価・実績価格・限度価格が必須です。価格表全体を分けたい場合は、顧客に専用の 価格表 を割り当てる方法もあります。
Q. 受注伝票で住所が選択肢に出てきません
Section titled “Q. 受注伝票で住所が選択肢に出てきません”住所タブの用途フラグを確認してください。出荷先には「出荷納品先」、請求先には「請求先」のチェックが必要です。また住所レコード自体が無効(有効チェックなし)になっていないかも確認します。
Q. 顧客担当者にパスワードを設定するとどうなりますか?
Section titled “Q. 顧客担当者にパスワードを設定するとどうなりますか?”顧客担当者タブは AD_User です。パスワードと「取引先全データアクセス権限」を設定すると、その担当者はセルフサービス(Web Store 等)でログインし、自社の取引データを参照できるようになります。運用ポリシーに応じて権限範囲を検討してください。
Q. 見込客と得意先はどう使い分けますか?
Section titled “Q. 見込客と得意先はどう使い分けますか?”「常連/見込顧客」(IsProspect)にチェックを入れると見込客として扱えます。まだ取引が始まっていない引合先は、営業担当者ダッシュボード の見込顧客(リード)タブで軽量に管理し、取引開始のタイミングで得意先として本登録する運用が一般的です。
- 取引先マスタ(Business Partner)の使い方
- 取引先グループの使い方
- 営業案件(オポチュニティ)の使い方
- 営業担当者ダッシュボードの使い方
- 受注伝票(Sales Order)の使い方
- 売上請求書の使い方
- 支払条件の使い方
- 価格表の使い方
- 画面リファレンス: 得意先(顧客)
🛠 技術仕様(開発者向け)
得意先(顧客)ウィンドウのヘッダーテーブルは C_BPartner で、モデルクラスは MBPartner(1,043行)です。MBPartner は X_C_BPartner を継承し、ImmutablePOSupport を実装しているため、MBPartner.get(ctx, C_BPartner_ID) によるキャッシュ経由の高速参照が可能です。Document 型ではありません。
子タブは、営業案件 C_Opportunity(MOpportunity)、顧客担当者 AD_User(MUser)、営業活動 C_ContactActivity(生成クラスのみ)、住所 C_BPartner_Location(MBPartnerLocation)、契約金額 M_BP_Price、リクエスト R_Request(MRequest)、そしてレポートビュー RV_OrderDetail で構成されます。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MBPartner {
+getTemplate(ctx, AD_Client_ID) MBPartner
+get(ctx, C_BPartner_ID) MBPartner
+get(ctx, Value) MBPartner
+getFirstWithTaxID(ctx, taxID, trx) MBPartner
+getNotInvoicedAmt(C_BPartner_ID) BigDecimal
+getContacts(boolean) MUser[]
+getLocations(boolean) MBPartnerLocation[]
+getBankAccounts(boolean) MBPBankAccount[]
+getPrimaryC_BPartner_Location() MBPartnerLocation
+setClientOrg(AD_Client_ID, AD_Org_ID) void
}
class X_C_BPartner {
<<generated>>
}
class PO {
<<abstract>>
}
class ImmutablePOSupport {
<<interface>>
}
MBPartner --|> X_C_BPartner
X_C_BPartner --|> PO
MBPartner ..|> ImmutablePOSupport
MBPartner --> MBPartnerLocation : has many
MBPartner --> MUser : has many
MBPartner --> MOpportunity : has many
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MBPartner.java(1,043行)/ MBPartnerLocation.java / MOpportunity.java(80行)/ X_C_ContactActivity.java(364行)
関連DBテーブル
Section titled “関連DBテーブル”C_BPartner(取引先/得意先)主要カラム
Section titled “C_BPartner(取引先/得意先)主要カラム”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_BPartner_ID | ID | PK | 取引先ID | 主キー |
| Value | String | Y | 検索キー | 一意 |
| Name | String | Y | 名称 | |
| Name2 | String | N | 読み方 | 追加名称 |
| IsCustomer | YesNo | Y | 得意先 | 販売対象フラグ |
| IsProspect | YesNo | Y | 常連/見込顧客 | |
| C_BP_Group_ID | TableDirect | Y | 取引先グループ | 会計設定の基準 |
| SO_CreditLimit | Amount | Y | 与信限度額 | |
| SO_CreditUsed | Amount | Y | 与信利用額 | システム更新 |
| SOCreditStatus | List | N | 与信管理ステータス | |
| TotalOpenBalance | Amount | N | 債権債務残高 | 会計通貨ベース |
| TaxID | String | N | 納税者番号 | |
| IsTaxExempt | YesNo | N | 税金免除(売上) | |
| IsPOTaxExempt | YesNo | Y | 仕入税金免除 | |
| M_PriceList_ID | TableDirect | N | 価格表 | 受注時の既定値 |
| M_DiscountSchema_ID | Table | N | 割引スキーマ | |
| FlatDiscount | Number | N | 割引率 | |
| PaymentRule | List | N | 支払方法 | |
| C_PaymentTerm_ID | Table | N | 支払条件 | |
| InvoiceRule | List | N | 請求ルール | |
| C_InvoiceSchedule_ID | TableDirect | N | 請求スケジュール | |
| DeliveryRule | List | N | 出荷ルール | |
| DeliveryViaRule | List | N | 配送方法 | |
| C_Dunning_ID | TableDirect | N | 督促 | |
| SalesRep_ID | Table | N | 社内担当者 |
C_BPartner_Location(取引先住所)
Section titled “C_BPartner_Location(取引先住所)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_BPartner_Location_ID | ID | PK | 住所ID |
| C_BPartner_ID | Search | Y | 取引先FK |
| C_Location_ID | Location | Y | 住所(郵便番号・都道府県等) |
| IsShipTo | YesNo | Y | 出荷納品先 |
| IsBillTo | YesNo | Y | 請求先 |
| IsPayFrom | YesNo | Y | 入金先 |
| IsRemitTo | YesNo | Y | 支払先 |
| C_SalesRegion_ID | Table | N | 販売地域 |
M_BP_Price(契約金額)
Section titled “M_BP_Price(契約金額)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_BPartner_ID | Search | Y | 取引先FK |
| M_Product_ID | Search | Y | 品目FK |
| BreakValue | Number | Y | 分岐値(数量割引の下限) |
| C_Currency_ID | TableDirect | Y | 通貨 |
| PriceList | Costs+Prices | Y | 営業定価 |
| PriceStd | Costs+Prices | Y | 実績価格 |
| PriceLimit | Costs+Prices | Y | 限度価格 |
| PriceOverrideType | List | N | 固定価格 or 定価からの割引 |
| ValidFrom / ValidTo | Date | N | 適用期間 |
erDiagram
C_BPartner ||--o{ C_BPartner_Location : "addresses"
C_BPartner ||--o{ AD_User : "contacts"
C_BPartner ||--o{ C_Opportunity : "opportunities"
C_BPartner ||--o{ M_BP_Price : "contract prices"
C_BPartner ||--o{ R_Request : "requests"
C_BPartner ||--o{ C_Order : "orders"
C_BPartner }o--|| C_BP_Group : "group"
C_BPartner }o--o| M_PriceList : "price list"
C_BPartner }o--o| C_PaymentTerm : "payment term"
AD_User ||--o{ C_ContactActivity : "activities"
C_Order ||--o{ RV_OrderDetail : "order detail view"
ビジネスロジック
Section titled “ビジネスロジック”MBPartner の主要メソッド
Section titled “MBPartner の主要メソッド”| メソッド | 役割 |
|---|---|
getTemplate(ctx, AD_Client_ID) | クライアント情報のテンプレート取引先を取得し、新規登録の初期値に使用 |
getBPartnerCashTrx(ctx, AD_Client_ID) | 現金取引用の取引先を取得(POS などで使用) |
get(ctx, C_BPartner_ID) | キャッシュ経由の取得(ImmutablePOSupport) |
get(ctx, Value) | 検索キーによる取得 |
getFirstWithTaxID(ctx, taxID, trxName) | 納税者番号による検索 |
getNotInvoicedAmt(C_BPartner_ID) | 未請求金額の算出(与信判定に利用) |
getContacts(boolean reload) | 顧客担当者(MUser)の一覧取得 |
getLocations(boolean reload) | 住所(MBPartnerLocation)の一覧取得 |
getBankAccounts(boolean requery) | 銀行口座(MBPBankAccount)の一覧取得 |
getPrimaryC_BPartner_Location() | 主住所の取得 |
initTemplate(AD_Client_ID) | テンプレート取引先から既定値を初期化 |
📌 ポイント: 新規取引先の既定値は
initTemplate()がクライアント情報のテンプレート取引先からコピーします。価格表・支払条件・与信限度額といった項目を組織標準として揃えたい場合は、テンプレート取引先を整備しておくのが最も効率的です。
営業案件タブのロジック
Section titled “営業案件タブのロジック”MOpportunity.beforeSave() により、受注伝票がひも付いた案件は保存時に案件金額が受注総合計で上書きされます。またステージ選択時は CalloutOpportunity.salesStage が可能性(%)を自動セットします。
RV_OrderDetail
Section titled “RV_OrderDetail”「見積/受注明細」タブはレポート用ビューです。未出荷数量(QtyToDeliver)・未請求数量(QtyToInvoice)を含み、参照専用として利用します。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”public class CustomCustomerValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (po instanceof MBPartner) { MBPartner bp = (MBPartner) po; if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) { // 例: 得意先は与信限度額の入力を必須にする if (bp.isCustomer() && bp.getSO_CreditLimit().signum() == 0) { throw new AdempiereException("得意先には与信限度額を設定してください"); } // 例: 顧客コードの命名規則 if (bp.getValue() != null && !bp.getValue().matches("C-\\d{6}")) { throw new AdempiereException("顧客コードは「C-000000」形式で入力してください"); } } } return null; }}キャッシュの取り扱い
Section titled “キャッシュの取り扱い”MBPartner は ImmutablePOSupport を実装しており、MBPartner.get() はキャッシュを返します。取得したインスタンスを編集する場合は、更新可能なコピー(new MBPartner(ctx, copy, trxName) 等のコピーコンストラクタ)を使用してください。キャッシュされたイミュータブルインスタンスへの直接更新は避けます。
価格計算のカスタマイズ
Section titled “価格計算のカスタマイズ”顧客別価格のロジックを独自に組みたい場合は、IPricingRule を実装した OSGi サービスを追加します。M_BP_Price(契約金額)や割引スキーマの標準ロジックを変更せずに、自社ルールを重ねられます。
Callout
Section titled “Callout”得意先タブの列には標準のカスタム Callout は設定されていません(C_BPartner 側で追加する場合は AD_Column の Callout 欄に登録します)。子タブの営業案件では C_SalesStage_ID に CalloutOpportunity.salesStage が設定されています。
関連プロセス
Section titled “関連プロセス”得意先(顧客)ウィンドウ自体には、ボタン起動の標準プロセスは定義されていません。与信・売掛の分析は請求書・入金側の標準レポートを利用します。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”顧客コード体系・与信ルール・顧客別価格の判定は、企業ごとに固有の要件が出やすい領域です。Model Validator と IPricingRule により、コア改変なしで自社ルールを実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。