コンテンツにスキップ

iDempiere 常備在庫の使い方|在庫管理 操作マニュアル・技術仕様

📖 在庫管理の全体像: 在庫管理の業務フロー全体図 も合わせてご覧ください。

常備在庫(Perpetual Inventory)は、実地棚卸の棚卸カウントを生成する際のルール(対象倉庫・品目カテゴリ・年間カウント回数など)を定義するウィンドウです。

📌 ポイント: iDempiere 13 標準ではこのウィンドウは無効化されており、標準メニューにも登録されていません(旧バージョンからの互換用)。循環棚卸・定期棚卸は 実地棚卸 を直接利用する運用を推奨します。

  • 実地棚卸カウント生成ルールの定義(旧機能)
  • 対象倉庫・品目カテゴリによる棚卸範囲の絞り込み
  • 年間の在庫カウント頻度・品目カウント頻度の設定
  • 高回転品目を優先してカウントする指定
  • 次回実行日・最新実行日による実行スケジュール管理

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

タブ名テーブル項目数役割
常備在庫M_PerpetualInv約14項目棚卸生成ルール(頻度・対象範囲・実行日)

⚠️ 注意: iDempiere 13 ではウィンドウ自体が無効化されているため、以下は互換目的の参考情報です。新規の業務設計では使用しないでください。

graph TD
    A["⚠️ iDempiere 13 標準では無効化<br/>(メニュー未登録)"] --> B{棚卸ルールの管理が必要?}
    B -->|新規の業務設計| C["✅ 実地棚卸ウィンドウを使用<br/>(在庫管理 > 実地棚卸)"]
    B -->|旧バージョン互換| D["➕ 名称・対象倉庫・<br/>品目カテゴリを入力"]
    D --> E["🔢 在庫数頻度・品目数頻度<br/>(年間回数)を設定"]
    E --> F["📅 次回実行日を設定して保存"]

iDempiere 13 標準では無効化 (メニュー未登録) 実地棚卸ウィンドウを使用 (在庫管理 > 実地棚卸) 名称・対象倉庫・ 品目カテゴリを入力 在庫数頻度・品目数頻度 (年間回数)を設定 次回実行日を設定して保存 棚卸ルールの管理が必要? 新規の業務設計 旧バージョン互換

標準メニューには未登録です(間接使用のみ)。旧バージョンからの移行データを確認する場合は、メニュー検索ではなくウィンドウを有効化した上でアクセスする必要があります。

  1. 名称を入力
  2. 倉庫品目カテゴリで対象範囲を指定(未指定なら全体)
  3. 在庫数頻度品目数頻度に年間のカウント回数を入力(最小値 1)
  4. 次回実行日を設定して「保存
項目名必須説明
名称必須文字列ルールの名称
倉庫-選択対象倉庫(未指定なら全倉庫)
品目カテゴリ-選択対象品目カテゴリ
在庫数頻度必須整数年間の在庫カウント回数(最小 1)
品目数頻度必須整数年間の品目カウント回数(最小 1)
高回転率アイテムカウント必須チェック高回転品目をカウント対象にする
実行番号必須整数処理頻度(最小 1)
最新実行日-日時最後に処理を実行した日
次回実行日必須日時次に処理を実行する日
処理中-ボタン棚卸生成処理の起動

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

Q. メニューに「常備在庫」が見つかりません

Section titled “Q. メニューに「常備在庫」が見つかりません”

iDempiere 13 標準ではこのウィンドウは無効化されており、標準メニューに登録されていません。旧バージョンからの互換用に AD 定義(Window ID: 175)が残っているのみです。

Q. 代わりに何を使えばよいですか?

Section titled “Q. 代わりに何を使えばよいですか?”

定期・循環棚卸は 実地棚卸 ウィンドウの棚卸リスト作成プロセスで対象倉庫・ロケーター・品目を絞り込んで生成する運用を推奨します。

Q. 頻度に 0 を設定できますか?

Section titled “Q. 頻度に 0 を設定できますか?”

できません。在庫数頻度・品目数頻度・実行番号にはカラム定義で最小値 1 が設定されています。

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

常備在庫は M_PerpetualInv テーブル(アクセスレベル: Client+Org)に格納されるマスタです。専用の M クラスは存在せず、自動生成クラス X_M_PerpetualInv のみが提供されます(ビジネスロジックはモデル層に実装されていません)。Document 型ではありません。

classDiagram
    class X_M_PerpetualInv {
        <<generated>>
        +getNoInventoryCount() int
        +getNoProductCount() int
        +getDateNextRun() Timestamp
    }
    class PO {
        <<abstract>>
    }
    X_M_PerpetualInv --|> PO
    X_M_PerpetualInv --> M_Warehouse : scope
    X_M_PerpetualInv --> M_Product_Category : scope

<> +getNoInventoryCount() int +getNoProductCount() int +getDateNextRun() Timestamp <>

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/X_M_PerpetualInv.java(生成クラスのみ)

カラム名必須説明備考
M_PerpetualInv_IDIDPK常備在庫ID主キー
NameString(60)Y名称識別子
M_Warehouse_IDTableDirectN対象倉庫
M_Product_Category_IDTableDirectN対象品目カテゴリ
NoInventoryCountIntegerY在庫数頻度/年default 1、最小 1
NoProductCountIntegerY品目数頻度/年default 1、最小 1
CountHighMovementYesNoY高回転品目カウント
NumberOfRunsIntegerY実行番号default 1、最小 1
DateLastRunDate+TimeN最新実行日
DateNextRunDate+TimeY次回実行日
ProcessingButtonN処理起動

M クラスが存在しないため、モデル層の beforeSave/afterSave ロジックはありません。検証はカラム定義(必須制約・最小値 1)のみです。

  • 生成クラスのみのテーブルのため、独自検証を追加する場合は M_PerpetualInv を対象とした OSGi Model Validator を登録します
  • ただし iDempiere 13 で無効化された互換機能のため、新規カスタマイズの土台にはせず、実地棚卸(M_Inventory)側の拡張を推奨します

標準メニュー未登録のため、関連プロセスの掲載はありません(Processing ボタン列のみ定義)。


循環棚卸の自動生成など、旧・常備在庫機能に相当する仕組みは実地棚卸ベースのカスタムプロセスで安全に実現できます。

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

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