Skip to content

iDempiere Web POSロールメニューの使い方|販売管理 操作マニュアル・技術仕様

This content is not available in your language yet.

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

Web POSロールメニューは、ロール(AD_Role)ごとに表示する Web POS メニュー(U_WebMenu)を割り当てるための設定画面です。旧 Web POS(ADempiere 由来の Web ストア型 POS)で、ログインしたユーザーのロールに応じて異なるメニュー構成を生成するために使われていました。

📌 ポイント: iDempiere 13 標準ではこのウィンドウは無効化されています。モデルクラス MRoleMenu にも @Deprecated(since="13", forRemoval=true) が付与されており、将来のバージョンで削除される予定です。新規の業務設計では利用しないでください。

Web POSロールメニューでできること

Section titled “Web POSロールメニューでできること”
  • ロール(AD_Role_ID)と Web POS メニュー(U_WebMenu_ID)の組み合わせを登録する
  • ロール単位で表示するメニュー項目の集合を切り替える
  • 組織(AD_Org_ID)ごとに異なる割り当てを行う(テーブルのアクセスレベルはクライアント+組織)
  • 「有効」(IsActive)チェックの ON/OFF で、レコードを削除せずに割り当てを一時停止する

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

タブ名テーブル項目数役割
Role MenuU_RoleMenu5項目ロールと Web POS メニューの割り当て

⚠️ 注意: このウィンドウは標準メニューに登録されていません(間接使用)。開くには、システム管理者ロールでウィンドウを一時的にメニューへ登録する必要があります。

graph TD
    A["🚀 ウィンドウを開く<br/>(標準メニュー未登録のため<br/>メニュー登録が必要)"] --> B{"iDempiere 13 で<br/>利用するか?"}
    B -->|"非推奨のため原則 No"| C["🛑 利用しない<br/>標準の受注伝票・<br/>販売請求伝票で運用"]
    B -->|"旧データの保守"| D["➕ 新規<br/>ロールを選択"]
    D --> E["🗂 Web Menu を選択<br/>(U_WebMenu)"]
    E --> F["💾 保存"]
    F --> G["🔁 割り当てを止めるときは<br/>「有効」チェックを外す"]

ウィンドウを開く (標準メニュー未登録のため メニュー登録が必要) iDempiere 13 で 利用するか? 非推奨のため原則 No 利用しない 標準の受注伝票・ 販売請求伝票で運用 旧データの保守 新規 ロールを選択 Web Menu を選択 (U_WebMenu) 保存 割り当てを止めるときは 「有効」チェックを外す

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

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

標準メニューには登録されていません(AD_Window_ID: 52001)。参照が必要な場合は、システム管理者がアプリケーション辞書からウィンドウをメニューへ追加してください。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • クライアント: 対象テナント(コンテキスト @AD_Client_ID@ から自動セット)
    • 組織: 対象組織(コンテキスト @AD_Org_ID@ から自動セット)
    • ロール: メニューを割り当てるロール
    • Web Menu: 割り当てる Web POS メニュー
  3. 保存」をクリック

💡 ヒント: 割り当てを解除したい場合は、レコードを削除せず「有効」チェックを外してください。既存の参照を残したまま無効化できます。

