Skip to content

iDempiere 製造指図伝票(単品)の使い方|製造 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 製造の全体像: 製造の全体図 も合わせてご覧ください。

製造指図伝票(単品)は、1 つの完成品を BOM に基づいて製造し、完成品の在庫入庫と構成品目(材料)の在庫出庫を 1 伝票で計上する伝票です。伝票を完了すると在庫トランザクションが生成され、転記により製造の会計仕訳が作成されます。

📌 ポイント: 明細は手入力ではなく「Create/Update Production lines」ボタンで BOM から自動生成するのが基本フローです。明細未生成(レコード作成 = N)のままでは伝票を完了できません。

製造指図伝票(単品)でできること

Section titled “製造指図伝票(単品)でできること”
  • BOM を参照した製造明細(完成品 + 構成品目)の自動生成
  • 完成品の入庫と材料の出庫の同時計上(伝票完了時)
  • 保管場所(ロケーター)単位の払出・入庫指定
  • ロット・シリアル等の属性セットインスタンス管理(Attributes タブ)
  • 完成品に対する品質検査結果の記録(品質検査結果タブ)
  • 受注明細・プロジェクト・アクティビティとの紐付け
  • 完了済み伝票の反転(逆仕訳)による取消

製造指図伝票(単品)は 4 タブ構成です。

タブ名テーブル項目数役割
製造指図伝票M_Production31項目ヘッダー(品目・BOM・生産数量・伝票処理)
製造指図伝票明細M_ProductionLine16項目完成品と構成品目の明細(数量・保管場所)
品質検査結果M_QualityTestResult10項目完成品ロットに対する検査結果
AttributesM_ProductionLineMA7項目明細ごとの属性(ロット)別数量内訳
graph TD
    A["🚀 メニューから開く<br/>生産管理 > 製造指図伝票 (単品)"] --> B["➕ 新規でヘッダーを入力<br/>(品目・生産数量・移動日付・保管場所)"]
    B --> C["🔗 部品表(BOM &amp; Formula)が<br/>自動セットされる<br/>(タイプA・用途Aの既定BOM)"]
    C --> D["⚙️ Create/Update Production lines<br/>ボタンで明細を自動生成"]
    D --> E["✏️ 明細タブで数量・保管場所を確認<br/>(必要なら使用数量を調整)"]
    E --> F["✅ Process Production で伝票完了<br/>(完成品入庫 + 材料出庫を計上)"]
    F --> G["📒 転記ボタンで会計仕訳を生成"]

メニューから開く 生産管理 > 製造指図伝票 (単品) 新規でヘッダーを入力 (品目・生産数量・移動日付・保管場所) 部品表(BOM & Formula)が 自動セットされる (タイプA・用途Aの既定BOM) Create/Update Production lines ボタンで明細を自動生成 明細タブで数量・保管場所を確認 (必要なら使用数量を調整) Process Production で伝票完了 (完成品入庫 + 材料出庫を計上) 転記ボタンで会計仕訳を生成

⚠️ 注意: 移動日付の会計期間が開いていないと伝票を完了できません。また完了後の伝票は修正できず、取消は反転(逆仕訳)で行います。

メニューから「生産管理(Manufacturing Lite) > 製造指図伝票 (単品)」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. ヘッダー情報を入力:
    • 伝票番号: 自動採番(変更可)
    • 移動日付: 在庫移動を計上する日付(会計期間が開いていること)
    • 品目: 製造する完成品。BOM 登録済みの品目のみ完了可能
    • 部品表(BOM & Formula): 品目選択時に既定 BOM が自動セット。別 BOM も選択可
    • 生産数量: 製造する数量
    • 保管場所: 完成品の入庫先ロケーター
  3. 保存」をクリック
  4. Create/Update Production lines」ボタンをクリックし、BOM から明細を生成
    • 完成品行(最終製品 = Y、正数)と構成品目行(負数 = 出庫)が作成されます
    • 「レコード作成」が Y に変わります
  5. 明細タブで各行の数量・保管場所を確認、必要に応じて使用数量を調整
  1. ヘッダーの「Process Production」(伝票アクション)から「完了」を選択
  2. 完了時に以下が実行されます:
    • 会計期間・バックデートのチェック
    • 完成品の BOM 検証(BOM 未登録品目はエラー)
    • 明細ごとの在庫トランザクション生成(完成品入庫・材料出庫)
  3. 完了後、「転記」ボタンで会計仕訳を生成(自動転記設定の場合は不要)

伝票状態の遷移:

graph LR
    DR["下書き<br/>(DR)"] -->|準備| IP["進行中<br/>(IP)"]
    IP -->|完了| CO["完了<br/>(CO)"]
    CO -->|反転| RE["反転済み<br/>(RE)"]
    CO -->|クローズ| CL["クローズ<br/>(CL)"]
    DR -->|無効化| VO["無効<br/>(VO)"]

下書き (DR) 進行中 (IP) 完了 (CO) 反転済み (RE) クローズ (CL) 無効 (VO) 準備 完了 反転 クローズ 無効化

