---
id: object/codeunit/99001017
type: object
title: Codeunit 99001017 "Production Definition Manager"
summary: Codeunit 99001017 "Production Definition Manager" in Base Application (Microsoft.Manufacturing.Wizard). 5 public procedures, 1 events. Introduced in BC30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: "30"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-07T23:32:29.863Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: afd17133d6d0c7ba74f6684e7f3aa2d9798cf33b3a8d7fb9069508a9309eea4c
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/f18567dc08e2bd162bf192e1da4d714b57eb099f/src/Layers/W1/BaseApp/Manufacturing/Wizard/ProductionDefinitionManager.Codeunit.al
    title: src/Layers/W1/BaseApp/Manufacturing/Wizard/ProductionDefinitionManager.Codeunit.al (main)
    date: null
    commit: f18567dc08e2bd162bf192e1da4d714b57eb099f
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9067
object_type: codeunit
object_id: 99001017
name: Production Definition Manager
namespace: Microsoft.Manufacturing.Wizard
app: Base Application
extends: null
first_version: "30"
last_version: "30"
present_in:
  - "30"
changed_in: []
source_major: "30"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 25
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 10
  called_by: 1
  implements: 0
---

# Codeunit 99001017 "Production Definition Manager"

> Codeunit 99001017 "Production Definition Manager" in Base Application (Microsoft.Manufacturing.Wizard). 5 public procedures, 1 events. Introduced in BC30.

Base Application · Microsoft.Manufacturing.Wizard · BC30 · [source at f18567dc](https://github.com/microsoft/BCApps/blob/f18567dc08e2bd162bf192e1da4d714b57eb099f/src/Layers/W1/BaseApp/Manufacturing/Wizard/ProductionDefinitionManager.Codeunit.al) · facts from BC30

## Events published

- `OnAfterPostWizardProcessing(TempData: Codeunit "Prod. Definition Temp Data"; var ProdOrder: Record "Production Order")` (integration)

## Procedures

- `RunForSource(Source: Variant; Mode: Enum "Prod. Definition Mode"): Boolean` (internal): Opens the Production Definition Wizard for any source record type using the default Released production order status.
- `RunForSource(Source: Variant; Mode: Enum "Prod. Definition Mode"; ProdOrderStatus: Enum "Production Order Status"): Boolean` (internal): Opens the Production Definition Wizard for any source record type. The source is dispatched through Prod. Def. Source Initializer, which handles Item, Stockkeeping Unit, and Sales Line natively. For other source types such as Purchase Line, subscribe to OnInitializeFromSource on that codeunit. BOM a...
- `ProcessBOMAndRoutingData(ItemNo: Code[20])` (internal): Persists the temporary production BOM and routing data collected during the wizard run. If no existing BOM or routing is found for the item, new records are created using the configured number series and certified immediately. If a version code is present, a new BOM or routing version is created ins...
- `GetTempData(var OutTempData: Codeunit "Prod. Definition Temp Data")` (internal): Returns the internal temporary data codeunit that holds the BOM, routing, and source document data collected during or after a wizard run. Use this to inspect or pass the wizard results to other codeunits without re-running the wizard.
- `OpenCreatedProductionOrder(ProdOrderNotification: Notification)` (internal): Opens the production order card page that corresponds to the status stored in the notification. This procedure is the action callback for the notification sent after a production order is created by the Production Definition Wizard.

Plus 19 local procedures.

## Calls

From the extracted call graph of BC30 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 99001016 "Prod. Definition Temp Data"](../codeunit/99001016.md) (22 calls: `CreateBOMIfNotExists → LoadBOMLines`, `CreateReservationFromSalesLine → GetGlobalSalesLine`, `CreateRoutingIfNotExists → LoadRoutingLines`, …)
- [Codeunit 99001015 "Prod. Definition Version Mgmt."](../codeunit/99001015.md) (8 calls: `CreateBOMIfNotExists → CheckBOMExists`, `CreateRoutingIfNotExists → CheckRoutingExists`, `PrepareBOMAndRoutingDataForScenario → GetDefaultBOMVersion`, …)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (5 calls: `CreateBOMIfNotExists → LogUsage`, `CreateRoutingIfNotExists → LogUsage`, `ExecuteWizardProcess → LogUptake`, …)
- [Page 456 "No. Series"](../page/456.md) (4 calls: `CreateBOMIfNotExists → (object)`, `CreateRoutingIfNotExists → (object)`, `SaveBOMVersionIfRequired → (object)`, …)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `CreateReservationFromSalesLine → ComposeRowID`, `CreateReservationFromSalesLine → CopyItemTracking`)
- [Codeunit 99001018 "Prod. Order Direct Creator"](../codeunit/99001018.md) (2 calls: `PostWizardProcessing → CreateProductionOrderFromTempData`, `PostWizardProcessing → RefreshProductionOrder`)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (1 call: `CreateReservationFromSalesLine → QtyRndPrecision`)
- [Codeunit 5407 "Prod. Order Status Management"](../codeunit/5407.md) (1 call: `FlushReleasedProdOrderForSalesSource → FlushProdOrder`)
- [Codeunit 700 "Page Management"](../codeunit/700.md) (1 call: `OpenCreatedProductionOrder → PageRun`)
- [Codeunit 99000832 "Sales Line-Reserve"](../codeunit/99000832.md) (1 call: `CreateReservationFromSalesLine → BindToTracking`)

## Called by

- [Page extension 99000883 "Mfg. Sales Order Planning"](../pageextension/99000883.md) (1 call: `CreateOrder → RunForSource`)

## Recent changes

- 2026-08-16 [#9067 Production Definition Wizard - Implementation](../../changes/bcapps/9067.md) (main, BC30, feature, added)

## Across versions

- Present in: BC30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC30 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Production Definition Manager")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
