コンテンツにスキップ

iDempiere 受注源泉マスタの使い方|販売管理 操作マニュアル・技術仕様

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

受注源泉マスタは、受注がどの販売チャネル・経路から発生したかを分類するためのシンプルなコードマスタです。「電話」「Web サイト」「代理店」「店頭」といった受注の入口を登録しておき、受注伝票で選択することでチャネル別の売上分析が可能になります。

📌 ポイント: 検索キー(Value)と名称(Name)だけが実質的な入力項目です。運用開始後にコード体系を変えると過去伝票との比較ができなくなるため、分類の粒度は最初に決めておいてください。

  • 受注の発生元チャネルをコード(検索キー)と名称で登録する
  • 説明・コメントで各チャネルの定義や運用ルールを記録する
  • 「有効」(IsActive)チェックで、過去データを残したまま新規選択肢から外す
  • 受注伝票に紐づけてチャネル別の受注実績を集計する
  • 組織単位・クライアント単位でマスタを分けて管理する(アクセスレベルはクライアント+組織)

単一タブのシンプルな構成です。

タブ名テーブル項目数役割
受注源泉C_OrderSource7項目チャネルコード・名称・説明
graph TD
    A["🚀 メニューから開く<br/>販売管理 > 販売管理設定 > 受注源泉マスタ"] --> B["➕ 新規<br/>検索キーを入力<br/>(例: WEB)"]
    B --> C["✏️ 名称を入力<br/>(例: Web サイト経由)"]
    C --> D["📝 説明・コメントで<br/>分類ルールを記録"]
    D --> E["💾 保存"]
    E --> F["🧾 受注伝票で<br/>受注源泉を選択"]
    F --> G["📊 チャネル別に<br/>受注実績を集計"]
    E --> H["🔁 使わなくなったら<br/>「有効」チェックを外す"]

メニューから開く 販売管理 > 販売管理設定 > 受注源泉マスタ 新規 検索キーを入力 (例: WEB) 名称を入力 (例: Web サイト経由) 説明・コメントで 分類ルールを記録 保存 受注伝票で 受注源泉を選択 チャネル別に 受注実績を集計 使わなくなったら 「有効」チェックを外す

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

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

