iDempiere 入札トピックの使い方|販売管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。
入札トピックは、オークション(入札)の対象となる案件を登録し、寄せられた入札(Bid)とオファー(Offer)、およびその資金(基金)を一覧するためのウィンドウです。買い手が金額を提示して競り合う形式と、複数の参加者が資金を出し合う形式の両方を想定した構造になっています。
⚠️ 注意: この画面は iDempiere 13 標準では無効化されています(旧バージョンからの互換用)。標準メニューにも登録されていません。新規の業務設計での利用は推奨されず、通常の販売業務は受注伝票、購買側の競争見積は見積依頼(RFQ)を使用してください。
📌 ポイント: 入札関連(
B_*)テーブルには ビジネスロジッククラス(M クラス)が一切存在しません。自動生成クラス(X_B_*)のみで構成されており、トピックの締切判定・落札判定・基金の引当といった処理はコアに実装されていません。実運用するにはカスタム開発が前提になります。
入札トピックでできること
Section titled “入札トピックでできること”- オークション対象(トピック)の登録と公開設定
- トピックタイプ・トピックカテゴリによる分類
- 決定日付(締切日)とトピックステータス/アクションの管理
- 寄せられた入札(Bid)の一覧と、入札者の希望委託の確認
- 入札に紐づく買い手基金(委託金額・非委託金額)の確認
- オファー(Offer)と売り手基金の確認
- トピックに対するコメント(質問・提案)の記録
入札トピックは 3 階層・6 タブ構成です。
| タブ名 | テーブル | 階層 | 項目数 | 役割 |
|---|---|---|---|---|
| 入札トピック | B_Topic | 0 | 16項目 | オークション対象の本体 |
| 入札 | B_Bid | 1 | 9項目 | 買い手からの入札 |
| 入札基金 | B_BuyerFunds | 2 | 8項目 | 入札に紐づく買い手の資金 |
| オファー | B_Offer | 1 | 9項目 | 売り手からのオファー |
| オファー基金 | B_SellerFunds | 2 | 8項目 | オファーに紐づく売り手の資金 |
| コメント | B_BidComment | 1 | 7項目 | トピックへのコメント |
graph TD
subgraph "入札トピック(Window ID: 307・標準では無効)"
T1["📌 入札トピック<br/>B_Topic<br/>16項目"]
T2[" └ 入札<br/> B_Bid"]
T3[" └ 入札基金<br/> B_BuyerFunds"]
T4[" └ オファー<br/> B_Offer"]
T5[" └ オファー基金<br/> B_SellerFunds"]
T6[" └ コメント<br/> B_BidComment"]
end
T1 --> T2
T2 --> T3
T1 --> T4
T4 --> T5
T1 --> T6
基本操作手順
Section titled “基本操作手順”graph TD
A["⚙️ 前提: トピックタイプと<br/>カテゴリを先に登録"] --> B["➕ 入札トピックを新規作成<br/>(伝票番号・名称)"]
B --> C["🏷 トピックタイプ・カテゴリを選択"]
C --> D["📅 決定日付(締切)を設定"]
D --> E["📝 詳細・テキストを入力"]
E --> F["📢 公開にチェック<br/>(閲覧可能にする)"]
F --> G["💾 保存"]
G --> H["👀 入札・オファータブで<br/>参加状況を確認"]
H --> I["💬 コメントタブで<br/>質問・提案を確認"]
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”標準メニューには登録されていません(*(標準メニュー未登録 / 間接使用)*)。参照する場合はシステム管理者権限で「ウィンドウ・タブ・フィールド」から AD_Window_ID: 307 を有効化する必要があります。
新規登録(トピック)
Section titled “新規登録(トピック)”- 前提としてオークショントピックタイプでタイプとカテゴリを登録
- 「新規」ボタンをクリック
- 必須項目を入力:
- 伝票番号: トピックの番号(最大 30 文字)
- 名称: トピック名(最大 60 文字)
- トピックタイプ / トピックカテゴリ: 分類
- 決定日付: 落札・決定を行う日
- トピックステータス / トピックアクション: 状態と次アクション
- 任意項目(説明・詳細(最大 4000 文字)・テキスト)を入力
- 公開 にチェックすると閲覧可能な状態になります
- 「保存」をクリック
⚠️ 注意: 「処理中(Processing)」ボタンが定義されていますが、対応するプロセス実装はコアに存在しません。押しても業務処理は行われません。
入札・オファーの確認
Section titled “入札・オファーの確認”- 入札 タブ: 入札者(ユーザー)、入札名、紐づく バイヤー基金、希望委託フラグ、メッセージ、プライベートメモ
- 入札基金 タブ: 委託金額(法的にコミット済みの金額)と 非委託金額(未コミット金額)、紐づく入出金伝票・受注伝票
- オファー タブ / オファー基金 タブ: 売り手側の同等情報
💡 ヒント: 「プライベートメモ」は他の参加者には見えない前提の項目です。ただしアクセス制御はロール設定に依存するため、機密情報の格納には向きません。
項目リファレンス
Section titled “項目リファレンス”入札トピックタブ
Section titled “入札トピックタブ”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| 伝票番号 | DocumentNo | 必須 | 文字列(30) | トピックの番号 |
| 名称 | Name | 必須 | 文字列(60) | トピック名(識別子) |
| 説明 | Description | - | 文字列(255) | 概要 |
| トピックタイプ | B_TopicType_ID | 必須 | 選択 | オークション形式の分類 |
| トピックカテゴリ | B_TopicCategory_ID | 必須 | 選択 | タイプ配下のカテゴリ |
| 公開 | IsPublished | 必須 | チェック | 閲覧可能にする |
| 決定日付 | DecisionDate | 必須 | 日付 | 落札・決定の実施日 |
| 詳細 | TextDetails | - | テキスト(4000) | 対象の詳細説明 |
| テキスト | TextMsg | - | テキスト(2000) | メッセージ |
| トピックステータス | TopicStatus | 必須 | リスト | トピックの状態 |
| トピックアクション | TopicAction | 必須 | リスト | 実行するアクション |
| 処理中 | Processing | - | ボタン | コアに実装なし |
| 処理済み | Processed | 必須 | チェック | 処理済みフラグ |
入札タブ・オファータブ(共通構造)
Section titled “入札タブ・オファータブ(共通構造)”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| トピック | B_Topic_ID | 必須 | 選択 | 対象トピック |
| ユーザー | AD_User_ID | 必須 | 選択 | 入札者/オファー提示者 |
| 名称 | Name | 必須 | 文字列(60) | 入札/オファー名 |
| バイヤー基金 / 売手基金 | B_BuyerFunds_ID / B_SellerFunds_ID | 必須 | 選択 | 紐づく基金 |
| 希望委託 | IsWillingToCommit | 必須 | チェック | コミット意思 |
| テキスト | TextMsg | - | テキスト(2000) | メッセージ |
| プライベートメモ | PrivateNote | - | テキスト(2000) | 他参加者に非公開のメモ |
基金タブ(入札基金・オファー基金 共通)
Section titled “基金タブ(入札基金・オファー基金 共通)”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| ユーザー | AD_User_ID | 必須 | 選択 | 資金の保有者(識別子) |
| 委託金額 | CommittedAmt | 必須 | 金額 | コミット済み金額(識別子) |
| 非委託金額 | NonCommittedAmt | 必須 | 金額 | 未コミット金額(識別子) |
| 入金支払伝票 | C_Payment_ID | - | 選択 | 紐づく入出金伝票 |
| 受注伝票 | C_Order_ID | - | 選択 | 紐づく受注伝票 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. メニューにこの画面が見当たりません。
Section titled “Q. メニューにこの画面が見当たりません。”iDempiere 13 標準ではこのウィンドウは無効化されており、メニューにも登録されていません。旧 Compiere / ADempiere 由来のオークション機能で、現在は保守対象外の互換機能という位置づけです。
Q. 落札処理や締切処理は自動化されていますか?
Section titled “Q. 落札処理や締切処理は自動化されていますか?”いいえ。B_Topic には Processing ボタンと TopicStatus / TopicAction の項目がありますが、対応するプロセスクラスはコアに存在しません。決定日付を過ぎたトピックの自動締切、最高額入札の落札判定、基金からの引当などはすべて未実装で、実運用にはカスタム開発が必要です。
Q. 基金(Funds)は入出金伝票と連動しますか?
Section titled “Q. 基金(Funds)は入出金伝票と連動しますか?”B_BuyerFunds / B_SellerFunds には C_Payment_ID と C_Order_ID の参照カラムがありますが、これらは単なる参照であり、入金処理から基金へ自動反映するロジックはコアにありません。委託金額・非委託金額の更新も手動です。
Q. 競争見積のような業務をしたい場合の代替は?
Section titled “Q. 競争見積のような業務をしたい場合の代替は?”購買側であれば見積依頼(RFQ)が現行機能として保守されており、複数仕入先への引合・回答比較・受注/発注への変換まで実装されています。販売側であれば受注伝票の見積タイプを使うのが標準的です。
Q. データを残したまま画面だけ無効にできますか?
Section titled “Q. データを残したまま画面だけ無効にできますか?”このウィンドウは標準ですでに無効化された状態です。テーブル(B_*)自体は DB に存在するため、過去データを保持したまま画面を非表示にしておくことができます。テーブルはいずれも IsDeleteable=Y のため、不要であればレコード削除も可能です。
- オークショントピックタイプの使い方
- オークションセラーの使い方
- 受注伝票(Sales Order)の使い方
- 見積依頼(RFQ)の使い方
- 入出金伝票(Payment)の使い方
- 画面リファレンス: 入札トピック
🛠 技術仕様(開発者向け)
入札トピックは 3 階層 6 タブのウィンドウ(AD_Window_ID: 307)で、B_Topic を頂点に B_Bid / B_Offer / B_BidComment が子、B_BuyerFunds / B_SellerFunds が孫に位置します。関連テーブルはすべて AccessLevel=3(クライアント+組織レベル)/IsDeleteable=Y / IsHighVolume=N。
M クラス(ビジネスロジッククラス)は 1 つも存在しません。 model_classes.txt に含まれるのは自動生成クラス X_B_Topic / X_B_Bid / X_B_Offer / X_B_BuyerFunds / X_B_SellerFunds / X_B_BidComment / X_B_Seller とそのインターフェース I_B_* のみで、MTopic や MBid に相当する実装はありません。したがって beforeSave() / afterSave() / DocAction によるコア側の業務ロジックは存在せず、動作は PO 基底クラスの CRUD と DB 制約に限定されます。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class X_B_Topic {
<<generated>>
}
class X_B_Bid {
<<generated>>
}
class X_B_Offer {
<<generated>>
}
class X_B_BuyerFunds {
<<generated>>
}
class X_B_SellerFunds {
<<generated>>
}
class X_B_BidComment {
<<generated>>
}
class PO {
<<abstract>>
}
X_B_Topic --|> PO
X_B_Bid --|> PO
X_B_Offer --|> PO
X_B_BuyerFunds --|> PO
X_B_SellerFunds --|> PO
X_B_BidComment --|> PO
X_B_Topic --> X_B_Bid : has many
X_B_Topic --> X_B_Offer : has many
X_B_Topic --> X_B_BidComment : has many
X_B_Bid --> X_B_BuyerFunds : funded by
X_B_Offer --> X_B_SellerFunds : funded by
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_B_Topic.java ほか X_B_*.java(対応するインターフェースは I_B_*.java)
関連DBテーブル
Section titled “関連DBテーブル”B_Topic(入札トピック)
Section titled “B_Topic(入札トピック)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| B_Topic_ID | ID | PK | トピックID | 主キー |
| B_Topic_UU | UUID | N | UUID | |
| AD_Client_ID | Table Direct | Y | クライアント | default @#AD_Client_ID@ |
| AD_Org_ID | Table Direct | Y | 組織 | default @#AD_Org_ID@ |
| DocumentNo | String(30) | Y | 伝票番号 | |
| Name | String(60) | Y | 名称 | 識別子 |
| Description | String(255) | N | 説明 | |
| B_TopicType_ID | Table Direct | Y | トピックタイプ | |
| B_TopicCategory_ID | Table Direct | Y | トピックカテゴリ | |
| IsPublished | Yes-No | Y | 公開 | |
| DecisionDate | Date | Y | 決定日付 | |
| TextDetails | Text(4000) | N | 詳細 | |
| TextMsg | Text(2000) | N | テキスト | |
| TopicStatus | List(2) | Y | トピックステータス | |
| TopicAction | List(2) | Y | トピックアクション | |
| Processing | Button | N | 処理中 | 対応プロセス実装なし |
| Processed | Yes-No | Y | 処理済み |
B_Bid / B_Offer(入札・オファー)
Section titled “B_Bid / B_Offer(入札・オファー)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| B_Bid_ID / B_Offer_ID | ID | PK | 主キー |
| B_Topic_ID | Search | Y | トピックFK |
| AD_User_ID | Table Direct | Y | 参加ユーザー |
| Name | String(60) | Y | 名称(識別子) |
| B_BuyerFunds_ID / B_SellerFunds_ID | Search | Y | 基金FK |
| IsWillingToCommit | Yes-No | Y | 希望委託 |
| TextMsg | Text(2000) | N | メッセージ |
| PrivateNote | Text(2000) | N | プライベートメモ |
B_BuyerFunds / B_SellerFunds(基金)
Section titled “B_BuyerFunds / B_SellerFunds(基金)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| B_BuyerFunds_ID / B_SellerFunds_ID | ID | PK | 主キー |
| AD_User_ID | Table Direct | Y | 資金保有ユーザー(識別子) |
| CommittedAmt | Amount | Y | 委託金額(識別子) |
| NonCommittedAmt | Amount | Y | 非委託金額(識別子) |
| C_Payment_ID | Search | N | 入出金伝票 |
| C_Order_ID | Search | N | 受注伝票 |
B_BidComment(コメント)
Section titled “B_BidComment(コメント)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| B_BidComment_ID | ID | PK | 主キー |
| B_Topic_ID | Search | Y | トピックFK |
| AD_User_ID | Table Direct | Y | 投稿ユーザー |
| TextMsg | Text(2000) | Y | 本文 |
| Created | Date+Time | Y | 投稿日時(default SYSDATE) |
erDiagram
B_TopicType ||--o{ B_TopicCategory : "categories"
B_TopicType ||--o{ B_Topic : "type of"
B_TopicCategory ||--o{ B_Topic : "category of"
B_Topic ||--o{ B_Bid : "bids"
B_Topic ||--o{ B_Offer : "offers"
B_Topic ||--o{ B_BidComment : "comments"
B_Bid }o--|| B_BuyerFunds : "funded by"
B_Offer }o--|| B_SellerFunds : "funded by"
B_BuyerFunds }o--o| C_Payment : "payment"
B_SellerFunds }o--o| C_Order : "order"
B_Seller ||--o{ B_Offer : "seller"
ビジネスロジック
Section titled “ビジネスロジック”コア実装にビジネスロジックはありません。確認できる制約は次のとおりです。
- 必須制約:
B_TopicはDocumentNo/Name/B_TopicType_ID/B_TopicCategory_ID/DecisionDate/TopicStatus/TopicAction/IsPublished/Processedが NOT NULL - 参照整合性: 入札・オファー・コメントは
B_Topic_IDの外部キーで親に従属 - 既定値:
Created/UpdatedにSYSDATE、IsActiveにY、クライアント/組織にコンテキスト変数 - 自動採番なし:
DocumentNoに採番シーケンスの既定値が設定されておらず、手入力が前提
⚠️ 注意:
Processing(処理中)ボタンはAD_Columnに定義されているだけで、対応するAD_Processの実装クラスがコアに存在しません。ボタンを配置したまま運用すると「押しても何も起きない」挙動になります。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”実装が必要な領域
Section titled “実装が必要な領域”このウィンドウを実運用する場合、最低限つぎのロジックを自前で実装する必要があります。
| 機能 | 実装方針 |
|---|---|
| 締切判定 | DecisionDate 経過トピックを検出するスケジューラ(AD_Scheduler + SvrProcess) |
| 落札判定 | 入札の最高額・最先着などの判定プロセス(SvrProcess) |
| 基金の引当 | CommittedAmt / NonCommittedAmt の更新ロジック(Model Validator または専用プロセス) |
| 受注への変換 | 落札結果から C_Order を生成するプロセス |
| 公開制御 | IsPublished とロール/ユーザーのアクセス制御の連動 |
OSGi Model Validator
Section titled “OSGi Model Validator”M クラスが無いテーブルでもテーブル名判定で検証を追加できます。
public class CustomBidTopicValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (MTable.getTableName(po.getCtx(), po.get_Table_ID()).equals("B_Topic")) { if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) { Timestamp decision = (Timestamp) po.get_Value("DecisionDate"); if (decision != null && decision.before(new Timestamp(System.currentTimeMillis()))) { throw new AdempiereException("決定日付は本日以降にしてください"); } } } return null; }
@Override public String docValidate(PO po, int timing) { return null; // B_Topic は Document 型ではないため不要 }}Callout
Section titled “Callout”B_* テーブルの各カラムには Callout が設定されていません(gw_column.tsv の callout 列がすべて空)。
関連プロセス
Section titled “関連プロセス”このウィンドウに紐づく標準プロセスはありません(Processing ボタンに対応する実装がコアに存在しないため)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”入札・オークション業務をどうしても iDempiere 上で扱いたい場合、標準の B_* テーブルをそのまま使うより、現行保守されている RFQ や受注の仕組みをベースに拡張するほうが安全です。要件に応じた実現方式の見極めからご相談いただけます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。