コンテンツにスキップ

iDempiere マーケティングチャンネルの使い方|販売管理 操作マニュアル・技術仕様

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

マーケティングチャンネルは、顧客を獲得する経路(販売チャネル)を分類するためのマスタです。「Web サイト」「代理店」「展示会」「紹介」といった経路を登録しておき、マーケティングキャンペーンに割り当てることで、どの経路からの施策なのかを集計できるようになります。

📌 ポイント: マーケティングチャンネルは単独では使いません。マーケティングキャンペーンC_Campaign)の C_Channel_ID から参照される親マスタで、キャンペーンをチャネル別に束ねるのが本来の使い方です。

マーケティングチャンネルでできること

Section titled “マーケティングチャンネルでできること”
  • 顧客獲得の経路(チャネル)をコード化して登録
  • 各チャネルへの説明文の付与
  • マーケティングキャンペーンへのチャネル割当(キャンペーン側から参照)
  • 帳票・画面表示用のカラー(印刷カラー)の指定
  • 使わなくなったチャネルの無効化(アクティブ解除)

マーケティングチャンネルは単一タブのシンプルなマスタです。

タブ名テーブル項目数役割
マーケティングチャンネルC_Channel6項目チャネルの名称・説明・カラー

💡 ヒント: 項目が 6 つしかない軽量マスタです。初期構築時にまとめて登録し、以後はほとんど変更しない運用が向いています。

graph TD
    A["🚀 メニューから開く<br/>販売管理 > 販売管理設定 > マーケティングチャンネル"] --> B["➕ 新規ボタンをクリック"]
    B --> C["✏️ 名称を入力<br/>(例: Web サイト・代理店)"]
    C --> D["📝 説明を入力(任意)"]
    D --> E{"帳票で色分けする?"}
    E -->|する| F["🎨 カラーを選択<br/>(印刷カラーマスタから)"]
    E -->|しない| G["💾 保存"]
    F --> G
    G --> H["🔗 マーケティングキャンペーンの<br/>チャンネル欄で選択可能に"]

メニューから開く 販売管理 > 販売管理設定 > マーケティングチャンネル 新規ボタンをクリック 名称を入力 (例: Web サイト・代理店) 説明を入力(任意) 帳票で色分けする? カラーを選択 (印刷カラーマスタから) 保存 マーケティングキャンペーンの チャンネル欄で選択可能に する しない

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

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

メニューから「販売管理 > 販売管理設定 > マーケティングチャンネル」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • 名称: チャネル名(最大 60 文字。例: 展示会
  3. 必要に応じて任意項目を入力:
    • 説明: チャネルの補足説明(最大 255 文字)
    • カラー: 帳票・画面表示に使う印刷カラー
  4. 保存」をクリック

⚠️ 注意: 「検索キー」に相当する項目がありません。識別子は 名称 のみのため、命名規則を決めずに登録すると同名チャネルが並んで判別できなくなります。運用開始前に命名ルールを決めてください。

マーケティングチャンネルタブ

Section titled “マーケティングチャンネルタブ”
項目名カラム必須説明
クライアントAD_Client_ID必須選択テナント(自動セット)
組織AD_Org_ID必須選択組織(自動セット)
名称Name必須文字列(60)チャネル名。識別子として使用
説明Description-文字列(255)任意の補足説明
有効IsActive必須チェック無効化する場合はチェックを外す
カラーAD_PrintColor_ID-選択表示・印刷に使うカラー

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

チャネルとキャンペーンの関係

Section titled “チャネルとキャンペーンの関係”
graph TD
    A["マーケティングチャンネル<br/>C_Channel"] --> B["マーケティングキャンペーン<br/>C_Campaign"]
    B --> C["受注伝票<br/>C_Order"]
    B --> D["売上請求伝票<br/>C_Invoice"]
    C --> E["会計仕訳<br/>Fact_Acct"]
    D --> E

マーケティングチャンネル C_Channel マーケティングキャンペーン C_Campaign 受注伝票 C_Order 売上請求伝票 C_Invoice 会計仕訳 Fact_Acct

Q. マーケティングチャンネルは伝票に直接設定できますか?

Section titled “Q. マーケティングチャンネルは伝票に直接設定できますか?”

いいえ。受注伝票や請求伝票に会計ディメンションとして設定できるのは キャンペーンC_Campaign)です。C_Channel_ID を保持しているのは C_Campaign のみのため、チャネル別の集計はキャンペーン経由で行います。

Q. 検索キー(Value)がないのはなぜですか?

Section titled “Q. 検索キー(Value)がないのはなぜですか?”

C_Channel テーブルには Value カラムが定義されていないためです。一意識別のためのカラムは主キー C_Channel_ID と UUID のみで、業務上の識別は 名称 で行う設計になっています。

Q. 使わなくなったチャネルは削除すべきですか?

Section titled “Q. 使わなくなったチャネルは削除すべきですか?”