製造指図伝票タブ(主要項目)

Section titled “製造指図伝票タブ(主要項目)”
項目名必須説明
伝票番号必須文字列伝票の連番
Document Type必須選択伝票タイプ(Material Production)
移動日付必須日付在庫計上日(期間チェックあり)
品目-検索製造する完成品
部品表(BOM & Formula)-選択参照する BOM(既定 BOM が自動セット)
生産数量必須数値製造数量(デフォルト 0)
保管場所-ロケーター完成品の入庫先
レコード作成自動リスト明細生成済みか(N のままでは完了不可)
伝票状態 / Process Production-リスト/ボタン伝票のステータスと処理
転記必須ボタン会計転記状態

製造指図伝票明細タブ(主要項目)

Section titled “製造指図伝票明細タブ(主要項目)”
項目名必須説明
明細番号必須整数10 刻みで自動採番
品目必須検索完成品または構成品目
最終製品自動チェック完成品行かどうか(自動判定)
計画数量-数値BOM から算出された計画数量
使用数量-数値実際に使用した数量(構成品目行)
移動数量必須数量在庫移動数量(完成品 = 正、材料 = 負)
保管場所必須ロケーター入出庫ロケーター
属性セットインスタンス必須品目属性ロット・シリアル指定

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

Q. 完了時に「Not created」エラーになります

Section titled “Q. 完了時に「Not created」エラーになります”

明細が未生成(「レコード作成」= N)のままです。ヘッダーの「Create/Update Production lines」ボタンで明細を生成してから完了してください。

Q. 完了時に「Production does not contain End Product」エラーになります

Section titled “Q. 完了時に「Production does not contain End Product」エラーになります”

明細に最終製品行(完成品行)がありません。明細生成後に完成品行を削除した場合などに発生します。明細を再生成してください。なお最終製品フラグは「ヘッダーの品目と同一品目かつ生産数量と同符号の数量」の行に自動セットされます。

品目選択時に、対象品目の BOM のうち 部品表タイプ = A かつ 部品表使用用途 = A かつ有効のもの(組織一致を優先)が自動セットされます。別の BOM を使う場合は手動で選択してから明細を生成してください。

Q. 品質検査結果タブに行が自動で作成されるのはなぜですか?

Section titled “Q. 品質検査結果タブに行が自動で作成されるのはなぜですか?”

完成品行に属性セットインスタンス(ロット等)が設定されており、かつその品目が品質検査ウィンドウの「Product」タブに割り当てられている場合、明細保存時に未実施の検査項目分の結果行が自動生成されます。検査担当者は生成された行に結果と QC Pass を入力します。

Q. 完了済みの伝票を取り消すには?

Section titled “Q. 完了済みの伝票を取り消すには?”

完了後の修正はできません。伝票アクションから**反転(訂正仕訳/振替仕訳)**を実行すると、符号を逆にした反転伝票が自動生成され、在庫と会計が取り消されます。下書き状態の伝票は「無効化」で取り消せます。

移動日付の会計期間が閉じているか、バックデート取引が許可されていません。会計期間(カレンダー期間)を開くか、移動日付を開いている期間に変更してください。

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

製造指図伝票(単品)は Document 型のウィンドウ(AD_Window_ID: 53127)で、ヘッダーを M_Production、明細を M_ProductionLine、属性別内訳を M_ProductionLineMA、検査結果を M_QualityTestResult に格納します。MProduction クラス(1,100行)が DocAction を実装し、伝票ライフサイクル(prepareIt/completeIt/voidIt/reverseCorrectIt 等)を担います。明細の在庫トランザクション生成は MProductionLine(522行)の createTransactions() が実行します。アクセスレベルは Organization です。

classDiagram
    class MProduction {
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +closeIt() boolean
        +reverseCorrectIt() boolean
        +reverseAccrualIt() boolean
        +reActivateIt() boolean
        +createLines(mustBeStocked) int
        +validateEndProduct(M_Product_ID) String
        #beforeSave(boolean) boolean
    }
    class MProductionLine {
        +createTransactions(date, mustBeStocked) String
        +getLineMAs() MProductionLineMA[]
        #beforeSave(boolean) boolean
        #beforeDelete() boolean
    }
    class MProductionLineMA
    class MQualityTestResult
    class DocAction {
        <<interface>>
    }
    class X_M_Production {
        <<generated>>
    }
    MProduction --|> X_M_Production
    MProduction ..|> DocAction
    MProduction --> MProductionLine : has many
    MProductionLine --> MProductionLineMA : has many
    MProductionLine --> MQualityTestResult : auto-creates

+prepareIt() String +completeIt() String +voidIt() boolean +closeIt() boolean +reverseCorrectIt() boolean +reverseAccrualIt() boolean +reActivateIt() boolean +createLines(mustBeStocked) int +validateEndProduct(M_Product_ID) String #beforeSave(boolean) boolean +createTransactions(date, mustBeStocked) String +getLineMAs() MProductionLineMA[] #beforeSave(boolean) boolean #beforeDelete() boolean <> <> > X_M_Production MProduction ..

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MProduction.java / MProductionLine.java / MProductionLineMA.java

