コンテンツにスキップ

iDempiere 取引先グループの使い方|取引先管理 操作マニュアル・技術仕様

📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。

取引先グループは、取引先を分類し、会計勘定科目・価格表・割引スキーマ・督促ルールの既定値をまとめて定義するマスタです。グループに属する取引先を新規登録すると、ここで設定した会計パラメータが自動的にコピーされます。

📌 ポイント: 取引先グループは「集計・レポートの分類軸」であると同時に「取引先マスタの初期値テンプレート」です。取引先を1件ずつ会計設定するのを避けるため、取引先を登録する前にグループ設計を済ませておくことが重要です。

  • 取引先の分類(レポート・集計の軸)
  • 得意先債権・仕入先債務など会計勘定科目の既定値定義(会計スキーマごと)
  • 販売用・購買用の価格表の既定値設定
  • 販売用・購買用の割引スキーマの既定値設定
  • 督促(Dunning)ルールの既定値設定
  • 与信警戒%・照合時価格差異許容範囲%の設定
  • リクエストの優先度ベース(優先度)の設定
  • 所属取引先への勘定科目の一括上書き反映

取引先グループは3タブ構成です。

タブ名テーブル項目数役割
取引先グループC_BP_Group17項目グループ本体(既定値・分類)
会計C_BP_Group_Acct15項目会計スキーマごとの勘定科目既定値
所属取引先C_BPartner30項目このグループに属する取引先の一覧・編集
graph TD
    T1["🏷 取引先グループ<br/>C_BP_Group<br/>17項目"]
    T2["📒 会計<br/>C_BP_Group_Acct<br/>15項目"]
    T3["👥 所属取引先<br/>C_BPartner<br/>30項目"]
    T1 --> T2
    T1 --> T3

取引先グループ C_BP_Group 17項目 会計 C_BP_Group_Acct 15項目 所属取引先 C_BPartner 30項目

💡 ヒント: 「所属取引先」タブは参照専用ではなく編集可能です。ただし取引先の全項目が並ぶわけではないため、詳細な設定は取引先マスタから行ってください。

graph TD
    A["🚀 メニューから開く<br/>取引先管理 > 取引先管理セットアップ > 取引先グループ"] --> B["➕ 新規で基本情報を入力<br/>(検索キー・名称)"]
    B --> C["💴 商流の既定値を設定<br/>価格表・購買用価格表<br/>割引スキーマ"]
    C --> D["⚖️ 管理値を設定<br/>与信警戒%・督促<br/>照合時価格差異許容範囲%"]
    D --> E["💾 保存<br/>(会計タブが自動生成される)"]
    E --> F["📒 会計タブで<br/>勘定科目を確認・修正"]
    F --> G{既存取引先へ<br/>反映するか}
    G -->|する| H["🔁 所属取引先勘定科目上書き<br/>ボタンを実行"]
    G -->|しない| I["🔗 取引先マスタで<br/>グループを選択して利用"]
    H --> I

メニューから開く 取引先管理 > 取引先管理セットアップ > 取引先グループ 新規で基本情報を入力 (検索キー・名称) 商流の既定値を設定 価格表・購買用価格表 割引スキーマ 管理値を設定 与信警戒%・督促 照合時価格差異許容範囲% 保存 (会計タブが自動生成される) 会計タブで 勘定科目を確認・修正 所属取引先勘定科目上書き ボタンを実行 取引先マスタで グループを選択して利用 既存取引先へ 反映するか する しない

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

メニューから「取引先管理 > 取引先管理セットアップ > 取引先グループ」を開きます。

新規登録(必須項目ベースの手順)