「有効」チェックを外して無効化する運用を推奨します。C_Channel は削除可能なテーブル(IsDeleteable=Y)ですが、既にキャンペーンから参照されている場合は外部キー制約で削除できません。無効化すれば新規のキャンペーンでは選択できなくなり、既存データはそのまま残ります。

Q. カラーは何に使われますか?

Section titled “Q. カラーは何に使われますか?”

AD_PrintColor_ID は印刷カラーマスタへの参照で、帳票出力や画面表示時の色指定に使われる汎用の仕組みです。設定は任意で、未設定でも業務上の支障はありません。

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

マーケティングチャンネルはマスタデータ型のウィンドウ(AD_Window_ID: 150)で、C_Channel テーブルに格納されます。テーブル属性は IsDeleteable=Y / IsHighVolume=N / AccessLevel=3(クライアント+組織レベル)です。専用のビジネスロジッククラス(MChannel)は 存在せず、自動生成クラス X_C_Channel(212行)のみが提供されます。したがって beforeSave() / afterSave() によるコア側の独自検証はなく、制約は DB のカラム定義(NOT NULL・外部キー)と AD 側の必須設定のみです。

classDiagram
    class X_C_Channel {
        <<generated>>
        +setName(String) void
        +getName() String
        +setDescription(String) void
        +setAD_PrintColor_ID(int) void
        +getKeyNamePair() KeyNamePair
    }
    class PO {
        <<abstract>>
    }
    class I_C_Channel {
        <<interface>>
    }
    X_C_Channel --|> PO
    X_C_Channel ..|> I_C_Channel
    X_C_Channel --> X_C_Campaign : referenced by

<> +setName(String) void +getName() String +setDescription(String) void +setAD_PrintColor_ID(int) void +getKeyNamePair() KeyNamePair <> <> > PO X_C_Channel ..

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

C_Channel(マーケティングチャンネル)

Section titled “C_Channel(マーケティングチャンネル)”
カラム名必須説明備考
C_Channel_IDIDPKチャネルID主キー
C_Channel_UUUUIDNUUID外部連携用の一意キー
AD_Client_IDTable DirectYクライアントdefault @#AD_Client_ID@
AD_Org_IDTable DirectY組織default @#AD_Org_ID@
NameString(60)Y名称識別子(IsIdentifier=Y)
DescriptionString(255)N説明
IsActiveYes-NoY有効default Y
AD_PrintColor_IDTable DirectNカラー印刷カラーへの参照

📌 ポイント: Value(検索キー)カラムは存在しません。Name が唯一の識別子カラム(IsIdentifier=Y)であるため、参照元の項目にはチャネル名がそのまま表示されます。

erDiagram
    C_Channel ||--o{ C_Campaign : "channel of campaign"
    C_Channel }o--o| AD_PrintColor : "display color"
    C_Campaign ||--o{ C_Order : "campaign dimension"
    C_Campaign ||--o{ C_Invoice : "campaign dimension"

channel of campaign display color campaign dimension

C_Channel には M クラス(ビジネスロジッククラス)が存在しないため、コア実装に保存時ロジック・伝票処理(DocAction)はありません。動作は以下に限定されます。

  • CRUD のみ: PO 基底クラスの標準的な挿入・更新・削除
  • 必須制約: Name / AD_Client_ID / AD_Org_ID / IsActive が NOT NULL
  • 参照整合性: C_Campaign.C_Channel_ID からの外部キー参照があるため、参照中のレコードは削除不可

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

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

M クラスが無いテーブルでも、ModelValidatormodelChange()PO 単位で発火するため独自検証を追加できます。テーブル名で判定します。

public class CustomChannelValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (MTable.getTableName(po.getCtx(), po.get_Table_ID()).equals("C_Channel")) {
if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) {
String name = po.get_ValueAsString("Name");
if (name == null || name.length() < 2) {
throw new AdempiereException("チャネル名は2文字以上で入力してください");
}
}
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // C_Channel は Document 型ではないため不要
}
}

C_Channel の各カラムには Callout が設定されていません(gw_column.tsv の callout 列がすべて空)。入力時の連動処理を追加したい場合は、独自 Callout を AD_Column.Callout に登録するか、OSGi の IColumnCallout サービスとして実装します。

チャネル別の予算や外部システムの ID を保持したい場合は、C_Channel にカスタムカラムを追加するのではなく、AD_Column 経由で拡張列を定義するか、別テーブル(例: X_ChannelExtension)を作成して 1:1 参照させるとバージョンアップ時の衝突を避けられます。

このウィンドウに紐づく標準プロセス(ボタン)はありません。Processing / DocAction カラムを持たない純粋なマスタです。


マーケティングチャンネルは項目が少ない分、自社の顧客獲得経路の分析軸に合わせた拡張(チャネル別 KPI、外部広告システムとの ID 連携など)が効果を発揮します。

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

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