Skip to content

iDempiere 見込顧客の担当者の使い方|販売管理 操作マニュアル・技術仕様

This content is not available in your language yet.

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

見込顧客の担当者(リード)は、まだ取引先として登録されていない見込み客の連絡先を管理する画面です。獲得経路(リードソース)と商談ステータス(リードステータス)を記録し、「Convert Lead」ボタン1つで取引先・取引先住所・営業案件を一括生成して商談プロセスへ引き渡せます。

📌 ポイント: リードは AD_User テーブルに IsSalesLead=Y(または IsVendorLead=Y)を立てたレコードです。変換プロセスを実行すると両フラグが N に落ち、リードステータスが C(Converted)に変わるため、一覧から自動的に外れます。

見込顧客の担当者でできること

Section titled “見込顧客の担当者でできること”
  • 取引先未登録の見込み客を、氏名・会社名・住所・連絡先とともに登録する
  • リードソース(獲得経路)を9種類の区分から選択して記録する
  • リードステータス(商談段階)で新規・作業中・変換済み・失効・再利用を管理する
  • 見込顧客(IsSalesLead)と仕入見込先(IsVendorLead)を区別する
  • 営業活動タブでタスク・メール・電話・面談を記録する
  • 「Convert Lead」で取引先・取引先住所・営業案件を一括生成する
  • 変換時に想定金額・想定完了日・営業ステージ・通貨・担当者を指定する

ヘッダー1タブ+営業活動の子タブという2タブ構成です。

タブ名テーブル階層項目数役割
見込顧客の担当者AD_User0約25項目リードの基本情報・連絡先・ソース/ステータス
営業活動(アクティビティ)C_ContactActivity111項目タスク・メール・電話・面談の記録
graph TD
    T1["🌱 見込顧客の担当者<br/>AD_User<br/>約25項目"]
    T2["📅 営業活動(アクティビティ)<br/>C_ContactActivity<br/>11項目"]
    T1 --> T2
    T1 --> T3["🔄 Convert Lead<br/>(変換プロセス)"]
    T3 --> T4["🏢 取引先<br/>C_BPartner"]
    T3 --> T5["🎯 営業案件<br/>C_Opportunity"]

見込顧客の担当者 AD_User 約25項目 営業活動(アクティビティ) C_ContactActivity 11項目 Convert Lead (変換プロセス) 取引先 C_BPartner 営業案件 C_Opportunity

💡 ヒント: リードには「住所(C_Location_ID)」と「BP Address(BP_Location_ID)」の2つの住所欄があります。前者は個人の連絡先住所、後者は勤務先企業の住所です。変換時にはそれぞれ別の取引先住所レコードとして作成されます。

graph TD
    A["🚀 メニューから開く<br/>販売管理 > 見込顧客管理 > 見込顧客の担当者"] --> B["➕ 新規<br/>名称を入力(必須)"]
    B --> C["🏷 見込顧客 / Vendor Lead<br/>のいずれかにチェック"]
    C --> D["📮 取引先名称・住所・<br/>Eメール・電話番号を入力"]
    D --> E["📊 リードソース・<br/>リードステータスを選択"]
    E --> F["💾 保存"]
    F --> G["📅 営業活動タブで<br/>接触履歴を記録"]
    G --> H{"商談化した?"}
    H -->|No| I["🔁 リードステータスを<br/>作業中/失効に更新"]
    H -->|Yes| J["🔄 Convert Lead ボタンを実行"]
    J --> K["📝 想定金額・想定完了日・<br/>営業ステージを入力"]
    K --> L["✅ 取引先・住所・営業案件が<br/>自動生成される"]
    L --> M["👤 以後は「得意先(顧客)の担当者」<br/>画面で管理"]

メニューから開く 販売管理 > 見込顧客管理 > 見込顧客の担当者 新規 名称を入力(必須) 見込顧客 / Vendor Lead のいずれかにチェック 取引先名称・住所・ Eメール・電話番号を入力 リードソース・ リードステータスを選択 保存 営業活動タブで 接触履歴を記録 商談化した? リードステータスを 作業中/失効に更新 Convert Lead ボタンを実行 想定金額・想定完了日・ 営業ステージを入力 取引先・住所・営業案件が 自動生成される 以後は「得意先(顧客)の担当者」 画面で管理

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

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