Section titled “新規登録(必須項目ベースの手順)”
  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • 検索キー: グループコード(40文字以内、一意)
    • 名称: グループ名(60文字以内、例: 一般得意先主要仕入先
    • 有効 / デフォルト / 機密情報: 必要に応じて設定
  3. 既定値を必要に応じて設定:
    • 価格表 / 購買用価格表: 所属取引先の既定価格表
    • 割引スキーマ / 購買割引スキーマ: 取引割引の計算スキーマ
    • 督促: 期日超過時の督促ルール
    • 与信警戒%: 与信限度額に対する警戒ラインの割合
    • 照合時価格差異許容範囲%: 発注と請求の価格照合の許容差
  4. 保存」をクリック
  5. 会計」タブに移動し、自動生成された会計スキーマ行の勘定科目を確認・修正

⚠️ 注意: 会計タブの行は新規保存時にのみ会計スキーマの既定値から自動生成されます。会計スキーマを後から追加した場合、既存グループには行が生成されないため手動追加が必要です。

所属取引先への勘定科目の一括反映

Section titled “所属取引先への勘定科目の一括反映”

会計タブの「所属取引先勘定科目上書き」ボタン(Processing)を実行すると、グループの勘定科目設定がこのグループに属する取引先へコピー・上書きされます。

⚠️ 注意: このボタンは「上書き」です。取引先ごとに個別調整した勘定科目も、グループの値で塗りつぶされます。実行前に影響範囲を必ず確認してください。

取引先グループタブ(主要項目)

Section titled “取引先グループタブ(主要項目)”
項目名必須説明
検索キー必須文字列(40)グループコード(一意)
名称必須文字列(60)グループ名
説明-文字列(255)補足説明
有効必須チェックレコードが有効か(既定 Y)
デフォルト必須チェック既定グループとして使用
カラー-選択印刷・表示に使う色
優先度-リストリクエスト優先度のベース
機密情報必須チェック機密情報の入力を許可(既定 N)
価格表-選択販売用の既定価格表
購買用価格表-選択購買用の既定価格表
割引スキーマ-選択販売用の割引計算スキーマ
購買割引スキーマ-選択購買用の割引計算スキーマ
与信警戒%-数値与信限度額に対する警戒ライン(未設定時は 90 とみなす)
照合時価格差異許容範囲%-数値発注・請求の価格照合許容差
督促-選択期日超過時の督促ルール
項目名必須説明
会計スキーマ必須選択対象の会計スキーマ
得意先債権勘定必須勘定売掛金
仕入先債務勘定必須勘定買掛金
得意先前受勘定必須勘定得意先からの前受金
仕入先前払勘定必須勘定仕入先への前払金
未請求債務勘定必須勘定入荷済み未請求分
売上割引勘定必須勘定支払割引(費用側)
仕入割引勘定必須勘定支払割引(収益側)
貸倒損失勘定必須勘定債権の貸倒
前受収益勘定-勘定未実現収益
所属取引先勘定科目上書き-ボタングループの勘定を所属取引先へコピー

全項目一覧はリファレンス参照

Q. 取引先グループは取引先マスタで必須ですか?

Section titled “Q. 取引先グループは取引先マスタで必須ですか?”

はい。取引先マスタは取引先グループへの参照を持ち、会計設定の初期値をグループから取得します。取引先を作る前に、最低1つのグループ(デフォルト チェック付き)を用意してください。MBPGroup.getDefault(ctx) が既定グループを取得します。

Q. 「与信警戒%」を空欄にするとどうなりますか?

Section titled “Q. 「与信警戒%」を空欄にするとどうなりますか?”

MBPGroup.getCreditWatchPercent() は値が未設定(null)の場合に 90 を返します。また getCreditWatchRatio() は 0 以外の値なら 100 で割った比率を、そうでなければ 0.90 を返します。つまり空欄運用でも「与信限度額の 90%」が警戒ラインとして機能します。

Q. グループの勘定科目を変えたら、既存取引先にも反映されますか?

Section titled “Q. グループの勘定科目を変えたら、既存取引先にも反映されますか?”

自動では反映されません。既存取引先へ反映するには、会計タブの「所属取引先勘定科目上書き」ボタンを明示的に実行する必要があります。実行すると取引先側の個別設定も上書きされる点に注意してください。

Q. グループを削除できますか?

Section titled “Q. グループを削除できますか?”

C_BP_Group は削除可(IsDeleteable=Y)ですが、取引先から参照されているグループは外部キー制約で削除できません。使わなくなったグループは「有効」のチェックを外して無効化するのが安全です。

Q. 「優先度」は何に使われますか?

Section titled “Q. 「優先度」は何に使われますか?”

PriorityBaseリクエストの優先度計算に使われます。MRequest.setPriority() が取引先のグループを参照し、PRIORITYBASE_Lower なら優先度を2段階下げ、それ以外(同一以外)なら2段階上げた値を計算します。VIP 顧客のリクエストを自動的に高優先度にする、といった運用が可能です。

🛠 技術仕様(開発者向け)

取引先グループは C_BP_Group テーブル(アクセスレベル 3 = クライアント/組織、削除可)に格納されます。モデルクラスは MBPGroup(329行)で、ImmutablePOSupport を実装しキャッシュ経由の高速参照に対応します。子テーブル C_BP_Group_Acct には専用 M クラスがなく、生成クラス X_C_BP_Group_Acct のみが存在します。Document 型ではありません。

classDiagram
    class MBPGroup {
        +get(ctx, C_BP_Group_ID) MBPGroup
        +getDefault(ctx) MBPGroup
        +getOfBPartner(ctx, C_BPartner_ID) MBPGroup
        +getCopy(ctx, id, trxName) MBPGroup
        +getCreditWatchPercent() BigDecimal
        +getCreditWatchRatio() BigDecimal
        +afterSave(boolean, boolean) boolean
        +markImmutable() MBPGroup
    }
    class X_C_BP_Group {
        <<generated>>
    }
    class X_C_BP_Group_Acct {
        <<generated>>
    }
    class ImmutablePOSupport {
        <<interface>>
    }
    class PO {
        <<abstract>>
    }
    MBPGroup --|> X_C_BP_Group
    X_C_BP_Group --|> PO
    MBPGroup ..|> ImmutablePOSupport
    MBPGroup --> X_C_BP_Group_Acct : insert_Accounting
    MBPGroup --> MBPartner : defaults for

+get(ctx, C_BP_Group_ID) MBPGroup +getDefault(ctx) MBPGroup +getOfBPartner(ctx, C_BPartner_ID) MBPGroup +getCopy(ctx, id, trxName) MBPGroup +getCreditWatchPercent() BigDecimal +getCreditWatchRatio() BigDecimal +afterSave(boolean, boolean) boolean +markImmutable() MBPGroup <> <> <> > X_C_BP_Group X_C_BP_Group --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MBPGroup.java

カラム名必須説明備考
C_BP_Group_IDIDPK取引先グループID主キー
C_BP_Group_UUUUID(36)NUUID
AD_Client_IDTable DirectYクライアント既定 @#AD_Client_ID@
AD_Org_IDTable DirectY組織既定 @#AD_Org_ID@
ValueString(40)Y検索キー一意
NameString(60)Y名称
DescriptionString(255)N説明
IsActiveYes-NoY有効既定 Y
IsDefaultYes-NoYデフォルト
IsConfidentialInfoYes-NoY機密情報既定 N
PriorityBaseList(1)N優先度リクエスト優先度の基準
AD_PrintColor_IDTable DirectNカラー
M_PriceList_IDTable DirectN価格表販売用
PO_PriceList_IDTableN購買用価格表
M_DiscountSchema_IDTableN割引スキーマ販売用
PO_DiscountSchema_IDTableN購買割引スキーマ
CreditWatchPercentNumberN与信警戒%未設定時は 90 扱い
PriceMatchToleranceNumberN照合時価格差異許容範囲%
C_Dunning_IDTable DirectN督促

C_BP_Group_Acct(取引先グループ会計)

Section titled “C_BP_Group_Acct(取引先グループ会計)”
カラム名必須説明
C_BP_Group_IDTable DirectPKグループFK
C_AcctSchema_IDTable DirectPK会計スキーマFK
C_Receivable_AcctAccountY得意先債権勘定
V_Liability_AcctAccountY仕入先債務勘定
C_Prepayment_AcctAccountY得意先前受勘定
V_Prepayment_AcctAccountY仕入先前払勘定
NotInvoicedReceipts_AcctAccountY未請求債務勘定
PayDiscount_Exp_AcctAccountY売上割引勘定
PayDiscount_Rev_AcctAccountY仕入割引勘定
WriteOff_AcctAccountY貸倒損失勘定
UnEarnedRevenue_AcctAccountN前受収益勘定
ProcessingButtonN所属取引先勘定科目上書き
erDiagram
    C_BP_Group ||--o{ C_BP_Group_Acct : "accounting per schema"
    C_BP_Group ||--o{ C_BPartner : "members"
    C_BP_Group }o--o| M_PriceList : "default price list"
    C_BP_Group }o--o| C_Dunning : "dunning rule"
    C_BP_Group_Acct }o--|| C_AcctSchema : "schema"
    C_BPartner ||--o{ C_BPartner_Acct : "copied defaults"

accounting per schema default price list dunning rule copied defaults

afterSave() — 会計レコードの自動生成

Section titled “afterSave() — 会計レコードの自動生成”
protected boolean afterSave (boolean newRecord, boolean success)
{
// Create accounting records (C_BP_Group_Acct)
if (newRecord && success)
return insert_Accounting("C_BP_Group_Acct", "C_AcctSchema_Default", null);
return success;
}
  • 新規レコードかつ保存成功時のみC_AcctSchema_Default から C_BP_Group_Acct を生成します
  • 戻り値が insert_Accounting() の結果である点が MWithholding と異なります。会計レコードの生成に失敗すると保存自体が失敗します
public BigDecimal getCreditWatchPercent()
{
BigDecimal bd = super.getCreditWatchPercent();
if (bd != null) return bd;
return new BigDecimal(90);
}
public BigDecimal getCreditWatchRatio()
{
BigDecimal bd = super.getCreditWatchPercent();
if (bd.compareTo(Env.ZERO) != 0)
return bd.divide(Env.ONEHUNDRED, 2, RoundingMode.HALF_UP);
return BigDecimal.valueOf(0.90);
}

未設定時に 90%(比率 0.90)へフォールバックするため、DB 値が NULL でも与信ステータス判定は動作します。

メソッド用途
get(Properties, int) / get(int)ID 指定のキャッシュ付き取得
getDefault(Properties)IsDefault=Y のグループを取得
getOfBPartner(Properties, int)取引先が属するグループを取得
getCopy(Properties, int, String)変更可能なコピーを取得(Immutable 対策)
markImmutable()キャッシュ格納用に不変化

⚠️ 注意: MBPGroup.get() が返すインスタンスは**イミュータブル(変更不可)**の場合があります。値を更新する処理では必ず getCopy() を使ってください。markImmutable() 済みのオブジェクトに setter を呼ぶと例外になります。

MRequest.setPriority() は取引先のグループ(MBPGroup.get(ctx, bp.getC_BP_Group_ID()))の PriorityBase を参照し、PRIORITYBASE_Lower なら優先度コードを +2(低くする)、それ以外なら -2(高くする)した値を上限 High・下限 Low でクランプして適用します。

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”

C_BP_Group / C_BP_Group_Acct のカラムには Callout の登録がありませんAD_Column.Callout はすべて未設定)。

public class CustomBPGroupValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MBPGroup && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
MBPGroup group = (MBPGroup) po;
// 例: 得意先グループには必ず価格表を要求する
if (group.getValue().startsWith("CUST") && group.getM_PriceList_ID() == 0) {
throw new AdempiereException("得意先グループには価格表の設定が必要です");
}
}
return null;
}
}

グループから取引先へ会計設定をコピーする処理を独自ルールで拡張する場合は、C_BPartnerTYPE_AFTER_NEWC_BPartner_Acct を書き換えます。グループ側の「所属取引先勘定科目上書き」と役割が重複するため、どちらを正とするか運用ルールを決めてから実装してください。

プロセス名説明
所属取引先勘定科目上書き会計タブの Processing ボタン。グループの勘定科目を所属取引先へコピー・上書き

取引先グループは会計・与信・価格の既定値が集約される要のマスタです。グループ設計を誤ると後からの是正コストが大きくなるため、導入初期の設計支援からご相談いただけます。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら