---
id: change/bcapps/9067
type: change
title: "#9067 Production Definition Wizard - Implementation "
summary: The Production Definition Wizard is introduced as a guided multi-step interface for configuring Bill of Materials and Routing for manufactured items, with new setup fields, temporary record handling improvements, and expanded event publishers for extensibility.
tier: official
language: en
tags:
  - feature
  - main
  - bc30
  - codeunit posting preview event handler
  - page vendor ledger entries
  - table vendor
  - codeunit upgrade tag definitions
  - codeunit gen. jnl.-post reverse
  - codeunit purch.-post
system: manufacturing
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:08:53.609Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 92907ff981ce529c1e47fa1150c1aed8dd0d3506
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/9067
    title: "microsoft/BCApps#9067: Production Definition Wizard - Implementation "
    date: "2026-08-16"
    commit: 92907ff981ce529c1e47fa1150c1aed8dd0d3506
    t: null
    quote: null
links:
  learn: []
  objects:
    - object/codeunit/20
    - object/page/29
    - object/table/23
    - object/codeunit/9998
    - object/codeunit/17
    - object/codeunit/90
    - object/page/26
    - object/table/5740
    - object/table/5409
    - object/table/99000764
    - object/table/99000765
    - object/codeunit/1901
    - object/page/99000884
    - object/table/5407
    - object/table/5406
    - object/codeunit/99000837
    - object/table/5405
    - object/pageextension/99000750
    - object/pageextension/99000751
    - object/pageextension/99000754
    - object/pageextension/99000755
    - object/table/99000772
    - object/page/99000788
    - object/tableextension/99000751
    - object/pageextension/99000883
    - object/page/99000768
    - object/codeunit/104062
    - object/codeunit/99001023
    - object/codeunit/99001022
    - object/enum/99001010
    - object/enum/99001011
    - object/enum/99001031
    - object/enum/99001028
    - object/enum/99001012
    - object/codeunit/99001016
    - object/codeunit/99001015
    - object/codeunit/99001018
    - object/codeunit/99001017
    - object/page/99001021
    - object/page/99001029
    - object/page/99001020
    - object/page/99001019
    - object/page/99001030
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 9067
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/9067
kind: pr
base_branch: main
major: "30"
merged_at: "2026-08-16T22:42:47Z"
author: stevengrossGOB
author_type: User
community_contribution: true
labels:
  - "ADO: Sync"
  - From Fork
  - Subcontracting
  - "Team: SCM"
change_class: code
change_kind: feature
behavior_change: true
breaking: false
files:
  count: 100
  additions: 11954
  deletions: 162
  al: 85
apps:
  - Base Application
