Skip to content

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

This content is not available in your language yet.

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

取引先マスタは、iDempiereの取引先管理における最も基本的な機能です。得意先・仕入先・従業員を1つのマスタで一元管理し、受注・発注・請求・入出金など全ての業務伝票の基盤となります。

📌 ポイント: 1つの取引先レコードで「得意先・仕入先・従業員」のフラグを自由に組み合わせられます。例えば、社員兼仕入先のような兼務ケースも1レコードで管理できます。

取引先マスタでは、1つの取引先レコードに対して得意先(Customer)・仕入先(Vendor)・従業員(Employee)のフラグを自由に組み合わせることができます。

  • 得意先・仕入先・従業員の統合管理
  • 与信限度額の設定と残高監視
  • 複数住所(出荷先・請求先等)の管理
  • 担当者(ユーザー)の登録と連絡先管理
  • 支払条件・価格表の取引先別設定
  • 取引先グループによる分類と会計デフォルト値の継承
  • 口座情報(銀行口座)の管理

🖥️ インタラクティブ画面レイアウト: AD メタデータから自動生成した 取引先マスタの全タブ・全フィールド レイアウト(HTML版) で、実際の画面配置をご確認いただけます。

画面レイアウト(ヘッダータブ)

Section titled “画面レイアウト(ヘッダータブ)”
┌─ 取引先マスタ(Business Partner)────────────────────────────────────────┐
│ │
│ クライアント [▼ Table Direct] 組織 [▼ Table Direct] │
│ 検索キー [________________] 名前 [________________] │
│ 名前2 [________________] 説明 [________________] │
│ │
│ ── 分類 ────────────────────────────────────────────────────────────── │
│ 取引先グループ [▼ Table Direct] 言語 [▼ Table] │
│ 挨拶 [▼ Table Direct] 税ID [________________] │
│ │
│ ── 役割フラグ ──────────────────────────────────────────────────────── │
│ 得意先 [☐] 仕入先 [☐] 従業員 [☐] 営業担当 [☐] │
│ │
│ ── 得意先設定 ──────────────────────────────────────────────────────── │
│ 与信限度額 [¥_________] 与信残高 [¥_________(自動)] │
│ 価格表 [▼ Table Direct] 割引スキーマ [▼ Table] │
│ 支払方法 [▼ List] 支払条件 [▼ Table Direct] │
│ │
│ ── 仕入先設定 ──────────────────────────────────────────────────────── │
│ 仕入価格表 [▼ Table Direct] 仕入支払方法 [▼ List] │
│ 仕入支払条件 [▼ Table Direct] │
│ │
│ [取引先] [担当者] [住所] [銀行口座] [得意先会計] [仕入先会計] ...他4タブ │
└──────────────────────────────────────────────────────────────────────────┘

