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_Production | 31項目 | ヘッダー(品目・BOM・生産数量・伝票処理) |
| 製造指図伝票明細 | M_ProductionLine | 16項目 | 完成品と構成品目の明細(数量・保管場所) |
| 品質検査結果 | M_QualityTestResult | 10項目 | 完成品ロットに対する検査結果 |
| Attributes | M_ProductionLineMA | 7項目 | 明細ごとの属性(ロット)別数量内訳 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>生産管理 > 製造指図伝票 (単品)"] --> B["➕ 新規でヘッダーを入力<br/>(品目・生産数量・移動日付・保管場所)"]
B --> C["🔗 部品表(BOM & Formula)が<br/>自動セットされる<br/>(タイプA・用途Aの既定BOM)"]
C --> D["⚙️ Create/Update Production lines<br/>ボタンで明細を自動生成"]
D --> E["✏️ 明細タブで数量・保管場所を確認<br/>(必要なら使用数量を調整)"]
E --> F["✅ Process Production で伝票完了<br/>(完成品入庫 + 材料出庫を計上)"]
F --> G["📒 転記ボタンで会計仕訳を生成"]
⚠️ 注意: 移動日付の会計期間が開いていないと伝票を完了できません。また完了後の伝票は修正できず、取消は反転(逆仕訳)で行います。
アクセス方法
Section titled “アクセス方法”メニューから「生産管理(Manufacturing Lite) > 製造指図伝票 (単品)」を開きます。
- ツールバーの「新規」ボタンをクリック
- ヘッダー情報を入力:
- 伝票番号: 自動採番(変更可)
- 移動日付: 在庫移動を計上する日付(会計期間が開いていること)
- 品目: 製造する完成品。BOM 登録済みの品目のみ完了可能
- 部品表(BOM & Formula): 品目選択時に既定 BOM が自動セット。別 BOM も選択可
- 生産数量: 製造する数量
- 保管場所: 完成品の入庫先ロケーター
- 「保存」をクリック
- 「Create/Update Production lines」ボタンをクリックし、BOM から明細を生成
- 完成品行(最終製品 = Y、正数)と構成品目行(負数 = 出庫)が作成されます
- 「レコード作成」が Y に変わります
- 明細タブで各行の数量・保管場所を確認、必要に応じて使用数量を調整
- ヘッダーの「Process Production」(伝票アクション)から「完了」を選択
- 完了時に以下が実行されます:
- 会計期間・バックデートのチェック
- 完成品の BOM 検証(BOM 未登録品目はエラー)
- 明細ごとの在庫トランザクション生成(完成品入庫・材料出庫)
- 完了後、「転記」ボタンで会計仕訳を生成(自動転記設定の場合は不要)
伝票状態の遷移:
graph LR
DR["下書き<br/>(DR)"] -->|準備| IP["進行中<br/>(IP)"]
IP -->|完了| CO["完了<br/>(CO)"]
CO -->|反転| RE["反転済み<br/>(RE)"]
CO -->|クローズ| CL["クローズ<br/>(CL)"]
DR -->|無効化| VO["無効<br/>(VO)"]
項目リファレンス
Section titled “項目リファレンス”製造指図伝票タブ(主要項目)
Section titled “製造指図伝票タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票番号 | 必須 | 文字列 | 伝票の連番 |
| Document Type | 必須 | 選択 | 伝票タイプ(Material Production) |
| 移動日付 | 必須 | 日付 | 在庫計上日(期間チェックあり) |
| 品目 | - | 検索 | 製造する完成品 |
| 部品表(BOM & Formula) | - | 選択 | 参照する BOM(既定 BOM が自動セット) |
| 生産数量 | 必須 | 数値 | 製造数量(デフォルト 0) |
| 保管場所 | - | ロケーター | 完成品の入庫先 |
| レコード作成 | 自動 | リスト | 明細生成済みか(N のままでは完了不可) |
| 伝票状態 / Process Production | - | リスト/ボタン | 伝票のステータスと処理 |
| 転記 | 必須 | ボタン | 会計転記状態 |
製造指図伝票明細タブ(主要項目)
Section titled “製造指図伝票明細タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 明細番号 | 必須 | 整数 | 10 刻みで自動採番 |
| 品目 | 必須 | 検索 | 完成品または構成品目 |
| 最終製品 | 自動 | チェック | 完成品行かどうか(自動判定) |
| 計画数量 | - | 数値 | BOM から算出された計画数量 |
| 使用数量 | - | 数値 | 実際に使用した数量(構成品目行) |
| 移動数量 | 必須 | 数量 | 在庫移動数量(完成品 = 正、材料 = 負) |
| 保管場所 | 必須 | ロケーター | 入出庫ロケーター |
| 属性セットインスタンス | 必須 | 品目属性 | ロット・シリアル指定 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”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」エラーになります”明細に最終製品行(完成品行)がありません。明細生成後に完成品行を削除した場合などに発生します。明細を再生成してください。なお最終製品フラグは「ヘッダーの品目と同一品目かつ生産数量と同符号の数量」の行に自動セットされます。
Q. どの BOM が使われますか?
Section titled “Q. どの BOM が使われますか?”品目選択時に、対象品目の BOM のうち 部品表タイプ = A かつ 部品表使用用途 = A かつ有効のもの(組織一致を優先)が自動セットされます。別の BOM を使う場合は手動で選択してから明細を生成してください。
Q. 品質検査結果タブに行が自動で作成されるのはなぜですか?
Section titled “Q. 品質検査結果タブに行が自動で作成されるのはなぜですか?”完成品行に属性セットインスタンス(ロット等)が設定されており、かつその品目が品質検査ウィンドウの「Product」タブに割り当てられている場合、明細保存時に未実施の検査項目分の結果行が自動生成されます。検査担当者は生成された行に結果と QC Pass を入力します。
Q. 完了済みの伝票を取り消すには?
Section titled “Q. 完了済みの伝票を取り消すには?”完了後の修正はできません。伝票アクションから**反転(訂正仕訳/振替仕訳)**を実行すると、符号を逆にした反転伝票が自動生成され、在庫と会計が取り消されます。下書き状態の伝票は「無効化」で取り消せます。
Q. 過去日付で完了できません
Section titled “Q. 過去日付で完了できません”移動日付の会計期間が閉じているか、バックデート取引が許可されていません。会計期間(カレンダー期間)を開くか、移動日付を開いている期間に変更してください。
- 部品表(BOM & Formula)の使い方
- 品質検査の使い方
- 製造指図(旧 Production ウィンドウ)の使い方
- 品目マスタ(Product)の使い方
- 画面リファレンス: 製造指図伝票 (単品)
🛠 技術仕様(開発者向け)
製造指図伝票(単品)は 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 です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MProduction.java / MProductionLine.java / MProductionLineMA.java
関連DBテーブル
Section titled “関連DBテーブル”M_Production(製造指図伝票ヘッダー)
Section titled “M_Production(製造指図伝票ヘッダー)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_Production_ID | ID | PK | 製造指図 ID | 主キー |
| C_DocType_ID | TableDirect | Y | 伝票タイプ | 未指定時 Material Production を自動セット |
| DocumentNo | String(30) | Y | 伝票番号 | |
| MovementDate | Date | Y | 移動日付 | callout: CalloutEngine.checkPeriodOpen |
| M_Product_ID | Search | N | 完成品 | callout: CalloutProduction.product |
| PP_Product_BOM_ID | TableDirect | N | 参照 BOM | 初期値 SQL: BOMType A・BOMUse A・有効 |
| ProductionQty | Amount | Y | 生産数量 | デフォルト 0 |
| M_Locator_ID | Locator | N | 入庫先ロケーター | |
| IsCreated | List | Y | 明細生成済みフラグ | デフォルト N |
| IsUseProductionPlan | YesNo | Y | 生産計画使用 | 品目未指定時に自動 Y(単品ウィンドウでは N) |
| DocStatus / DocAction | List/Button | N | 伝票状態/アクション | デフォルト DR / CO |
| Posted | Button | Y | 転記状態 | |
| Reversal_ID | Search | N | 反転元伝票 | 反転時に相互セット |
M_ProductionLine(明細)
Section titled “M_ProductionLine(明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_ProductionLine_ID | ID | PK | 明細 ID | 主キー |
| M_Production_ID | Search | N | ヘッダー FK | 親リンク |
| Line | Integer | Y | 明細番号 | デフォルト = MAX(Line)+10 |
| M_Product_ID | Search | Y | 品目 | callout: CalloutProduction.product |
| IsEndProduct | YesNo | N | 最終製品フラグ | beforeSave で自動判定 |
| PlannedQty | Amount | N | 計画数量 | BOM 展開結果 |
| QtyUsed | Amount | N | 使用数量 | 非最終製品行の実消費 |
| MovementQty | Quantity | Y | 移動数量 | 非最終製品行は −QtyUsed に自動セット |
| M_Locator_ID | Locator | Y | ロケーター | ヘッダーから初期値 |
| M_AttributeSetInstance_ID | Product Attribute | Y | 属性セットインスタンス |
M_ProductionLineMA は明細×属性セットインスタンス×在庫入庫日付(DateMaterialPolicy)単位の数量内訳で、FIFO/LIFO の材料方策に使用されます。
ビジネスロジック
Section titled “ビジネスロジック”MProduction.beforeSave()
Section titled “MProduction.beforeSave()”- 伝票タイプ未指定時、
DOCBASETYPE_MaterialProductionの伝票タイプを自動セット - 品目指定あり →
IsUseProductionPlan=false、品目未指定 →true(単品ウィンドウは品目指定ありの運用)
prepareIt()
Section titled “prepareIt()”MPeriod.testPeriodOpen()で会計期間、MAcctSchema.testBackDateTrxAllowed()でバックデート可否をチェックIsCreated='N'の場合「Not created」で STATUS_InvalidvalidateEndProduct(): 完成品に有効な BOM があるか(isBom())、標準原価の乖離チェック(costsOK()、SysConfigMFG_ValidateCostsDifferenceOnCreate=Y時はエラー扱い)
completeIt()
Section titled “completeIt()”- 明細に最終製品行が無い場合「Production does not contain End Product」で STATUS_Invalid
processLines()→ 各明細のcreateTransactions()で在庫トランザクション(完成品入庫・材料出庫)を生成- 成功時
Processed=true、DocAction=Close、STATUS_Completed を返す
MProductionLine.beforeSave()
Section titled “MProductionLine.beforeSave()”- 完了済みヘッダーへの行追加を拒否(ParentComplete エラー)
- IsEndProduct の自動判定: ヘッダーの品目と同一かつ生産数量と同符号なら最終製品行
- 品質検査結果の自動生成: 最終製品行かつ属性セットインスタンス設定時、
M_Product_QualityTestに割り当てられた検査のうち当該 ASI で未実施のものについてMQualityTest.createResult()を呼び出しM_QualityTestResultを生成 - 非最終製品行の移動数量:
MovementQty = −QtyUsedに自動セット
reverseCorrectIt()(同日訂正)/reverseAccrualIt()(当日日付の振替)は reverse() で符号反転した反転伝票を生成し、Reversal_ID を相互にセットします。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”Document 型のため docValidate() の TIMING_BEFORE/AFTER_PREPARE・TIMING_BEFORE/AFTER_COMPLETE がフックできます(prepareIt/completeIt 内で ModelValidationEngine.fireDocValidate() が呼ばれます)。完了前の独自チェック(例: 材料在庫の事前検証、生産数量の上限)は TIMING_BEFORE_COMPLETE に実装します。
Callout
Section titled “Callout”| カラム | Callout |
|---|---|
| M_Production.MovementDate | org.compiere.model.CalloutEngine.checkPeriodOpen |
| M_Production.M_Product_ID / M_ProductionLine.M_Product_ID | org.compiere.model.CalloutProduction.product |
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| Create/Update Production lines | BOM を展開して明細を生成・再生成(ヘッダーのボタン) |
| Process Production | 伝票アクションの実行(完了・無効化・反転等) |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの製造指図伝票は Model Validator の伝票イベントで安全に拡張できます。 完了前の在庫チェックや独自の原価検証も、コア改変なしで実装可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。