objects_touched:
  - key: codeunit/20
    page: codeunit/20
    type: codeunit
    id: 20
    name: Posting Preview Event Handler
    app: Base Application
    status: modified
  - key: page/29
    page: page/29
    type: page
    id: 29
    name: Vendor Ledger Entries
    app: Base Application
    status: modified
  - key: table/23
    page: table/23
    type: table
    id: 23
    name: Vendor
    app: Base Application
    status: modified
  - key: codeunit/9998
    page: codeunit/9998
    type: codeunit
    id: 9998
    name: Upgrade Tag Definitions
    app: Base Application
    status: modified
  - key: codeunit/17
    page: codeunit/17
    type: codeunit
    id: 17
    name: Gen. Jnl.-Post Reverse
    app: Base Application
    status: modified
  - key: codeunit/90
    page: codeunit/90
    type: codeunit
    id: 90
    name: Purch.-Post
    app: Base Application
    status: modified
  - key: page/26
    page: page/26
    type: page
    id: 26
    name: Vendor Card
    app: Base Application
    status: modified
  - key: table/5740
    page: table/5740
    type: table
    id: 5740
    name: Transfer Header
    app: Base Application
    status: modified
  - key: table/5409
    page: table/5409
    type: table
    id: 5409
    name: Prod. Order Routing Line
    app: Base Application
    status: modified
  - key: table/99000764
    page: table/99000764
    type: table
    id: 99000764
    name: Routing Line
    app: Base Application
    status: modified
  - key: table/99000765
    page: table/99000765
    type: table
    id: 99000765
    name: Manufacturing Setup
    app: Base Application
    status: modified
  - key: codeunit/1901
    page: codeunit/1901
    type: codeunit
    id: 1901
    name: Report Selection Mgt.
    app: Base Application
    status: modified
  - key: page/99000884
    page: page/99000884
    type: page
    id: 99000884
    name: Create Order From Sales
    app: Base Application
    status: modified
  - key: table/5407
    page: table/5407
    type: table
    id: 5407
    name: Prod. Order Component
    app: Base Application
    status: modified
  - key: table/5406
    page: table/5406
    type: table
    id: 5406
    name: Prod. Order Line
    app: Base Application
    status: modified
  - key: codeunit/99000837
    page: codeunit/99000837
    type: codeunit
    id: 99000837
    name: Prod. Order Line-Reserve
    app: Base Application
    status: modified
  - key: table/5405
    page: table/5405
    type: table
    id: 5405
    name: Production Order
    app: Base Application
    status: modified
  - key: pageextension/99000750
    page: pageextension/99000750
    type: pageextension
    id: 99000750
    name: Mfg. Item Card
    app: Base Application
    status: modified
  - key: pageextension/99000751
    page: pageextension/99000751
    type: pageextension
    id: 99000751
    name: Mfg. Item List
    app: Base Application
    status: modified
  - key: pageextension/99000754
    page: pageextension/99000754
    type: pageextension
    id: 99000754
    name: Mfg. Stockkeeping Unit Card
    app: Base Application
    status: modified
  - key: pageextension/99000755
    page: pageextension/99000755
    type: pageextension
    id: 99000755
    name: Mfg. Stockkeeping Unit List
    app: Base Application
    status: modified
  - key: table/99000772
    page: table/99000772
    type: table
    id: 99000772
    name: Production BOM Line
    app: Base Application
    status: modified
  - key: page/99000788
    page: page/99000788
    type: page
    id: 99000788
    name: Production BOM Lines
    app: Base Application
    status: modified
  - key: tableextension/99000751
    page: tableextension/99000751
    type: tableextension
    id: 99000751
    name: Mfg. Purchase Line
    app: Base Application
    status: modified
  - key: pageextension/99000883
    page: pageextension/99000883
    type: pageextension
    id: 99000883
    name: Mfg. Sales Order Planning
    app: Base Application
    status: modified
  - key: page/99000768
    page: page/99000768
    type: page
    id: 99000768
    name: Manufacturing Setup
    app: Base Application
    status: modified
  - key: codeunit/104062
    page: codeunit/104062
    type: codeunit
    id: 104062
    name: Mfg. Upgrade BaseApp
    app: Base Application
    status: modified
  - key: codeunit/99001023
    page: codeunit/99001023
    type: codeunit
    id: 99001023
    name: Prod. Def. ProdOrdLine Bind
    app: Base Application
    status: added
  - key: codeunit/99001022
    page: codeunit/99001022
    type: codeunit
    id: 99001022
    name: Prod. Def. Source Initializer
    app: Base Application
    status: added
  - key: enum/99001010
    page: enum/99001010
    type: enum
    id: 99001010
    name: Prod. Definition Display
    app: Base Application
    status: added
  - key: enum/99001011
    page: enum/99001011
    type: enum
    id: 99001011
    name: Prod. Definition Mode
    app: Base Application
    status: added
  - key: enum/99001031
    page: enum/99001031
    type: enum
    id: 99001031
    name: Prod. Definition Save Target
    app: Base Application
    status: added
  - key: enum/99001028
    page: enum/99001028
    type: enum
    id: 99001028
    name: Prod. Definition Scenario
    app: Base Application
    status: added
  - key: enum/99001012
    page: enum/99001012
    type: enum
    id: 99001012
    name: Prod. Definition Source
    app: Base Application
    status: added
  - key: codeunit/99001016
    page: codeunit/99001016
    type: codeunit
    id: 99001016
    name: Prod. Definition Temp Data
    app: Base Application
    status: added
  - key: codeunit/99001015
    page: codeunit/99001015
    type: codeunit
    id: 99001015
    name: Prod. Definition Version Mgmt.
    app: Base Application
    status: added
  - key: codeunit/99001018
    page: codeunit/99001018
    type: codeunit
    id: 99001018
    name: Prod. Order Direct Creator
    app: Base Application
    status: added
  - key: codeunit/99001017
    page: codeunit/99001017
    type: codeunit
    id: 99001017
    name: Production Definition Manager
    app: Base Application
    status: added
  - key: page/99001021
    page: page/99001021
    type: page
    id: 99001021
    name: Production Definition Wizard
    app: Base Application
    status: added
  - key: page/99001029
    page: page/99001029
    type: page
    id: 99001029
    name: Temp BOM Lines
    app: Base Application
    status: added
  - key: page/99001020
    page: page/99001020
    type: page
    id: 99001020
    name: Temp Prod. Ord. Rtng List
    app: Base Application
    status: added
  - key: page/99001019
    page: page/99001019
    type: page
    id: 99001019
    name: Temp Prod. Order Comp. List
    app: Base Application
    status: added
  - key: page/99001030
    page: page/99001030
    type: page
    id: 99001030
    name: Temp Routing Lines
    app: Base Application
    status: added