メニューから「販売管理 > 見込顧客管理 > 見込顧客の担当者」を開きます(AD_Window_ID: 53153)。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • クライアント / 組織: 対象テナント・組織
    • 名称: 見込み客の氏名(最大60文字)
    • 見込顧客 または Vendor Lead: いずれかにチェック
  3. 連絡先情報を入力:
    • 取引先名称BPName): 勤務先の会社名(変換時の取引先名になります)
    • 住所 / BP Address: 個人の住所・勤務先の住所
    • Eメール / 電話番号 / 電話番号2 / FAX
    • 役職: 役職マスタから選択
  4. 分類情報を入力:
    • リードソース: 獲得経路
    • リードソース補足説明: 経路の詳細
    • リードステータス: 商談段階
    • リードステータス補足説明: 状況の詳細
    • 営業活動C_Campaign_ID): 獲得元のキャンペーン
    • 社内担当者: 担当する営業
  5. 保存」をクリック

リードソースとリードステータス

Section titled “リードソースとリードステータス”
リードソースコード
Cold Call(飛び込み架電)CC
Conference(カンファレンス)CN
Existing Customer(既存顧客)EC
Email(メール)EL
Employee(従業員紹介)EM
Partner(パートナー)PT
Trade Show(展示会)TS
Word of Mouth(口コミ)WM
Web Site(Web サイト)WS
リードステータスコード意味
NewN新規獲得・未着手
WorkingW対応中
ConvertedC変換済み(プロセスが自動セット)
ExpiredE失効
RecycledR再利用(再アプローチ対象)
  1. 変換したいリードを表示し、「Convert Lead」ボタンをクリック
  2. パラメータを入力:
    • CreateOpportunity: 営業案件を作成するか(既定 = はい)
    • OpportunityAmt: 想定受注金額
    • ExpectedCloseDate: 想定完了日(未指定時は当日)
    • C_SalesStage_ID: 営業ステージ(未指定時は検索キー最小のステージが自動選択)
    • SalesRep_ID: 担当営業(未指定時はリードの担当者、それもなければログインユーザー)
    • C_Currency_ID: 通貨(未指定時はコンテキストの通貨)
    • Description: 案件の説明
  3. 実行すると次が自動生成されます:
    • 取引先: 取引先テンプレートをコピーし、取引先名称(なければ氏名)を名前としてセット
    • 取引先住所: リードの住所・BP Address からそれぞれ作成
    • 営業案件: 指定金額・営業ステージ・確率・通貨・キャンペーンをセット
  4. リード側は IsSalesLead=N / IsVendorLead=N / LeadStatus=C に更新されます

⚠️ 注意: 変換は一度きりです。既に取引先が紐付いていて見込顧客・仕入見込先フラグがどちらも外れているリードを再変換しようとすると、「Lead already converted」というエラーになります。

見込顧客の担当者タブ(主要項目)