M_Production(製造指図伝票ヘッダー)

Section titled “M_Production(製造指図伝票ヘッダー)”
カラム名必須説明備考
M_Production_IDIDPK製造指図 ID主キー
C_DocType_IDTableDirectY伝票タイプ未指定時 Material Production を自動セット
DocumentNoString(30)Y伝票番号
MovementDateDateY移動日付callout: CalloutEngine.checkPeriodOpen
M_Product_IDSearchN完成品callout: CalloutProduction.product
PP_Product_BOM_IDTableDirectN参照 BOM初期値 SQL: BOMType A・BOMUse A・有効
ProductionQtyAmountY生産数量デフォルト 0
M_Locator_IDLocatorN入庫先ロケーター
IsCreatedListY明細生成済みフラグデフォルト N
IsUseProductionPlanYesNoY生産計画使用品目未指定時に自動 Y(単品ウィンドウでは N)
DocStatus / DocActionList/ButtonN伝票状態/アクションデフォルト DR / CO
PostedButtonY転記状態
Reversal_IDSearchN反転元伝票反転時に相互セット
カラム名必須説明備考
M_ProductionLine_IDIDPK明細 ID主キー
M_Production_IDSearchNヘッダー FK親リンク
LineIntegerY明細番号デフォルト = MAX(Line)+10
M_Product_IDSearchY品目callout: CalloutProduction.product
IsEndProductYesNoN最終製品フラグbeforeSave で自動判定
PlannedQtyAmountN計画数量BOM 展開結果
QtyUsedAmountN使用数量非最終製品行の実消費
MovementQtyQuantityY移動数量非最終製品行は −QtyUsed に自動セット
M_Locator_IDLocatorYロケーターヘッダーから初期値
M_AttributeSetInstance_IDProduct AttributeY属性セットインスタンス

M_ProductionLineMA は明細×属性セットインスタンス×在庫入庫日付(DateMaterialPolicy)単位の数量内訳で、FIFO/LIFO の材料方策に使用されます。

  1. 伝票タイプ未指定時、DOCBASETYPE_MaterialProduction の伝票タイプを自動セット
  2. 品目指定あり → IsUseProductionPlan=false、品目未指定 → true(単品ウィンドウは品目指定ありの運用)
  1. MPeriod.testPeriodOpen() で会計期間、MAcctSchema.testBackDateTrxAllowed() でバックデート可否をチェック
  2. IsCreated='N' の場合「Not created」で STATUS_Invalid
  3. validateEndProduct(): 完成品に有効な BOM があるか(isBom())、標準原価の乖離チェック(costsOK()、SysConfig MFG_ValidateCostsDifferenceOnCreate=Y 時はエラー扱い)
  1. 明細に最終製品行が無い場合「Production does not contain End Product」で STATUS_Invalid
  2. processLines() → 各明細の createTransactions() で在庫トランザクション(完成品入庫・材料出庫)を生成
  3. 成功時 Processed=trueDocAction=Close、STATUS_Completed を返す
  1. 完了済みヘッダーへの行追加を拒否(ParentComplete エラー)
  2. IsEndProduct の自動判定: ヘッダーの品目と同一かつ生産数量と同符号なら最終製品行
  3. 品質検査結果の自動生成: 最終製品行かつ属性セットインスタンス設定時、M_Product_QualityTest に割り当てられた検査のうち当該 ASI で未実施のものについて MQualityTest.createResult() を呼び出し M_QualityTestResult を生成
  4. 非最終製品行の移動数量: MovementQty = −QtyUsed に自動セット

reverseCorrectIt()(同日訂正)/reverseAccrualIt()(当日日付の振替)は reverse() で符号反転した反転伝票を生成し、Reversal_ID を相互にセットします。

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

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

Document 型のため docValidate() の TIMING_BEFORE/AFTER_PREPARE・TIMING_BEFORE/AFTER_COMPLETE がフックできます(prepareIt/completeIt 内で ModelValidationEngine.fireDocValidate() が呼ばれます)。完了前の独自チェック(例: 材料在庫の事前検証、生産数量の上限)は TIMING_BEFORE_COMPLETE に実装します。

カラムCallout
M_Production.MovementDateorg.compiere.model.CalloutEngine.checkPeriodOpen
M_Production.M_Product_ID / M_ProductionLine.M_Product_IDorg.compiere.model.CalloutProduction.product
プロセス名説明
Create/Update Production linesBOM を展開して明細を生成・再生成(ヘッダーのボタン)
Process Production伝票アクションの実行(完了・無効化・反転等)

iDempiereの製造指図伝票は Model Validator の伝票イベントで安全に拡張できます。 完了前の在庫チェックや独自の原価検証も、コア改変なしで実装可能です。

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

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