項目名必須説明
クライアント必須選択(Table Direct)対象テナント
組織必須選択(Table Direct)対象組織
ロール必須選択(Table Direct)権限ロール(AD_Role
Web Menu必須選択(Table Direct)Web POS メニュー(U_WebMenu
有効必須チェックレコードが有効か(既定値 Y

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

Q. iDempiere 13 でこの画面を使ってよいですか?

Section titled “Q. iDempiere 13 でこの画面を使ってよいですか?”

推奨されません。iDempiere 13 標準ではこのウィンドウは無効化されており、モデルクラス MRoleMenu にも @Deprecated(since="13", forRemoval=true) が宣言されています。forRemoval=true は将来のバージョンで削除予定であることを示すため、この画面に依存した業務設計は避けてください。

Q. 現在のロール別メニュー制御はどこで行いますか?

Section titled “Q. 現在のロール別メニュー制御はどこで行いますか?”

iDempiere 標準では、ロールに紐づくメニューツリーの制御はロール定義(AD_Role)とウィンドウ・プロセス・フォームごとのアクセス設定で行います。Web POS 専用のメニュー割り当てテーブルは使用しません。

Q. 入力チェック(バリデーション)はありますか?

Section titled “Q. 入力チェック(バリデーション)はありますか?”

MRoleMenu クラスには beforeSave() / afterSave() の独自実装がなく、コンストラクタのみの実装です。したがって検証は Application Dictionary の必須制約(クライアント・組織・ロール・Web Menu・有効がすべて必須)と外部キー制約のみです。

Q. レコードを削除できますか?

Section titled “Q. レコードを削除できますか?”

U_RoleMenu テーブルは削除可(IsDeleteable=Y)です。ただし運用中は削除ではなく「有効」チェックを外す運用を推奨します。

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

Web POSロールメニューはマスタデータ型のウィンドウ(AD_Window_ID: 52001)で、U_RoleMenu テーブルに格納されます。モデルクラスは MRoleMenu(64行)で、生成クラス X_U_RoleMenu を継承するのみの薄い実装です。Document 型ではなく、DocStatus / DocAction カラムを持ちません。クラス宣言に @Deprecated(since="13", forRemoval=true) が付与されています。

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

classDiagram
    class MRoleMenu {
        <<deprecated>>
    }
    class X_U_RoleMenu {
        <<generated>>
    }
    class I_U_RoleMenu {
        <<interface>>
    }
    class PO {
        <<abstract>>
    }
    MRoleMenu --|> X_U_RoleMenu
    X_U_RoleMenu --|> PO
    X_U_RoleMenu ..|> I_U_RoleMenu
    MRoleMenu --> AD_Role : references
    MRoleMenu --> U_WebMenu : references

<> <> <> <> > X_U_RoleMenu X_U_RoleMenu --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MRoleMenu.java(生成クラス: X_U_RoleMenu.java / インターフェース: I_U_RoleMenu.java

カラム名必須説明備考
U_RoleMenu_IDIDPKロールメニューID主キー
AD_Client_IDTable DirectYクライアント既定値 @AD_Client_ID@
AD_Org_IDTable DirectY組織既定値 @AD_Org_ID@
AD_Role_IDTable DirectYロールAD_Role への外部キー
U_WebMenu_IDTable DirectYWeb MenuU_WebMenu への外部キー
IsActiveYes-NoY有効既定値 'Y'
Created / CreatedByDate+Time / SearchY作成日時・作成者既定値 SYSDATE
Updated / UpdatedByDate+Time / SearchY更新日時・更新者既定値 SYSDATE
U_RoleMenu_UUUUIDNUUID長さ36
erDiagram
    AD_Role ||--o{ U_RoleMenu : "assigned menus"
    U_WebMenu ||--o{ U_RoleMenu : "assigned to roles"

assigned menus assigned to roles

MRoleMenu は UUID・ID・ResultSet の3種類のコンストラクタのみを実装しており、beforeSave() / afterSave() / 独自の検索メソッドはありません。データ整合性は AD の必須制約と DB の外部キー制約に委ねられています。

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

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

本テーブルには Callout(AD_Column.Callout)が定義されていません。独自ロジックを追加する場合は OSGi の Model Validator が第一候補になりますが、forRemoval=true の非推奨クラスを拡張する設計は避けてください。

public class CustomRoleMenuValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MRoleMenu && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
// 例: 同一ロールへの重複割り当てを禁止する
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // U_RoleMenu は Document 型ではないため不要
}
}

Document 型ではないため docValidate() は呼び出されません。

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


非推奨となった旧 Web POS 機能から標準の受注・出荷・請求フローへ移行する際は、既存データの棚卸しと移行設計が重要になります。 店舗販売の要件は、標準機能と OSGi プラグインの組み合わせでコア改変なしに実装できます。

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

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