objects_unjoined:
  - path: src/Layers/APAC/BaseApp/Foundation/Reporting/ReportSelectionMgt.Codeunit.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/APAC/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/BE/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/CH/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/DACH/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/ES/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/ES/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/FI/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/FR/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IS/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Finance/GeneralLedger/Reversal/GenJnlPostReverse.Codeunit.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Manufacturing/Setup/ManufacturingSetup.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NA/BaseApp/Foundation/Reporting/ReportSelectionMgt.Codeunit.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NA/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NA/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NL/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NO/BaseApp/Purchases/Vendor/VendorCard.Page.al
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items:
  - 576196
  - 618497
systems:
  - manufacturing
  - purchasing
  - platform
  - finance
  - inventory
  - development
  - sales
quote: null
joined_against:
  major: "30"
  commit: f18567dc08e2bd162bf192e1da4d714b57eb099f
---

# #9067 Production Definition Wizard - Implementation 

> The Production Definition Wizard is introduced as a guided multi-step interface for configuring Bill of Materials and Routing for manufactured items, with new setup fields, temporary record handling improvements, and expanded event publishers for extensibility.

[Pull request](https://github.com/microsoft/BCApps/pull/9067) · merged into `main` (BC30) on 2026-08-16 by stevengrossGOB (community contribution) · 100 files (+11954 -162), 85 AL · feature · tier official · reviewed (checked by Opus)

## What changed

- New wizard pages and configuration fields added to Manufacturing Setup to control wizard visibility, behavior, and default values
- Temporary record handling improved with IsTemporary checks in production order components and routing lines to prevent unintended database access
- Event publishers expanded with new parameters and integration points like OnBeforeGetProdOrderNeeds and OnBeforeGetProdOrderLine for extension flexibility
- CreateOrderFromSales page enhanced with UseProductDefinitionWizard field to allow users to opt into wizard during order creation
- Manufacturing module refactored to support the new wizard-based workflow for production definition
- Behaviour changes for users or extensions.

## AL objects touched

- [Codeunit 20 "Posting Preview Event Handler"](../../objects/codeunit/20.md), Base Application (RU layer): modified
- [Page 29 "Vendor Ledger Entries"](../../objects/page/29.md), Base Application (RU layer): modified
- [Table 23 "Vendor"](../../objects/table/23.md), Base Application (RU layer): modified
- [Codeunit 9998 "Upgrade Tag Definitions"](../../objects/codeunit/9998.md), Base Application: modified
- [Codeunit 17 "Gen. Jnl.-Post Reverse"](../../objects/codeunit/17.md), Base Application (RU layer): modified
- [Codeunit 90 "Purch.-Post"](../../objects/codeunit/90.md), Base Application (GB layer): modified
- [Page 26 "Vendor Card"](../../objects/page/26.md), Base Application (RU layer): modified
- [Table 5740 "Transfer Header"](../../objects/table/5740.md), Base Application (IT layer): modified
- [Table 5409 "Prod. Order Routing Line"](../../objects/table/5409.md), Base Application: modified
- [Table 99000764 "Routing Line"](../../objects/table/99000764.md), Base Application: modified
- [Table 99000765 "Manufacturing Setup"](../../objects/table/99000765.md), Base Application: modified
- [Codeunit 1901 "Report Selection Mgt."](../../objects/codeunit/1901.md), Base Application (RU layer): modified
- [Page 99000884 "Create Order From Sales"](../../objects/page/99000884.md), Base Application: modified
- [Table 5407 "Prod. Order Component"](../../objects/table/5407.md), Base Application: modified
- [Table 5406 "Prod. Order Line"](../../objects/table/5406.md), Base Application: modified
- [Codeunit 99000837 "Prod. Order Line-Reserve"](../../objects/codeunit/99000837.md), Base Application: modified
- [Table 5405 "Production Order"](../../objects/table/5405.md), Base Application: modified
- [Page extension 99000750 "Mfg. Item Card"](../../objects/pageextension/99000750.md), Base Application: modified
- [Page extension 99000751 "Mfg. Item List"](../../objects/pageextension/99000751.md), Base Application: modified
- [Page extension 99000754 "Mfg. Stockkeeping Unit Card"](../../objects/pageextension/99000754.md), Base Application: modified
- [Page extension 99000755 "Mfg. Stockkeeping Unit List"](../../objects/pageextension/99000755.md), Base Application: modified
- [Table 99000772 "Production BOM Line"](../../objects/table/99000772.md), Base Application: modified
- [Page 99000788 "Production BOM Lines"](../../objects/page/99000788.md), Base Application: modified
- [Table extension 99000751 "Mfg. Purchase Line"](../../objects/tableextension/99000751.md), Base Application: modified
- [Page extension 99000883 "Mfg. Sales Order Planning"](../../objects/pageextension/99000883.md), Base Application: modified
- [Page 99000768 "Manufacturing Setup"](../../objects/page/99000768.md), Base Application: modified
- [Codeunit 104062 "Mfg. Upgrade BaseApp"](../../objects/codeunit/104062.md), Base Application: modified
- [Codeunit 99001023 "Prod. Def. ProdOrdLine Bind"](../../objects/codeunit/99001023.md), Base Application: added
- [Codeunit 99001022 "Prod. Def. Source Initializer"](../../objects/codeunit/99001022.md), Base Application: added
- [Enum 99001010 "Prod. Definition Display"](../../objects/enum/99001010.md), Base Application: added
- [Enum 99001011 "Prod. Definition Mode"](../../objects/enum/99001011.md), Base Application: added
- [Enum 99001031 "Prod. Definition Save Target"](../../objects/enum/99001031.md), Base Application: added
- [Enum 99001028 "Prod. Definition Scenario"](../../objects/enum/99001028.md), Base Application: added
- [Enum 99001012 "Prod. Definition Source"](../../objects/enum/99001012.md), Base Application: added
- [Codeunit 99001016 "Prod. Definition Temp Data"](../../objects/codeunit/99001016.md), Base Application: added
- [Codeunit 99001015 "Prod. Definition Version Mgmt."](../../objects/codeunit/99001015.md), Base Application: added
- [Codeunit 99001018 "Prod. Order Direct Creator"](../../objects/codeunit/99001018.md), Base Application: added
- [Codeunit 99001017 "Production Definition Manager"](../../objects/codeunit/99001017.md), Base Application: added
- [Page 99001021 "Production Definition Wizard"](../../objects/page/99001021.md), Base Application: added
- [Page 99001029 "Temp BOM Lines"](../../objects/page/99001029.md), Base Application: added
- [Page 99001020 "Temp Prod. Ord. Rtng List"](../../objects/page/99001020.md), Base Application: added
- [Page 99001019 "Temp Prod. Order Comp. List"](../../objects/page/99001019.md), Base Application: added
- [Page 99001030 "Temp Routing Lines"](../../objects/page/99001030.md), Base Application: added
- `src/Layers/APAC/BaseApp/Foundation/Reporting/ReportSelectionMgt.Codeunit.al`: modified, not in the BC30 snapshot
- `src/Layers/APAC/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/BE/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/CH/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/DACH/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/ES/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/ES/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/FI/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/FR/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IS/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Finance/GeneralLedger/Reversal/GenJnlPostReverse.Codeunit.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Manufacturing/Setup/ManufacturingSetup.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NA/BaseApp/Foundation/Reporting/ReportSelectionMgt.Codeunit.al`: modified, not in the BC30 snapshot
- `src/Layers/NA/BaseApp/Purchases/Payables/VendorLedgerEntries.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NA/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NL/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NO/BaseApp/Purchases/Vendor/VendorCard.Page.al`: modified, not in the BC30 snapshot

## Context

- Work items: AB#576196, AB#618497
- Labels: ADO: Sync, From Fork, Subcontracting, Team: SCM
- Systems: manufacturing, purchasing, platform, finance, inventory, development, sales

Source: metadata of a merged pull request in microsoft/BCApps (bcapps): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).
