iDempiere マーケティングキャンペーンの使い方|販売管理 操作マニュアル・技術仕様
📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。
マーケティングキャンペーンは、販促活動(キャンペーン)の期間と原価を定義し、そのキャンペーンから生まれた営業案件(商談)を管理するウィンドウです。キャンペーンは受注・請求などの伝票に会計ディメンションとして設定でき、施策ごとの売上集計に活用できます。
📌 ポイント: 「営業明細」タブで営業ステージを選択すると、成約の「可能性(%)」がステージのデフォルト値で自動セットされます(Callout による自動入力)。案件額×可能性で加重した見込金額をパイプライン管理に使えます。
マーケティングキャンペーンでできること
Section titled “マーケティングキャンペーンでできること”- キャンペーンの期間(開始日付・終了日付)と原価の登録
- マーケティングチャンネル(獲得経路)との紐付け
- 営業案件(商談)の登録と営業ステージ・可能性(%)による進捗管理
- 案件金額と可能性から加重金額(案件額×可能性)を自動計算
- 成約した案件への受注伝票の紐付け
- サマリレベルによるキャンペーンの階層管理(ツリー構造)
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 営業活動 | C_Campaign | 約11項目 | キャンペーンの基本情報(期間・チャンネル・原価) |
| 営業明細 | C_Opportunity | 約18項目 | キャンペーンから発生した営業案件(商談) |
| 翻訳 | C_Campaign_Trl | 約8項目 | 多言語対応の翻訳 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>販売管理 > 販売管理設定 > マーケティングキャンペーン"] --> B["➕ 新規でキャンペーンを登録<br/>(検索キー・名称・期間)"]
B --> C["📺 チャンネル・原価を設定"]
C --> D["💾 保存"]
D --> E["📋 営業明細タブで<br/>営業案件を登録"]
E --> F["🎯 営業ステージを選択<br/>→ 可能性(%)が自動セット"]
F --> G["📈 商談進行に応じて<br/>ステージ・金額を更新"]
G --> H["✅ 成約時に受注伝票を紐付け<br/>クローズ日付を入力"]
アクセス方法
Section titled “アクセス方法”メニューから「販売管理 > 販売管理設定 > マーケティングキャンペーン」を開きます。
新規登録(キャンペーン)
Section titled “新規登録(キャンペーン)”- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 検索キー: キャンペーンの一意コード(例:
CAMP2026SPRING) - 名称: キャンペーン名(例:
2026年春キャンペーン) - 開始日付 / 終了日付: キャンペーンの有効期間
- チャンネル: 獲得経路(マーケティングチャンネルで事前登録)
- 原価: キャンペーンに投じた費用(会計通貨)
- 検索キー: キャンペーンの一意コード(例:
- 「保存」をクリック
営業案件(商談)の登録
Section titled “営業案件(商談)の登録”- 「営業明細」タブに移動し「新規」をクリック
- 案件情報を入力:
- 取引先: 商談先の取引先
- 営業ステージ: 商談の進捗段階(選択すると可能性(%)が自動セット)
- 予定クローズ日付: 成約見込日
- 販売単価: 案件の見込金額
- 通貨: 案件の通貨
- 「保存」をクリック。「案件額×可能性」に加重金額が表示されます
- 成約したら「受注伝票」を紐付け、「クローズ日付」を入力
⚠️ 注意: 営業案件に受注伝票を紐付けると、保存時に「販売単価」(案件金額)が受注伝票の総合計で自動的に上書きされます(
MOpportunity.beforeSave()の仕様)。
項目リファレンス(営業明細タブ)
Section titled “項目リファレンス(営業明細タブ)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票番号 | 必須 | 文字列 | 案件の一意番号 |
| 取引先 | 必須 | 検索 | 商談先の取引先 |
| 営業ステージ | 必須 | 選択 | 商談の進捗段階(C_SalesStage) |
| 可能性 | 必須 | 数値 | 成約可能性(%)。ステージ選択で自動セット |
| 予定クローズ日付 | 必須 | 日付 | 成約見込日 |
| 販売単価 | 必須 | 金額 | 案件の見込金額 |
| 案件額×可能性 | - | 金額 | 見込金額×可能性の加重金額 |
| 通貨 | 必須 | 選択 | 案件の通貨 |
| 社内担当者 | - | 選択 | 担当営業 |
| 受注伝票 | - | 検索 | 成約時に紐付ける受注伝票 |
| クローズ日付 | - | 日付 | 実際のクローズ日 |
全項目は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 営業ステージを変えると「可能性」が勝手に書き換わるのはなぜですか?
Section titled “Q. 営業ステージを変えると「可能性」が勝手に書き換わるのはなぜですか?”営業ステージ欄には Callout(CalloutOpportunity.salesStage)が設定されており、選択したステージ(C_SalesStage)に定義された可能性(%)を自動セットする仕様です。自動セット後に手動で上書きすることは可能です。
Q. 販売単価(案件金額)を修正しても保存すると元に戻ります
Section titled “Q. 販売単価(案件金額)を修正しても保存すると元に戻ります”受注伝票が紐付いている案件は、保存時に案件金額が受注伝票の総合計で上書きされます(MOpportunity.beforeSave())。受注確定後の金額修正は受注伝票側で行ってください。
Q. サマリレベルとは何ですか?
Section titled “Q. サマリレベルとは何ですか?”チェックすると、そのキャンペーンは実績を持たない「集計用の親ノード」になります。キャンペーンはツリー構造(キャンペーン木)で階層管理でき、レポートで階層集計に利用できます。
Q. キャンペーンは会計に影響しますか?
Section titled “Q. キャンペーンは会計に影響しますか?”キャンペーン自体は伝票(Document)ではないため仕訳は発生しません。ただしキャンペーンは会計ディメンションの一つで、受注・請求伝票等に設定すると会計ファクトに引き継がれ、キャンペーン別の損益分析が可能になります。
🛠 技術仕様(開発者向け)
マーケティングキャンペーンは C_Campaign(マスタ、アクセスレベル: Client+Org)を親に、営業案件 C_Opportunity・翻訳 C_Campaign_Trl を子に持つウィンドウです。モデルクラスは MCampaign(94行)と MOpportunity(80行)で、いずれも軽量なクラスです。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MCampaign {
+afterSave() boolean
}
class MOpportunity {
+beforeSave() boolean
}
class X_C_Campaign {
<<generated>>
}
class X_C_Opportunity {
<<generated>>
}
class PO {
<<abstract>>
}
MCampaign --|> X_C_Campaign
MOpportunity --|> X_C_Opportunity
X_C_Campaign --|> PO
X_C_Opportunity --|> PO
MCampaign --> MOpportunity : has many
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MCampaign.java / MOpportunity.java
関連DBテーブル
Section titled “関連DBテーブル”C_Campaign(キャンペーン)
Section titled “C_Campaign(キャンペーン)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Campaign_ID | ID | PK | キャンペーンID | 主キー |
| Value | String(40) | Y | 検索キー | |
| Name | String(60) | Y | 名称 | |
| C_Channel_ID | TableDirect | N | チャンネル | |
| StartDate / EndDate | Date | N | 期間 | |
| Costs | Costs+Prices | Y | 原価 | 会計通貨 |
| IsSummary | YesNo | Y | サマリレベル | ツリー階層用 |
C_Opportunity(営業案件)
Section titled “C_Opportunity(営業案件)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Opportunity_ID | ID | PK | 案件ID | 主キー |
| DocumentNo | String(60) | Y | 伝票番号 | |
| C_BPartner_ID | Search | Y | 取引先 | デフォルト @C_BPartner_ID@ |
| C_SalesStage_ID | Table | Y | 営業ステージ | Callout: CalloutOpportunity.salesStage |
| Probability | Amount | Y | 可能性(%) | ステージから自動セット |
| ExpectedCloseDate | Date | Y | 予定クローズ日付 | |
| OpportunityAmt | Amount | Y | 案件金額 | 受注紐付け時に自動上書き |
| WeightedAmt | Amount | N | 加重金額 | |
| C_Currency_ID | TableDirect | Y | 通貨 | |
| C_Order_ID | Search | N | 受注伝票 | |
| C_Campaign_ID | TableDirect | N | キャンペーン | 親リンク |
ビジネスロジック
Section titled “ビジネスロジック”MCampaign.afterSave(): 新規登録時にキャンペーン木(TREETYPE_Campaign)へツリーレコードを挿入し、検索キー変更時にツリーを更新します。検索キー・名称の変更時はMAccount.updateValueDescription()で会計組合せ(C_ValidCombination)の表示も更新します。MOpportunity.beforeSave():C_Order_IDが設定されている場合、受注伝票のGrandTotalをOpportunityAmtにセットします(案件金額と受注金額の同期)。CalloutOpportunity.salesStage(56行、org.adempiere.base.callout): 選択されたC_SalesStageのProbabilityを SQL で取得し、案件の可能性欄に転記します。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
C_OpportunityのTYPE_BEFORE_CHANGEでステージ遷移の制約(例: 逆戻り禁止)を追加できます。コア改変は不要です。 - Callout: 標準の
CalloutOpportunity.salesStageに加え、独自 Callout を AD_Column の Callout 欄にセミコロン区切りで追記可能です。 - 標準のカスタム Callout はこのウィンドウでは
C_SalesStage_ID列のみに設定されています。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”営業案件のステージ管理やパイプラインレポートは、Model Validator や独自プロセスで業務に合わせて拡張できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。