iDempiere 取引先マスタの使い方|取引先管理 操作マニュアル・技術仕様
📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。
取引先マスタは、iDempiereの取引先管理における最も基本的な機能です。得意先・仕入先・従業員を1つのマスタで一元管理し、受注・発注・請求・入出金など全ての業務伝票の基盤となります。
📌 ポイント: 1つの取引先レコードで「得意先・仕入先・従業員」のフラグを自由に組み合わせられます。例えば、社員兼仕入先のような兼務ケースも1レコードで管理できます。
取引先マスタでは、1つの取引先レコードに対して得意先(Customer)・仕入先(Vendor)・従業員(Employee)のフラグを自由に組み合わせることができます。
取引先マスタでできること
Section titled “取引先マスタでできること”- 得意先・仕入先・従業員の統合管理
- 与信限度額の設定と残高監視
- 複数住所(出荷先・請求先等)の管理
- 担当者(ユーザー)の登録と連絡先管理
- 支払条件・価格表の取引先別設定
- 取引先グループによる分類と会計デフォルト値の継承
- 口座情報(銀行口座)の管理
🖥️ インタラクティブ画面レイアウト: 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
💡 ヒント: 取引先グループを正しく設定すると、売掛金・買掛金の勘定科目や価格表・値引スキーマが自動的に継承されます。新規登録前にグループ設定を確認しておきましょう。
| タブ名 | テーブル | 役割 | 主な入力項目 |
|---|---|---|---|
| 取引先 | 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 | 取引先間の関連付け | 関連取引先、関連タイプ |
取引先マスタの基本操作手順
Section titled “取引先マスタの基本操作手順”graph TD
A["🚀 メニューから開く<br/>取引先管理 > 取引先ルール > 取引先マスタ(標準)"] --> B["➕ 新規で基本情報を入力<br/>(検索キー・名前・取引先グループ)"]
B --> C["✅ 種別フラグを設定<br/>(得意先/仕入先/従業員)"]
C --> D["💾 保存"]
D --> E["📍 住所タブで住所を登録"]
E --> F["👤 担当者タブで担当者を登録"]
F --> G{得意先の場合}
G -->|与信設定が必要| H["📊 得意先情報タブで<br/>与信限度額を設定"]
G -->|不要| I["✅ 完了"]
H --> I
⚠️ 注意: 与信限度額を設定した場合、未払残高が限度額を超えると受注の完了処理がブロックされます。限度額は実際の取引与信に合わせて慎重に設定してください。
アクセス方法
Section titled “アクセス方法”メニューから「取引先管理 > 取引先ルール > 取引先マスタ(標準)」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 検索キー: 取引先コード(自動採番または手入力)
- 名前: 取引先名称
- 取引先グループ: 分類グループを選択(会計デフォルト値が継承される)
- 得意先: 得意先として使用する場合にチェック
- 仕入先: 仕入先として使用する場合にチェック
- 「保存」をクリック
- 「住所」タブに移動し、住所を登録
- 「取引先担当者(ユーザー)」タブで担当者を登録
与信管理の設定
Section titled “与信管理の設定”- 「得意先情報」タブを開く
- 与信限度額(SO_CreditLimit)を設定
- 与信状態は自動計算される:
- 未払残高が限度額を超えると「停止」に変更
- 監視比率(デフォルト90%)を超えると「注意」に変更
項目リファレンス
Section titled “項目リファレンス”取引先タブ(基本情報)
Section titled “取引先タブ(基本情報)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 検索キー | 必須 | 文字列 | 取引先コード。一意である必要がある |
| 名前 | 必須 | 文字列 | 取引先の正式名称 |
| 名前2 | - | 文字列 | 補助名称(部署名等) |
| 取引先グループ | 必須 | 選択 | 分類グループ。会計設定のデフォルト値を継承 |
| 得意先 | - | チェック | 得意先フラグ |
| 仕入先 | - | チェック | 仕入先フラグ |
| 従業員 | - | チェック | 従業員フラグ |
| 税金ID | - | 文字列 | 法人番号等の税務識別番号 |
| DUNS | - | 文字列 | 企業識別番号 |
| 与信限度額 | - | 金額 | 販売時の与信限度額 |
| 未払残高 | 自動 | 金額 | 未決済の売掛金残高(自動計算) |
| 与信状態 | 自動 | リスト | 問題なし/注意/保留/停止 |
| 実績累計 | 自動 | 金額 | 取引開始からの累計取引額 |
取引先の種別管理
Section titled “取引先の種別管理”graph TD
A[取引先マスタ] --> B{種別フラグ}
B -->|得意先=Y| C[受注伝票で選択可]
B -->|仕入先=Y| D[発注伝票で選択可]
B -->|従業員=Y| E[経費精算で選択可]
C --> F[与信管理]
C --> G[売掛金管理]
D --> H[買掛金管理]
与信状態の遷移
Section titled “与信状態の遷移”| 与信状態 | 条件 | 受注への影響 |
|---|---|---|
| 問題なし(OK) | 残高 < 監視額 | 受注可能 |
| 注意(Watch) | 監視額 <= 残高 < 限度額 | 受注可能(警告表示) |
| 保留(Hold) | 手動設定 | 受注時に警告 |
| 停止(Stop) | 残高 >= 限度額 | 受注不可 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 得意先と仕入先を兼ねる取引先はどう登録しますか?
Section titled “Q. 得意先と仕入先を兼ねる取引先はどう登録しますか?”「得意先」と「仕入先」の両方にチェックを入れてください。1つのレコードで両方の役割を管理できます。受注伝票では得意先として、発注伝票では仕入先として自動的にフィルタされます。
Q. 取引先グループは何に影響しますか?
Section titled “Q. 取引先グループは何に影響しますか?”取引先グループは以下のデフォルト値を決定します:
- 売掛金・買掛金の勘定科目
- 値引スキーマ
- 価格表 新規取引先作成時にグループの設定が自動的に継承されます。
Q. 与信限度額を超えた場合はどうなりますか?
Section titled “Q. 与信限度額を超えた場合はどうなりますか?”受注伝票の完了処理(completeIt())で与信チェックが実行されます。与信状態が「停止」の場合、受注伝票を完了できません。「注意」の場合は警告が表示されますが処理は続行できます。
Q. 住所を複数登録できますか?
Section titled “Q. 住所を複数登録できますか?”「住所」タブで複数の住所を登録できます。各住所に「出荷先」「請求先」「支払元」等のフラグを設定し、伝票作成時に使い分けることができます。
業務フロー上の位置づけ
Section titled “業務フロー上の位置づけ”graph TD
A[取引先マスタ] --> B[受注伝票]
A --> C[発注伝票]
A --> D[請求書]
A --> E[入出金]
A --> F[出荷伝票]
G[取引先グループ] --> A
H[支払条件] --> A
関連する仕様書
Section titled “関連する仕様書”OSS ERP導入についてのご相談
Section titled “OSS ERP導入についてのご相談”iDempiereの取引先管理は、得意先・仕入先・従業員を一元管理できる柔軟なマスタ構造を備えています。 与信管理や複数住所管理など、実務に必要な機能をオープンソースERPで実現しませんか?
As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。
🛠 技術仕様(開発者向け)
画面レイアウト(ヘッダータブ)
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行)がビジネスロジックを担います。与信管理、未払残高の自動計算、取引先グループからのデフォルト値継承が主要な機能です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MBPartner.java
関連DBテーブル
Section titled “関連DBテーブル”C_BPartner(取引先マスタ)
Section titled “C_BPartner(取引先マスタ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_BPartner_ID | ID | PK | 取引先ID | 主キー |
| AD_Client_ID | TableDirect | Y | クライアント | |
| AD_Org_ID | TableDirect | Y | 組織 | |
| Value | String | Y | 検索キー | UNIQUE |
| Name | String | Y | 名称 | |
| Name2 | String | N | 名称2 | |
| C_BP_Group_ID | TableDirect | Y | 取引先グループ | デフォルト値の継承元 |
| IsCustomer | YesNo | Y | 得意先フラグ | Y=受注伝票で選択可 |
| IsVendor | YesNo | Y | 仕入先フラグ | Y=発注伝票で選択可 |
| IsEmployee | YesNo | Y | 従業員フラグ | |
| SO_CreditLimit | Amount | Y | 与信限度額 | 0=制限なし |
| SO_CreditUsed | Amount | Y | 与信使用額 | 自動計算 |
| TotalOpenBalance | Amount | Y | 未払残高 | 自動計算 |
| SOCreditStatus | List | Y | 与信状態 | O/W/H/S |
| ActualLifeTimeValue | Amount | Y | 実績累計 | 自動計算 |
| C_PaymentTerm_ID | TableDirect | N | 支払条件 | 得意先デフォルト |
| PO_PaymentTerm_ID | TableDirect | N | 仕入支払条件 | 仕入先デフォルト |
| M_PriceList_ID | TableDirect | N | 価格表 | 得意先デフォルト |
| PO_PriceList_ID | TableDirect | N | 仕入価格表 | 仕入先デフォルト |
| PaymentRule | List | N | 支払方法 | |
| C_Dunning_ID | TableDirect | N | 督促 |
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"
ビジネスロジック
Section titled “ビジネスロジック”保存時バリデーション(beforeSave)
Section titled “保存時バリデーション(beforeSave)”MBPartner.beforeSave() の処理:
- 取引先グループの検証:
C_BP_Group_IDが未設定または無効な場合はエラー - グループデフォルト値の継承: 新規レコードまたはグループ変更時に
setBPGroup()でデフォルト値をセット
保存後処理(afterSave)
Section titled “保存後処理(afterSave)”- ツリーレコードの作成: 新規の場合、取引先ツリーにノードを追加
- 会計レコードの作成: 得意先会計(
C_BP_Customer_Acct)、仕入先会計(C_BP_Vendor_Acct)を取引先グループの設定から生成 - 勘定科目組合せの更新: 検索キーまたは名称変更時に
C_ValidCombinationの説明を更新
与信管理ロジック
Section titled “与信管理ロジック”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
setTotalOpenBalance(): 未決済の請求書・入出金から未払残高を自動計算。SQL で C_Invoice_v と C_Payment から集計。
setSOCreditStatus(): 未払残高と与信限度額を比較し、与信状態(SOCreditStatus)を自動更新。監視比率はシステム設定 CREDITWATCHRATIO(デフォルト90%)で制御。
isCreditStopHold(): 与信状態が「停止」または「保留」の場合に true を返す。受注伝票の prepareIt() で参照される。
未請求出荷金額
Section titled “未請求出荷金額”getNotInvoicedAmt(): 出荷済み・未請求の金額を M_InOutLine から集計。与信チェック時に未払残高に加算される。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”取引先マスタに独自バリデーションを追加する方法:
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型ではないため不要 }}Callout 追加
Section titled “Callout 追加”取引先選択時の連動処理は CalloutOrder.bPartner() 等で実装されています。取引先マスタ自体のCalloutを追加する場合は IColumnCallout インターフェースを実装してください。
取引先グループの活用
Section titled “取引先グループの活用”MBPGroup のデフォルト値を活用することで、個別の取引先設定を最小化できます:
- 値引スキーマ(
M_DiscountSchema_ID/PO_DiscountSchema_ID) - 価格表(
M_PriceList_ID/PO_PriceList_ID) - 督促設定(
C_Dunning_ID)
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| 取引先残高更新 | 全取引先の未払残高・与信状態を一括再計算 |
| 取引先マージ | 重複する取引先レコードを統合 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの取引先マスタは Model Validator で安全にカスタマイズできます。 与信管理の強化や独自の取引先分類など、コア改変なしで業務要件に合わせた拡張が可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。