---
id: object/codeunit/99001022
type: object
title: Codeunit 99001022 "Prod. Def. Source Initializer"
summary: Codeunit 99001022 "Prod. Def. Source Initializer" in Base Application (Microsoft.Manufacturing.Wizard). 1 public procedures, 2 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: 387f03464d2bb474ae9ff36b4382b67917e568d30d12ebad2e2a05657641eb44
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/f18567dc08e2bd162bf192e1da4d714b57eb099f/src/Layers/W1/BaseApp/Manufacturing/Wizard/ProdDefSourceInitializer.Codeunit.al
    title: src/Layers/W1/BaseApp/Manufacturing/Wizard/ProdDefSourceInitializer.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: 99001022
name: Prod. Def. Source Initializer
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: 4
  events: 2
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Codeunit 99001022 "Prod. Def. Source Initializer"

> Codeunit 99001022 "Prod. Def. Source Initializer" in Base Application (Microsoft.Manufacturing.Wizard). 1 public procedures, 2 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/ProdDefSourceInitializer.Codeunit.al) · facts from BC30

## Events published

- `OnBeforeInitializeFromSource(var TempData: Codeunit "Prod. Definition Temp Data"; Source: Variant; var IsHandled: Boolean)` (integration): Raised before built-in dispatch. Set IsHandled to true to skip default Item/SalesLine handling and to prevent OnInitializeFromSource from firing as the fallback.
- `OnInitializeFromSource(var TempData: Codeunit "Prod. Definition Temp Data"; Source: Variant; var IsHandled: Boolean)` (integration): Raised when the source type is not handled natively (i.e. not Item, Stockkeeping Unit, or Sales Line). Subscribe here to support additional source types such as Purchase Line. Set IsHandled to true once the initialization is complete.

## Procedures

- `InitializeFromSource(var TempData: Codeunit "Prod. Definition Temp Data"; Source: Variant)` (internal): Dispatches initialization of the temporary production definition data based on the type of the source record. Built-in handling is provided for Item, Stockkeeping Unit, and Sales Line. For other source types (such as Purchase Line in the Subcontracting app), subscribe to OnInitializeFromSource and s...

Plus 1 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) (3 calls: `InitializeFromSource → InitializeFromItem`, `InitializeFromSource → InitializeFromSalesLine`, `InitializeFromSource → InitializeFromSKU`)
- [Codeunit 701 "Data Type Management"](../codeunit/701.md) (1 call: `InitializeFromSource → GetRecordRef`)

## 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: "Prod. Def. Source Initializer")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
