コンテンツにスキップ

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

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

関連取引先は、2 つの取引先の間の「第三者関係ルール」を定義するマスタです。「出荷は A 社へ、請求書は親会社の B 社へ」「B 社の請求を A 社が支払う」といった、伝票の宛先・支払関係を取引先マスタとは別のレコードとして管理します。

📌 ポイント: 取引先住所を指定しない場合、そのルールは対象取引先のすべての住所に適用されます。特定の出荷先住所だけに適用したい場合のみ住所を指定してください。

  • 出荷先と請求先を別の取引先に分離(子会社へ納品・親会社へ請求など)
  • 関係取引先による請求書の支払(入金先: Pay-From ルール)
  • 支払先住所(Remit-To)の指定
  • 取引先住所単位でのルール適用(住所未指定なら全住所に適用)
  • グループ企業・代理店経由取引の宛先ルールの一元管理

関連取引先は 1 タブのみのシンプルな構成です。

タブ名テーブル項目数役割
関連取引先C_BP_Relation約13項目取引先と関係取引先のペア + 4つの関係フラグ
graph TD
    A["🚀 メニューから開く<br/>取引先管理 > 取引先管理セットアップ > 関連取引先"] --> B["➕ 新規で名称を入力"]
    B --> C["👥 取引先を選択<br/>(ルールの起点となる取引先)"]
    C --> D["🔗 関係取引先と<br/>関係取引先住所を選択"]
    D --> E{適用する関係}
    E -->|納品の宛先| F["📦 出荷納品先にチェック"]
    E -->|請求書の宛先| G["🧾 請求先にチェック"]
    E -->|請求を支払える| H["💰 入金先にチェック"]
    E -->|支払の宛先| I["🏦 支払先にチェック"]
    F --> J["💾 保存"]
    G --> J
    H --> J
    I --> J

メニューから開く 取引先管理 > 取引先管理セットアップ > 関連取引先 新規で名称を入力 取引先を選択 (ルールの起点となる取引先) 関係取引先と 関係取引先住所を選択 出荷納品先にチェック 請求先にチェック 入金先にチェック 支払先にチェック 保存 適用する関係 納品の宛先 請求書の宛先 請求を支払える 支払の宛先

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

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • 名称: ルールの名前(例: A社出荷→B社請求
    • 取引先: ルールの起点となる取引先
    • 関係取引先: 関係先となる取引先
    • 関係取引先住所: 関係取引先側の適用住所(必須)
  3. 関係の種類をチェック(出荷納品先 / 請求先 / 入金先 / 支払先)
  4. 必要に応じて 取引先住所 を指定(未指定なら全住所に適用)
  5. 保存」をクリック
項目名必須説明
名称必須文字列(60)ルールの識別名
説明-文字列(255)補足説明
取引先必須検索ルールの起点となる取引先
取引先住所-選択起点側の適用住所(未指定=全住所)
関係取引先必須検索関係先の取引先
関係取引先住所必須選択関係先側の住所
出荷納品先-チェック関係先を出荷の宛先とする
請求先-チェック関係先を請求書の宛先とする
入金先-チェック関係先が取引先の請求書を支払える
支払先-チェック関係先を支払の宛先とする
有効必須チェックレコードの有効/無効

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

Q. 取引先住所を空欄にするとどうなりますか?

Section titled “Q. 取引先住所を空欄にするとどうなりますか?”

そのルールは対象取引先のすべての住所に適用されます(アプリケーション辞書のタブ説明に明記された標準動作です)。特定の出荷先住所だけを親会社請求にしたい場合は、取引先住所を明示的に指定してください。

Q. 「入金先(Pay-From)」は何に使われますか?

Section titled “Q. 「入金先(Pay-From)」は何に使われますか?”

支払選択などで「別の取引先がこの取引先の請求書を支払ってよいか」の判定に使われます。ソースコード上は MBPRelation.canPay()IsPayFrom='Y' かつ 取引先/関係取引先 のペアが一致する有効なルールの存在を確認します。親会社による子会社請求の一括支払(サードパーティ支払)に利用できます。

Q. 取引先マスタの「請求先」住所との違いは?

Section titled “Q. 取引先マスタの「請求先」住所との違いは?”

取引先マスタの住所フラグは同一取引先内の住所の使い分けです。関連取引先は別の取引先へ宛先を振り替えるためのルールで、取引先をまたぐ関係(親会社・代理店等)を表現する場合に使用します。

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

関連取引先は C_BP_Relation テーブル(削除可、アクセスレベル 2)に格納されるマスタです。モデルクラスは MBPRelation(96行)で、コンストラクタ群のほかに静的判定メソッド canPay() のみを持つ薄いクラスです。Document 型ではありません。

classDiagram
    class MBPRelation {
        +canPay(ctx, bpProxyId, bpDocId, trxName)$ boolean
    }
    class X_C_BP_Relation {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MBPRelation --|> X_C_BP_Relation
    X_C_BP_Relation --|> PO
    MBPRelation --> MBPartner : relates two partners

+canPay(ctx, bpProxyId, bpDocId, trxName)$ boolean <> <> > X_C_BP_Relation X_C_BP_Relation --

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

カラム名必須説明備考
C_BP_Relation_IDIDPK関連取引先ID主キー
AD_Client_IDTableDirectYクライアントdefault @#AD_Client_ID@
AD_Org_IDTableDirectY組織default @#AD_Org_ID@
NameString(60)Y名称識別子(Identifier)
DescriptionString(255)N説明
C_BPartner_IDSearchY取引先ルールの起点
C_BPartner_Location_IDTableDirectN取引先住所NULL=全住所に適用
C_BPartnerRelation_IDSearchY関係取引先
C_BPartnerRelation_Location_IDTableY関係取引先住所
IsShipToYesNoY出荷納品先default N
IsBillToYesNoY請求先
IsPayFromYesNoY入金先canPay() の判定対象
IsRemitToYesNoY支払先
IsActiveYesNoY有効default Y

MBPRelationbeforeSave/afterSave のオーバーライドはありません。唯一のロジックは静的メソッド canPay() です:

public static boolean canPay(Properties ctx, int bpProxyId, int bpDocId, String trxName) {
int cnt = new Query(ctx, Table_Name,
"IsPayFrom='Y' AND C_BPartner_ID=? AND C_BPartnerRelation_ID=?", trxName)
.setParameters(bpDocId, bpProxyId)
.setOnlyActiveRecords(true)
.count();
return cnt > 0;
}

伝票の取引先(bpDocId)に対して、支払を代行する取引先(bpProxyId)が IsPayFrom='Y' の有効なルールを持つかを件数で判定します。

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

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

C_BP_Relation に標準の Callout は定義されていません。関係フラグの排他制御や重複ルールの禁止など独自制約を追加する場合は、OSGi Model Validator の modelChange()TYPE_BEFORE_NEW / TYPE_BEFORE_CHANGE)で MBPRelation を検証する方式を推奨します。コア改変は不要です。


出荷先・請求先の振替ルールは、グループ企業取引や代理店ビジネスの伝票フローに直結します。標準の関連取引先で足りない判定ロジックも Model Validator で安全に拡張できます。

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

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