📌 ポイント: この図はADメタデータ(AD_Field.XPosition, IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。

graph TD
    subgraph "Business Partner (Window 123)"
        T1["🏢 取引先<br/>C_BPartner<br/>80項目"]
        T2["👤 担当者/ユーザー<br/>AD_User<br/>34項目"]
        T3["🌐 関心エリア<br/>R_ContactInterest<br/>7項目"]
        T4["🔑 BPアクセス<br/>AD_UserBPAccess<br/>6項目"]
        T5["📍 住所<br/>C_BPartner_Location<br/>19項目"]
        T6["🏦 銀行口座<br/>C_BP_BankAccount<br/>31項目"]
        T7["📊 得意先会計<br/>C_BP_Customer_Acct<br/>7項目"]
        T8["他4タブ(仕入先会計・従業員会計・メモ等)"]
    end
    T1 --> T2
    T2 --> T3
    T2 --> T4
    T1 --> T5
    T1 --> T6
    T1 --> T7
    T1 --> T8

Business Partner (Window 123) 取引先 C_BPartner 80項目 担当者/ユーザー AD_User 34項目 関心エリア R_ContactInterest 7項目 BPアクセス AD_UserBPAccess 6項目 住所 C_BPartner_Location 19項目 銀行口座 C_BP_BankAccount 31項目 得意先会計 C_BP_Customer_Acct 7項目 他4タブ(仕入先会計・従業員会計・メモ等)

💡 ヒント: 取引先グループを正しく設定すると、売掛金・買掛金の勘定科目や価格表・値引スキーマが自動的に継承されます。新規登録前にグループ設定を確認しておきましょう。

タブ名テーブル役割主な入力項目
取引先C_BPartner基本情報(名称・グループ・フラグ等)検索キー、名前、取引先グループ
取引先担当者(ユーザー)AD_User担当者・連絡先の登録名前、Eメール、電話番号
住所C_BPartner_Location住所の登録(複数可)住所、出荷先/請求先フラグ
取引先口座情報C_BP_BankAccount銀行口座情報銀行、口座番号、口座種別
得意先会計C_BP_Customer_Acct得意先の勘定科目設定売掛金勘定、前受金勘定
仕入先会計C_BP_Vendor_Acct仕入先の勘定科目設定買掛金勘定、前払金勘定
得意先情報(C_BPartner)得意先固有の設定与信限度額、支払条件、価格表
仕入先情報(C_BPartner)仕入先固有の設定支払条件、発注価格表
従業員情報(C_BPartner)従業員固有の設定部署、経費精算
メモC_BPartner_Memo取引先に関するメモメモ内容、日付
品目値引(M_Product)品目別の特別価格品目、特別価格
関係先C_BP_Relation取引先間の関連付け関連取引先、関連タイプ
graph TD
    A["🚀 メニューから開く<br/>取引先管理 > 取引先ルール > 取引先マスタ(標準)"] --> B["➕ 新規で基本情報を入力<br/>(検索キー・名前・取引先グループ)"]
    B --> C["✅ 種別フラグを設定<br/>(得意先/仕入先/従業員)"]
    C --> D["💾 保存"]
    D --> E["📍 住所タブで住所を登録"]
    E --> F["👤 担当者タブで担当者を登録"]
    F --> G{得意先の場合}
    G -->|与信設定が必要| H["📊 得意先情報タブで<br/>与信限度額を設定"]
    G -->|不要| I["✅ 完了"]
    H --> I

メニューから開く 取引先管理 > 取引先ルール > 取引先マスタ(標準) 新規で基本情報を入力 (検索キー・名前・取引先グループ) 種別フラグを設定 (得意先/仕入先/従業員) 保存 住所タブで住所を登録 担当者タブで担当者を登録 得意先情報タブで 与信限度額を設定 完了 得意先の場合 与信設定が必要 不要

⚠️ 注意: 与信限度額を設定した場合、未払残高が限度額を超えると受注の完了処理がブロックされます。限度額は実際の取引与信に合わせて慎重に設定してください。

メニューから「取引先管理 > 取引先ルール > 取引先マスタ(標準)」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 基本情報を入力:
    • 検索キー: 取引先コード(自動採番または手入力)
    • 名前: 取引先名称
    • 取引先グループ: 分類グループを選択(会計デフォルト値が継承される)
    • 得意先: 得意先として使用する場合にチェック
    • 仕入先: 仕入先として使用する場合にチェック
  3. 保存」をクリック
  4. 住所」タブに移動し、住所を登録
  5. 取引先担当者(ユーザー)」タブで担当者を登録
  1. 得意先情報」タブを開く
  2. 与信限度額(SO_CreditLimit)を設定
  3. 与信状態は自動計算される:
    • 未払残高が限度額を超えると「停止」に変更
    • 監視比率(デフォルト90%)を超えると「注意」に変更
項目名必須説明
検索キー必須文字列取引先コード。一意である必要がある
名前必須文字列取引先の正式名称
名前2-文字列補助名称(部署名等)
取引先グループ必須選択分類グループ。会計設定のデフォルト値を継承
得意先-チェック得意先フラグ
仕入先-チェック仕入先フラグ
従業員-チェック従業員フラグ
税金ID-文字列法人番号等の税務識別番号
DUNS-文字列企業識別番号
与信限度額-金額販売時の与信限度額
未払残高自動金額未決済の売掛金残高(自動計算)
与信状態自動リスト問題なし/注意/保留/停止
実績累計自動金額取引開始からの累計取引額
graph TD
    A[取引先マスタ] --> B{種別フラグ}
    B -->|得意先=Y| C[受注伝票で選択可]
    B -->|仕入先=Y| D[発注伝票で選択可]
    B -->|従業員=Y| E[経費精算で選択可]
    C --> F[与信管理]
    C --> G[売掛金管理]
    D --> H[買掛金管理]

種別フラグ 得意先=Y 仕入先=Y 従業員=Y 取引先マスタ 受注伝票で選択可 発注伝票で選択可 経費精算で選択可 与信管理 売掛金管理 買掛金管理

与信状態条件受注への影響
問題なし(OK)残高 < 監視額受注可能
注意(Watch)監視額 <= 残高 < 限度額受注可能(警告表示)
保留(Hold)手動設定受注時に警告
停止(Stop)残高 >= 限度額受注不可

Q. 得意先と仕入先を兼ねる取引先はどう登録しますか?

Section titled “Q. 得意先と仕入先を兼ねる取引先はどう登録しますか?”

「得意先」と「仕入先」の両方にチェックを入れてください。1つのレコードで両方の役割を管理できます。受注伝票では得意先として、発注伝票では仕入先として自動的にフィルタされます。

Q. 取引先グループは何に影響しますか?

Section titled “Q. 取引先グループは何に影響しますか?”

取引先グループは以下のデフォルト値を決定します:

  • 売掛金・買掛金の勘定科目
  • 値引スキーマ
  • 価格表 新規取引先作成時にグループの設定が自動的に継承されます。

Q. 与信限度額を超えた場合はどうなりますか?

Section titled “Q. 与信限度額を超えた場合はどうなりますか?”

受注伝票の完了処理(completeIt())で与信チェックが実行されます。与信状態が「停止」の場合、受注伝票を完了できません。「注意」の場合は警告が表示されますが処理は続行できます。

Q. 住所を複数登録できますか?

Section titled “Q. 住所を複数登録できますか?”

「住所」タブで複数の住所を登録できます。各住所に「出荷先」「請求先」「支払元」等のフラグを設定し、伝票作成時に使い分けることができます。

graph TD
    A[取引先マスタ] --> B[受注伝票]
    A --> C[発注伝票]
    A --> D[請求書]
    A --> E[入出金]
    A --> F[出荷伝票]
    G[取引先グループ] --> A
    H[支払条件] --> A

取引先マスタ 受注伝票 発注伝票 請求書 入出金 出荷伝票 取引先グループ 支払条件


iDempiereの取引先管理は、得意先・仕入先・従業員を一元管理できる柔軟なマスタ構造を備えています。 与信管理や複数住所管理など、実務に必要な機能をオープンソースERPで実現しませんか?

As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。

OSS ERP導入サービスの詳細はこちら


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

画面レイアウト(ヘッダータブ)

Section titled “画面レイアウト(ヘッダータブ)”
┌─ 取引先マスタ(Business Partner)────────────────────────────────────────┐
│ │
│ クライアント [▼ Table Direct] 組織 [▼ Table Direct] │
│ 検索キー [________________] 名前 [________________] │
│ 名前2 [________________] 説明 [________________] │
│ │
│ ── 分類 ────────────────────────────────────────────────────────────── │
│ 取引先グループ [▼ Table Direct] 言語 [▼ Table] │
│ 挨拶 [▼ Table Direct] 税ID [________________] │
│ │
│ ── 役割フラグ ──────────────────────────────────────────────────────── │
│ 得意先 [☐] 仕入先 [☐] 従業員 [☐] 営業担当 [☐] │
│ │
│ ── 得意先設定 ──────────────────────────────────────────────────────── │
│ 与信限度額 [¥_________] 与信残高 [¥_________(自動)] │
│ 価格表 [▼ Table Direct] 割引スキーマ [▼ Table] │
│ 支払方法 [▼ List] 支払条件 [▼ Table Direct] │
│ │
│ ── 仕入先設定 ──────────────────────────────────────────────────────── │
│ 仕入価格表 [▼ Table Direct] 仕入支払方法 [▼ List] │
│ 仕入支払条件 [▼ Table Direct] │
│ │
│ [取引先] [担当者] [住所] [銀行口座] [得意先会計] [仕入先会計] ...他4タブ │
└──────────────────────────────────────────────────────────────────────────┘

📌 ポイント: この図はADメタデータ(AD_Field.XPosition, IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。

取引先マスタはiDempiereの全業務の基盤となるマスタデータで、C_BPartner テーブルに格納されます。得意先・仕入先・従業員を1つのテーブルで統合管理し、MBPartner クラス(1,043行)がビジネスロジックを担います。与信管理、未払残高の自動計算、取引先グループからのデフォルト値継承が主要な機能です。

classDiagram
    class MBPartner {
        +setTotalOpenBalance() void
        +setSOCreditStatus() void
        +getSOCreditStatus(BigDecimal) String
        +isCreditStopHold() boolean
        +setActualLifeTimeValue() void
        +setBPGroup(MBPGroup) void
        +beforeSave(boolean) boolean
        +afterSave(boolean, boolean) boolean
    }
    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 --> MBPBankAccount : has many
    MBPartner --> MBPGroup : belongs to

+setTotalOpenBalance() void +setSOCreditStatus() void +getSOCreditStatus(BigDecimal) String +isCreditStopHold() boolean +setActualLifeTimeValue() void +setBPGroup(MBPGroup) void +beforeSave(boolean) boolean +afterSave(boolean, boolean) boolean <> <> <> > X_C_BPartner X_C_BPartner --

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

カラム名必須説明備考
C_BPartner_IDIDPK取引先ID主キー
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
ValueStringY検索キーUNIQUE
NameStringY名称
Name2StringN名称2
C_BP_Group_IDTableDirectY取引先グループデフォルト値の継承元
IsCustomerYesNoY得意先フラグY=受注伝票で選択可
IsVendorYesNoY仕入先フラグY=発注伝票で選択可
IsEmployeeYesNoY従業員フラグ
SO_CreditLimitAmountY与信限度額0=制限なし
SO_CreditUsedAmountY与信使用額自動計算
TotalOpenBalanceAmountY未払残高自動計算
SOCreditStatusListY与信状態O/W/H/S
ActualLifeTimeValueAmountY実績累計自動計算
C_PaymentTerm_IDTableDirectN支払条件得意先デフォルト
PO_PaymentTerm_IDTableDirectN仕入支払条件仕入先デフォルト
M_PriceList_IDTableDirectN価格表得意先デフォルト
PO_PriceList_IDTableDirectN仕入価格表仕入先デフォルト
PaymentRuleListN支払方法
C_Dunning_IDTableDirectN督促
erDiagram
    C_BPartner ||--o{ C_BPartner_Location : "has"
    C_BPartner ||--o{ AD_User : "has contacts"
    C_BPartner ||--o{ C_BP_BankAccount : "has"
    C_BPartner }o--|| C_BP_Group : "belongs to"
    C_BPartner ||--o{ C_Order : "referenced by"
    C_BPartner ||--o{ C_Invoice : "referenced by"
    C_BPartner ||--o{ C_Payment : "referenced by"
    C_BPartner ||--o{ M_InOut : "referenced by"
    C_BP_Group ||--o{ C_BP_Group_Acct : "has"

has contacts belongs to referenced by

保存時バリデーション(beforeSave)

Section titled “保存時バリデーション(beforeSave)”

MBPartner.beforeSave() の処理:

  1. 取引先グループの検証: C_BP_Group_ID が未設定または無効な場合はエラー
  2. グループデフォルト値の継承: 新規レコードまたはグループ変更時に setBPGroup() でデフォルト値をセット
  1. ツリーレコードの作成: 新規の場合、取引先ツリーにノードを追加
  2. 会計レコードの作成: 得意先会計(C_BP_Customer_Acct)、仕入先会計(C_BP_Vendor_Acct)を取引先グループの設定から生成
  3. 勘定科目組合せの更新: 検索キーまたは名称変更時に C_ValidCombination の説明を更新
flowchart TD
    A[未払残高の計算] --> B{与信限度額 > 0?}
    B -->|No| C[与信状態 = OK]
    B -->|Yes| D{残高 >= 限度額?}
    D -->|Yes| E[与信状態 = Stop]
    D -->|No| F{残高 >= 監視額?}
    F -->|Yes| G[与信状態 = Watch]
    F -->|No| C

与信限度額 > 0? 残高 >= 限度額? 残高 >= 監視額? 未払残高の計算 与信状態 = OK 与信状態 = Stop 与信状態 = Watch

setTotalOpenBalance(): 未決済の請求書・入出金から未払残高を自動計算。SQL で C_Invoice_vC_Payment から集計。

setSOCreditStatus(): 未払残高と与信限度額を比較し、与信状態(SOCreditStatus)を自動更新。監視比率はシステム設定 CREDITWATCHRATIO(デフォルト90%)で制御。

isCreditStopHold(): 与信状態が「停止」または「保留」の場合に true を返す。受注伝票の prepareIt() で参照される。

getNotInvoicedAmt(): 出荷済み・未請求の金額を M_InOutLine から集計。与信チェック時に未払残高に加算される。

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

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

取引先マスタに独自バリデーションを追加する方法:

public class CustomBPartnerValidator 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("得意先には与信限度額の設定が必要です");
}
}
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // C_BPartnerはDocument型ではないため不要
}
}

取引先選択時の連動処理は CalloutOrder.bPartner() 等で実装されています。取引先マスタ自体のCalloutを追加する場合は IColumnCallout インターフェースを実装してください。

MBPGroup のデフォルト値を活用することで、個別の取引先設定を最小化できます:

  • 値引スキーマ(M_DiscountSchema_ID / PO_DiscountSchema_ID
  • 価格表(M_PriceList_ID / PO_PriceList_ID
  • 督促設定(C_Dunning_ID
プロセス名説明
取引先残高更新全取引先の未払残高・与信状態を一括再計算
取引先マージ重複する取引先レコードを統合

iDempiereの取引先マスタは Model Validator で安全にカスタマイズできます。 与信管理の強化や独自の取引先分類など、コア改変なしで業務要件に合わせた拡張が可能です。

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

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