メニューから「販売管理 > 販売管理設定 > 受注源泉マスタ」を開きます(AD_Window_ID: 53101)。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • クライアント: 対象テナント(コンテキスト @#AD_Client_ID@ から自動セット)
    • 組織: 対象組織(コンテキスト @#AD_Org_ID@ から自動セット)
    • 検索キー: チャネルコード(最大40文字。例: WEBTELSHOP
    • 名称: チャネル名(最大60文字。例: Web サイト経由
  3. 任意項目を入力:
    • 説明: 一覧に表示される短い補足(最大255文字)
    • コメント: 判断基準など詳しい運用メモ(最大2,000文字)
  4. 保存」をクリック

💡 ヒント: 「どのチャネルに分類するか」の判断が担当者ごとにぶれると集計精度が落ちます。境界事例(例: 電話で問い合わせを受け Web から発注された場合)の扱いを「コメント」欄に明記しておくと運用が安定します。

検索キー名称説明の例
WEBWeb サイト経由自社サイトのフォームから受注したもの
TEL電話受注顧客からの電話で受注したもの
SHOP店頭実店舗で直接受注したもの
AGENT代理店販売代理店を経由して受注したもの
EXHIB展示会展示会・イベントで獲得した受注
REPEATリピート既存顧客からの継続受注
項目名必須説明
クライアント必須選択(Table Direct)対象テナント
組織必須選択(Table Direct)対象組織
検索キー必須文字列(40)チャネルコード。一意である必要があります
名称必須文字列(60)チャネル名
説明-文字列(255)短い補足説明
コメント-テキスト(2000)運用ルール等の詳細メモ
有効必須チェックレコードが有効か(既定値 Y

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

Q. 検索キーの重複はチェックされますか?

Section titled “Q. 検索キーの重複はチェックされますか?”

C_OrderSource には専用のモデルクラス(M...)が存在せず、生成クラス X_C_OrderSource(209行)とインターフェース I_C_OrderSource のみが提供されています。したがって Java 側の beforeSave() による重複検証はありません。AD の項目定義では検索キーは「一意である必要がある」とされているため、テーブルの一意インデックスに依存します。命名規則を決めて運用してください。

Q. 使わなくなったチャネルはどう処理しますか?

Section titled “Q. 使わなくなったチャネルはどう処理しますか?”

削除ではなく「有効」チェックを外してください。C_OrderSource は削除可(IsDeleteable=Y)ですが、過去の受注伝票が参照していると外部キー制約で削除できません。無効化すれば新規伝票の選択肢からは外れ、過去伝票の表示はそのまま維持されます。

Q. 受注源泉は必ず入力しなければなりませんか?

Section titled “Q. 受注源泉は必ず入力しなければなりませんか?”

受注伝票側の項目設定によります。標準では必須ではないため、集計に使う場合は AD の項目定義で必須にするか、Model Validator で入力を強制してください。

Q. チャネル別の売上はどう集計しますか?

Section titled “Q. チャネル別の売上はどう集計しますか?”

受注伝票に紐づいた C_OrderSource_ID を集計軸として、レポートビューやパフォーマンス測定(Performance Measure)で集計します。会計上の分析軸(アクティビティ・営業活動)と併用すると多面的な分析が可能です。

Q. 名称に長い説明文を入れられますか?

Section titled “Q. 名称に長い説明文を入れられますか?”

Name は最大60文字です。それ以上の情報は「説明」(255文字)または「コメント」(2,000文字)に記載してください。

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

受注源泉マスタはマスタデータ型のウィンドウ(AD_Window_ID: 53101)で、C_OrderSource テーブルに格納されます。手書きのモデルクラス(MOrderSource)は存在しません。iDempiere 13 標準ソースツリーには生成クラス X_C_OrderSource.java(209行)とインターフェース I_C_OrderSource.java のみが含まれます。Document 型ではなく、DocStatus / DocAction カラムを持ちません。

テーブル属性: アクセスレベル 3(クライアント+組織)、削除可(IsDeleteable=Y)、大量データ扱いなし(IsHighVolume=N)、ビューではありません。

このテーブルは ADempiere 時代の機能要望(FR2913307)で追加されたもので、migration-historic/354a-360lts/ 配下に 639_FR2913307-OrderSource.sql / 642_FR2913307-OrderSource.sql および採番の修正 728_BF3003367_SequenceC_OrderSource.sql が残っています。

classDiagram
    class X_C_OrderSource {
        <<generated>>
        +getValue() String
        +getName() String
        +getDescription() String
        +getHelp() String
    }
    class I_C_OrderSource {
        <<interface>>
    }
    class PO {
        <<abstract>>
    }
    X_C_OrderSource --|> PO
    X_C_OrderSource ..|> I_C_OrderSource
    C_Order --> X_C_OrderSource : "references"

<> +getValue() String +getName() String +getDescription() String +getHelp() String <> <> > PO X_C_OrderSource ..

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/X_C_OrderSource.java(インターフェース: I_C_OrderSource.java

カラム名必須説明備考
C_OrderSource_IDIDPK受注源泉ID主キー
AD_Client_IDTable DirectYクライアント既定値 @#AD_Client_ID@
AD_Org_IDTable DirectY組織既定値 @#AD_Org_ID@
ValueString(40)Y検索キー一意である必要あり
NameString(60)Y名称
DescriptionString(255)N説明
HelpText(2000)Nコメント
IsActiveYes-NoY有効既定値 'Y'
Created / CreatedByDate+Time / SearchY作成日時・作成者既定値 SYSDATE
Updated / UpdatedByDate+Time / SearchY更新日時・更新者既定値 SYSDATE
C_OrderSource_UUUUID(36)NUUID
erDiagram
    C_OrderSource ||--o{ C_Order : "order channel"
    C_BPartner ||--o{ C_Order : "customer"

order channel

生成クラスのみのため、beforeSave() / afterSave() などの独自ロジックはありません。データの整合性は次の3点で担保されます。

  1. AD の必須制約(クライアント・組織・検索キー・名称・有効)
  2. 各カラムの文字長制約(Value 40 / Name 60 / Description 255 / Help 2000)
  3. C_Order からの外部キー参照(参照中のレコードは削除不可)

コードからの参照は Query API で行います。

X_C_OrderSource src = new Query(ctx, X_C_OrderSource.Table_Name, "Value=?", trxName)
.setOnlyActiveRecords(true)
.setClient_ID()
.setParameters("WEB")
.first();

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

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

本テーブルには Callout(AD_Column.Callout)が定義されていません。検索キーの命名規則チェックなどを追加する場合は Model Validator を使用します。

public class OrderSourceValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (X_C_OrderSource.Table_Name.equals(po.get_TableName())
&& (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
String value = (String) po.get_Value("Value");
if (value != null && !value.matches("[A-Z]{2,8}"))
throw new AdempiereException("受注源泉コードは大文字英字2〜8文字で入力してください");
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // C_OrderSource は Document 型ではないため不要
}
}

受注伝票側で受注源泉を必須にしたい場合は、C_OrderTYPE_BEFORE_NEW / TYPE_BEFORE_CHANGE、または伝票完了時の docValidate(TIMING_BEFORE_COMPLETE) でチェックを追加してください。

このウィンドウに紐づく標準プロセスは、リファレンスページ・メニューのいずれにも登録されていません。


受注源泉は、チャネル別の売上分析やマーケティング投資の効果測定を支える基礎データです。 入力必須化・自動判定・BI ツールへの連携まで、Model Validator と OSGi プラグインでコア改変なしに実現できます。

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

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