Section titled “見込顧客の担当者タブ(主要項目)”
項目名必須説明
名称必須文字列(60)見込み客の氏名
見込顧客必須チェック販売側のリードか(既定値 N
Vendor Lead必須チェック仕入側のリードか(既定値 N
検索キー-文字列(40)任意のリードコード
取引先-検索変換後にセットされる取引先
取引先名称-文字列(60)勤務先の会社名。変換時の取引先名
住所-住所個人の連絡先住所
BP Address-住所勤務先企業の住所
Eメール-文字列(60)メールアドレス(形式チェックあり)
電話番号 / 電話番号2 / FAX-文字列(40)連絡先
役職-選択役職(C_Job
生年月日-日付誕生日
営業活動-選択獲得元キャンペーン(C_Campaign
社内担当者-選択担当する営業
リードソース-リスト獲得経路(9種)
リードソース補足説明-テキスト(255)経路の詳細
リードステータス-リストN / W / C / E / R
リードステータス補足説明-テキスト(255)状況の詳細
コメント-テキスト詳細メモ
Convert Lead-ボタン変換プロセスの起動
項目名必須説明
営業活動タイプ必須リストTA=タスク / EM=メール / PC=電話 / ME=面談
説明必須文字列(255)活動内容の要約
開始日付必須日時既定値 SYSDATE
終了日付-日時活動の終了日時
社内担当者-選択自社の営業担当
営業案件-選択変換時に自動で付け替えられます
完成-チェック活動が完了したか

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

Q. 「Lead already converted」というエラーが出ます

Section titled “Q. 「Lead already converted」というエラーが出ます”

ConvertLead プロセスは冒頭で「見込顧客でも仕入見込先でもなく、かつ取引先が既に紐付いている」場合に AdempiereUserError("Lead already converted") を投げます。変換済みのリードは再変換できません。新たな商談は営業案件(Opportunity)として直接作成してください。

Q. 変換すると取引先の名前は何になりますか?

Section titled “Q. 変換すると取引先の名前は何になりますか?”

「取引先名称」(BPName)が入力されていればその値、空であれば「名称」(氏名)が取引先名になります。取引先そのものは MBPartner.getTemplate() で取得した取引先テンプレートをコピーして作成されるため、支払条件や価格表などの既定値はテンプレート側の設定が引き継がれます。

Q. 顧客と仕入先のどちらとして登録されますか?

Section titled “Q. 顧客と仕入先のどちらとして登録されますか?”

リードのフラグがそのまま引き継がれます。IsSalesLead=Y なら取引先の「得意先」(IsCustomer)が Y に、IsVendorLead=Y なら「仕入先」(IsVendor)が Y になります。両方チェックしておけば両方の属性を持つ取引先が作成されます。

Q. 営業ステージを指定しないとどうなりますか?

Section titled “Q. 営業ステージを指定しないとどうなりますか?”

prepare() の中で、同一クライアントの有効な営業ステージのうち検索キー(Value)が最小のものが自動選択されます。営業案件の確率(Probability)は、選ばれた営業ステージの Probability から取得されます。取得できない場合は 0 がセットされます。

Q. 営業案件を作らずに取引先だけ作れますか?

Section titled “Q. 営業案件を作らずに取引先だけ作れますか?”

できます。プロセスパラメータ「CreateOpportunity」を「いいえ」にすると、取引先と取引先住所のみが作成されます。この場合、営業活動の案件への付け替えも行われません。

Q. 変換すると営業活動の履歴はどうなりますか?

Section titled “Q. 変換すると営業活動の履歴はどうなりますか?”

営業案件を作成する場合、そのリードに紐づく有効な C_ContactActivity レコードが Query で全件取得され、C_Opportunity_ID に新しい営業案件がセットされて保存されます。履歴は失われず、案件単位で追跡できるようになります。

Q. メールアドレスの形式エラーが出ます

Section titled “Q. メールアドレスの形式エラーが出ます”

リードも AD_User テーブルのレコードなので、MUser.beforeSave() のメール形式検証(IDEMPIERE-1409)が適用されます。不正な形式では保存できません。

Q. 変換後もこのウィンドウに表示されますか?

Section titled “Q. 変換後もこのウィンドウに表示されますか?”

変換時に IsSalesLead / IsVendorLead がともに N になるため、リードとしての抽出条件から外れます。以後は「得意先(顧客)の担当者」画面で管理してください。

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

見込顧客の担当者はマスタデータ型のウィンドウ(AD_Window_ID: 53153)で、ヘッダーは AD_User、子タブは C_ContactActivity テーブルに格納されます。「得意先(顧客)の担当者」(AD_Window_ID: 53152)と同一テーブルを扱い、IsSalesLead / IsVendorLead フラグとタブの表示項目で用途を分けています。

モデルクラスは MUser(1,193行)、変換処理は ConvertLead(215行、SvrProcess を継承)が担います。C_ContactActivity は生成クラス X_C_ContactActivity(364行)のみです。Document 型ではありません。

テーブル属性: AD_User はアクセスレベル 7(すべて)・削除可・大量データ扱い(IsHighVolume=Y)、C_ContactActivity はアクセスレベル 3・削除可です。

classDiagram
    class MUser {
        +isSalesLead() boolean
        +isVendorLead() boolean
        +getBPName() String
        +setLeadStatus(String) void
        #beforeSave(boolean) boolean
    }
    class ConvertLead {
        <<process>>
        #prepare() void
        #doIt() String
    }
    class SvrProcess {
        <<abstract>>
    }
    class X_AD_User {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MUser --|> X_AD_User
    X_AD_User --|> PO
    ConvertLead --|> SvrProcess
    ConvertLead --> MUser : reads lead
    ConvertLead --> MBPartner : creates
    ConvertLead --> MBPartnerLocation : creates
    ConvertLead --> MOpportunity : creates
    ConvertLead --> X_C_ContactActivity : re-links

+isSalesLead() boolean +isVendorLead() boolean +getBPName() String +setLeadStatus(String) void #beforeSave(boolean) boolean <> #prepare() void #doIt() String <> <> > X_AD_User X_AD_User --

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

カラム名必須説明備考
AD_User_IDIDYユーザーID主キー
NameString(60)Y名称
ValueString(40)N検索キー
IsSalesLeadYes-NoY見込顧客既定値 N。変換で N
IsVendorLeadYes-NoYVendor Lead既定値 N。変換で N
LeadSourceList(10)NリードソースAD_Reference_ID=53415
LeadSourceDescriptionText(255)Nリードソース補足説明
LeadStatusList(10)NリードステータスAD_Reference_ID=53416
LeadStatusDescriptionText(255)Nリードステータス補足説明
BPNameString(60)N取引先名称変換時の取引先名
C_Location_IDLocationN住所個人住所
BP_Location_IDLocationNBP Address勤務先住所
C_BPartner_IDSearchN取引先変換でセット
C_Campaign_IDTable DirectN営業活動案件へ引き継がれる
SalesRep_IDTableN社内担当者案件へ引き継がれる
ProcessingButtonNConvert Leadプロセス起動ボタン

X_AD_User に定義された定数:

種別定数
ソースLEADSOURCE_ColdCall / Conference / ExistingCustomer / Email / Employee / Partner / TradeShow / WordOfMouth / WebSiteCC / CN / EC / EL / EM / PT / TS / WM / WS
ステータスLEADSTATUS_New / Working / Converted / Expired / RecycledN / W / C / E / R
erDiagram
    AD_User ||--o{ C_ContactActivity : "activities"
    AD_User }o--o| C_Location : "personal address"
    AD_User }o--o| C_Campaign : "source campaign"
    AD_User }o--o| C_BPartner : "converted to"
    C_BPartner ||--o{ C_BPartner_Location : "locations"
    C_BPartner ||--o{ C_Opportunity : "opportunities"
    C_Opportunity ||--o{ C_ContactActivity : "re-linked activities"
    C_SalesStage ||--o{ C_Opportunity : "stage / probability"

personal address source campaign converted to re-linked activities stage / probability

ConvertLead プロセスの処理フロー

Section titled “ConvertLead プロセスの処理フロー”
flowchart TD
    A["doIt()"] --> B{"AD_User_ID > 0?"}
    B -->|No| C["FillMandatoryException"]
    B -->|Yes| D{"isSalesLead()==false かつ<br/>isVendorLead()==false かつ<br/>C_BPartner_ID != 0?"}
    D -->|Yes| E["AdempiereUserError<br/>Lead already converted"]
    D -->|No| F["MBPartner.getTemplate()<br/>→ 取引先をコピー生成"]
    F --> G["BPName または Name を<br/>取引先名にセット<br/>IsCustomer=isSalesLead<br/>IsVendor=isVendorLead"]
    G --> H["lead.setC_BPartner_ID()"]
    H --> I{"C_Location_ID != 0?"}
    I -->|Yes| J["住所をコピーし<br/>BPartnerLocation を作成<br/>電話/電話2/FAX を転記"]
    I -->|No| K
    J --> K{"BP_Location_ID != 0?"}
    K -->|Yes| L["勤務先住所をコピーし<br/>BPartnerLocation を作成"]
    K -->|No| M
    L --> M{"CreateOpportunity?"}
    M -->|No| Q
    M -->|Yes| N["MOpportunity 生成<br/>金額・完了日・ステージ・<br/>確率・通貨・担当・キャンペーン"]
    N --> O["その Lead の<br/>C_ContactActivity を全件取得"]
    O --> P["各活動に<br/>C_Opportunity_ID をセット"]
    P --> Q["IsSalesLead=N<br/>IsVendorLead=N<br/>LeadStatus=C"]
    Q --> R["@OK@"]

doIt() AD_User_ID > 0? isSalesLead()==false かつ isVendorLead()==false かつ C_BPartner_ID != 0? AdempiereUserError Lead already converted MBPartner.getTemplate() → 取引先をコピー生成 BPName または Name を 取引先名にセット IsCustomer=isSalesLead IsVendor=isVendorLead lead.setC_BPartner_ID() C_Location_ID != 0? 住所をコピーし BPartnerLocation を作成 電話/電話2/FAX を転記 BP_Location_ID != 0? 勤務先住所をコピーし BPartnerLocation を作成 CreateOpportunity? MOpportunity 生成 金額・完了日・ステージ・ 確率・通貨・担当・キャンペーン その Lead の C_ContactActivity を全件取得 各活動に C_Opportunity_ID をセット IsSalesLead=N IsVendorLead=N LeadStatus=C @OK@

パラメータ未指定時の既定値
ExpectedCloseDate現在日時
OpportunityAmtEnv.ZERO
C_SalesStage_ID同一クライアントの有効な営業ステージのうち Value が最小のもの(prepare() 内の SQL で決定)
Probability選択された営業ステージの Probability。取得不可なら Env.ZERO
C_Currency_IDコンテキストの Env.C_CURRENCY_ID
SalesRep_IDリードの SalesRep_ID → なければコンテキストの Env.SALESREP_ID

prepare()MUser.Table_ID == getTable_ID() の場合、レコード ID(getRecord_ID())を AD_User_ID として採用します。ウィンドウのボタンから起動した場合はこの経路になるため、パラメータでの明示指定は不要です。未知のパラメータが渡された場合は MProcessPara.validateUnknownParameter() が呼ばれます。

リードも MUser のため、beforeSave() のメール形式検証・パスワード関連の一意性検証・パスワードルール検証が適用されます。詳細は 得意先(顧客)の担当者の技術仕様 を参照してください。

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

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

AD_User / C_ContactActivity には Callout(AD_Column.Callout)が定義されていません。リード固有の制約は Model Validator で追加します。

public class LeadValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MUser && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
MUser lead = (MUser) po;
if (lead.isSalesLead()) {
// 例: 見込顧客にはリードソースを必須にする
if (Util.isEmpty(lead.getLeadSource()))
throw new AdempiereException("見込顧客にはリードソースの入力が必要です");
// 例: 変換済みステータスへの手動変更を禁止する
if (MUser.LEADSTATUS_Converted.equals(lead.getLeadStatus())
&& !lead.is_ValueChanged("C_BPartner_ID"))
throw new AdempiereException("変換済みステータスは Convert Lead プロセスでのみ設定できます");
}
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // AD_User は Document 型ではないため不要
}
}

変換処理そのものを差し替えたい場合は、ConvertLead を継承した独自プロセスクラスを作成し、AD のプロセス定義(AD_Process.Classname)を独自クラスに向ける方法があります。ConvertLead@org.adempiere.base.annotation.Process アノテーションで OSGi プロセスとして登録されています。

プロセス名クラス説明
Convert Leadorg.compiere.process.ConvertLead見込顧客を取引先・取引先住所・営業案件へ変換し、営業活動を案件へ付け替える(215行)

リードから商談・受注までの流れは、獲得経路の粒度やステータス遷移のルールを自社の営業プロセスに合わせて設計することで精度が大きく変わります。 変換ロジックの拡張や外部 MA ツールからのリード取り込みも、OSGi プロセスとしてコア改変なしに実装できます。

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

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