> 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/operations-and-troubleshooting/common-problems.md).

# Common Problems

## During import

<details>

<summary><strong>The file is not read, or the session ends with an error</strong></summary>

**Cause** — The file is not a DATANORM file, is compressed, or the header record is missing.

**Remedy** — Check the first line of the file: it must start with `V`. Unpack compressed deliveries first. A covering letter or an Excel list cannot be imported.

</details>

<details>

<summary><strong>Umlauts appear as odd characters</strong></summary>

**Cause** — The file was opened in a text editor and saved as UTF-8 before importing. DATANORM files are DOS-encoded.

**Remedy** — Use the supplier's original file, unmodified.

</details>

<details>

<summary><strong>You expected twice as many article rows but staging has half</strong></summary>

**Cause** — Not an error. In DATANORM 4 the A and B record of an article are merged into one record.

**Remedy** — The **Merged Source Records** field shows how many lines the record was built from. See [Differences Between DATANORM 4 and 5](/datanorm-item-import/datanorm_en_us/importing-datanorm-files/differences.md).

</details>

<details>

<summary><strong>Very many records are flagged as duplicates</strong></summary>

**Cause** — The file has already been imported, or an earlier session is sitting unsynchronised in staging and is being checked too.

**Remedy** — Check the import sessions for an earlier run of the same file. Turn off **Check Pending Staging for Duplicates** if you deliberately keep older sessions open. See [Duplicates and Validation](/datanorm-item-import/datanorm_en_us/importing-datanorm-files/duplicates-and-validation.md).

</details>

<details>

<summary><strong>Articles from different suppliers overwrite each other</strong></summary>

**Cause** — **Match Duplicates per Vendor** is off and both suppliers use the same article numbers.

**Remedy** — Enable the option and pick the correct vendor when importing.

</details>

## During synchronisation

<details>

<summary><strong>The item has no base unit of measure</strong></summary>

**Cause** — There is no mapping for the unit code from the file.

**Remedy** — Run **DATANORM Setup → Initialize Units** and add missing codes in the [unit mapping](/datanorm-item-import/datanorm_en_us/master-data-and-mappings/unit-mapping.md). Then synchronise the record again.

</details>

<details>

<summary><strong>Synchronisation reports a missing posting group</strong></summary>

**Cause** — One of the item defaults in the setup is empty or points at a value that does not exist.

**Remedy** — Set the general product posting group, VAT product posting group and inventory posting group in [Base Configuration](/datanorm-item-import/datanorm_en_us/getting-started/base-configuration.md) and synchronise again.

</details>

<details>

<summary><strong>No item is created at all</strong></summary>

**Cause** — The records are still on **Review** and not approved, or the number series is exhausted.

**Remedy** — Approve staging; check the number series under **No. Series**.

</details>

## With prices

<details>

<summary><strong>No price lines were written</strong></summary>

**Cause** — The articles are not synchronised yet, or the selected price source holds no value.

**Remedy** — Synchronise the articles first. Set **Purchase Price Source** to *Net Price then List Price*. See [Purchase Price Lists](/datanorm-item-import/datanorm_en_us/prices/purchase-price-lists.md).

</details>

<details>

<summary><strong>Writing the price list stops with a message about the vendor</strong></summary>

**Cause** — No vendor is assigned to the import.

**Remedy** — Run **Assign Vendor** on the import session.

</details>

<details>

<summary><strong>Prices ended up in the wrong vendor's price list</strong></summary>

**Cause** — The import ran with the default vendor, for example via SFTP.

**Remedy** — Run **Assign Vendor** and then repeat **Write Purchase Price List**. Review the lines under the wrong vendor in that vendor's price list afterwards.

</details>

<details>

<summary><strong>Discounts have no effect on the price</strong></summary>

**Cause** — **Apply Discount Groups to Purchase Price** is off, or the `.RAB` file was imported after the price list was written, or the supplier delivers 0%.

**Remedy** — Enable the option, import `.RAB` first, write the price list again. See [Discount Groups](/datanorm-item-import/datanorm_en_us/master-data-and-mappings/discount-groups.md).

</details>

## With part lists

<details>

<summary><strong>No BOM is created</strong></summary>

**Cause** — **Process Part Lists** or **Create Assembly BOM from Part Lists** is off, or the file contains no J records.

**Remedy** — Check both options and look at **DATANORM Part Lists**: if the list is empty, the file contains no sets.

</details>

<details>

<summary><strong>Lines are marked as "Skipped"</strong></summary>

**Cause** — No item exists for the component, or it is an optional line while **Include Optional Set Lines** is off.

**Remedy** — Synchronise the missing items and run **Build Part Lists** again. See [Building Assembly BOMs](/datanorm-item-import/datanorm_en_us/part-lists-sets/building-assembly-boms.md).

</details>

<details>

<summary><strong>Manual additions to a BOM have disappeared</strong></summary>

**Cause** — A repeat import replaced the BOM. DATANORM always delivers sets in full.

**Remedy** — Keep bundles of your own on a separate item, not on the DATANORM set item.

</details>

## With SFTP import

<details>

<summary><strong>No files are collected</strong></summary>

**Cause** — **Enabled** is off, the job queue is not running, the name filter does not match, or the Azure Function is unreachable.

**Remedy** — Read the **Last Polling Status** field in the SFTP setup, run the connection test, and open **DATANORM SFTP Files** to see what is in the inbound folder. See [Automated SFTP Import](/datanorm-item-import/datanorm_en_us/importing-datanorm-files/sftp-import.md).

</details>

<details>

<summary><strong>Unrelated files create failed sessions</strong></summary>

**Cause** — The file name filter is too broad.

**Remedy** — Narrow the filter, for example to `DATANORM.*`.

</details>

## With the licence

<details>

<summary><strong>Import and synchronisation are aborted</strong></summary>

**Cause** — The trial period of a directly supplied sandbox build has expired. Installations from AppSource are unaffected; there the entitlement follows the subscription.

**Remedy** — Check the status in the setup and either extend the trial through [Support Contacts](/datanorm-item-import/datanorm_en_us/operations-and-troubleshooting/support.md) or move to the AppSource version. Data already imported stays intact.

</details>


---

# 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/operations-and-troubleshooting/common-problems.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.
