> For the complete documentation index, see [llms.txt](https://docs.solutioo.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solutioo.de/datanorm-item-import/datanorm_en_us/part-lists-sets/building-assembly-boms.md).

# Building Assembly BOMs

## What is created

The app creates an **assembly BOM** on the set item: one BOM component with item and quantity per applied set line. Optionally the set item is switched to the *Assembly* replenishment system so Business Central treats it as an assembled item.

## Steps

{% stepper %}
{% step %}

#### Meet the prerequisite

Set item and components are synchronised as items, see [Understanding DATANORM Sets](/datanorm-item-import/datanorm_en_us/part-lists-sets/datanorm-sets.md).
{% endstep %}

{% step %}

#### Build

Run **Build Part Lists** on the import session.
{% endstep %}

{% step %}

#### Read the result

The app reports how many sets were built, how many components were created, and how many sets were skipped or errored.
{% endstep %}

{% step %}

#### Open the BOM

Open the assembly BOM on the set item and check the components.
{% endstep %}
{% endstepper %}

## Settings

<table><thead><tr><th width="290">Setting</th><th width="150">Default</th><th>Effect</th></tr></thead><tbody><tr><td><strong>Create Assembly BOM from Part Lists</strong></td><td>on</td><td>Without this option the sets stay in staging and no BOM is created.</td></tr><tr><td><strong>Include Optional Set Lines</strong></td><td>off</td><td>Also picks up lines with calling flag 2 and 4.</td></tr><tr><td><strong>Set Item Replenishment System</strong></td><td>Assembly</td><td><em>Assembly</em> sets the system on the set item; <em>Keep Unchanged</em> leaves the item alone.</td></tr></tbody></table>

## Rules applied while building

<table><thead><tr><th width="330">Situation</th><th>Behaviour</th></tr></thead><tbody><tr><td>No item exists for the set.</td><td>The set is skipped with a note to import the set article first.</td></tr><tr><td>No item exists for a component.</td><td>The line is skipped; the remaining lines are still built.</td></tr><tr><td>The set references itself.</td><td>The set is skipped to avoid a circular BOM.</td></tr><tr><td>No line is usable.</td><td>No empty BOM is created; the set is skipped with a note.</td></tr><tr><td>A line's quantity is 0.</td><td>1 is used, because a BOM line needs a positive quantity. You can adjust it afterwards.</td></tr><tr><td>The item already has a BOM.</td><td>It is replaced entirely, because DATANORM always delivers sets in full.</td></tr></tbody></table>

{% hint style="warning" %}
Because an existing BOM is **replaced**, manual additions to a DATANORM BOM are lost on the next import. Keep bundles of your own in a separate BOM on an item of your own.
{% endhint %}

## Verifying the result

<table><thead><tr><th width="290">Check</th><th>Where</th></tr></thead><tbody><tr><td>All expected components present</td><td>Assembly BOM on the set item</td></tr><tr><td>Quantities correct</td><td><strong>Quantity per</strong> column</td></tr><tr><td>Skipped lines and their reason</td><td><strong>DATANORM Part Lists</strong>, status and message</td></tr><tr><td>Replenishment system set</td><td>Item card, <strong>Replenishment System</strong> field</td></tr></tbody></table>

## Rebuilding

**Build Part Lists** can be repeated as often as you like. Add the missing items and run the action again – lines skipped earlier are then picked up. There is no need to re-read the file.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.solutioo.de/datanorm-item-import/datanorm_en_us/part-lists-sets/building-assembly-boms.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
