# Feld-Mapping

### Allgemein

Über den Ordner "**Dynamics 365 BC-&gt;Feld-Mapping**" kann die Konfiguration des Feld-Mappings geöffnet werden. Dieses enthält alle Felder, welche aus BC ausgelesen und in den Workflow überführt werden sollen.

Die hier definierten Felder werden werden ebenfalls am Ende des Workflows zurück Richtung BC übergeben.

In der Standardauslieferung sind bereits alle im Standard vorhandenen Felder definiert. Ggf. müssen nur noch [Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten) oder benutzerdefinierte Felder hier hinzugefügt werden.

<p class="callout warning">Vorsicht: Wird ein Feld nicht in diesem Mapping hinterlegt, so geht dieser Wert verloren und wird später auch in der erstellen Einkaufsrechnung/Gutschrift nicht mehr zu finden sein!</p>

<p class="callout info">Für eine typische BC Installation werden immer die Felder "**NavisionType**, "**NavisionTypeValue**", "**NavisionTypeDescription**" und "**NavisionTypeButton**" benötigt. Diese müssen immer aktiviert sein!</p>

### Konfiguration

Im Standard ist die Konfiguration mit dem Namen "**Dynamics\_Invoice**" für das Mapping mit Dynamics 365 BC gedacht. Über einen Doppelklick kann die Konfiguration geöffnet werden.

<p class="callout warning">Es kann theoretisch ein beliebiger Name für die Konfiguration genommen werden, allerdings müssen dann ALLE Skripte angepasst werden, in welcher auf diese Konfiguration verwendet wird. Eine Änderung des Namens ist deshalb nicht empfehlenswert.</p>

[![image-1666959574786.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666959574786.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666959574786.png)

### Mapping (Kopf-Felder)

Im Register **Mapping (Kopf-Felder)** befinden sich alle Kopffelder, welche aus Dynamics 365 BC übernommen werden sollen.

[![image-1666959777156.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666959777156.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666959777156.png)

#### Beispiel

Das Feld mit dem Namen **currency** auf Dynamics 365 BC Seite, wird auf Documents-Seite in das Feld "**Currency**" geschrieben. Wird die Checkbox "**Aktiv?**" deaktiviert, wo wird das Feld beim Import und Export ignoriert. Dies kann hilfreich sein, wenn Fehler auftreten und getestet werden soll, ob ein Fehler noch immer auftritt, wenn ein bestimmtes Feld deaktiviert hat.

[![image-1666959982181.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666959982181.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666959982181.png)

#### User-Exits (Kopf-Felder)

Über die User-Exits **userExit\_ParseHeadValue** und **userExit\_ParseHeadValue\_Export** können die Werte beim Import bzw. Export verändert werden. Der Rückgabewert des User-Exits definiert dabei welcher Wert in das Feld in Documents geschrieben wird bzw. welcher Wert zurück zu BC übergeben wird.

Für die Felder **dimensions**, **metadata** und **type** existieren im Standard definierte User Exits, da die Werte in der Form, wo sie von BC geliefert werden nicht dem mit Workflow kompatibel sind und entsprechend geparst werden müssen.

#### Besonderheiten bei Dimensionen

[Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten) müssen über die Syntax **dimension\[DIMENSIONSCODE\]** hinzugefügt werden. Im Beispiel wird die Dimension "**EINKÄUFER**" und in das Feld "**Custom1**" gemappt.

<p class="callout info">Über die Konfiguration einer Dimensionen wie im Kapitel [Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten) erläutert, werden diese Einträge für die Positionen automatisiert erzeugt. Es ist trotzdem immer ratsam zu prüfen, ob ein Mapping stimmt, falls ein Wert verloren gehen sollte.</p>

[![image-1666961160688.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666961160688.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666961160688.png)

### Mapping (Positions-Felder)

Im Register **Mapping (Positions-Felder)** befinden sich alle Positionsfelder, welche aus Dynamics 365 BC übernommen werden sollen.

[![image-1666960445034.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666960445034.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666960445034.png)

#### Beispiel

Das Feld mit dem Namen **description** auf Dynamics 365 BC Seite, wird auf Documents-Seite in das Feld "**NavisionTypeDescription**" geschrieben. Wird die Checkbox "**Aktiv?**" deaktiviert, wo wird das Feld beim Import und Export ignoriert. Dies kann hilfreich sein, wenn Fehler auftreten und getestet werden soll, ob ein Fehler noch immer auftritt, wenn ein bestimmtes Feld deaktiviert hat.

[![image-1666960460845.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666960460845.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666960460845.png)

#### User-Exits (Positions-Felder)

Über die User-Exits **userExit\_ParsePosValue** und **userExit\_ParsePosValue\_Export** können die Werte beim Import bzw. Export verändert werden. Der Rückgabewert des User-Exits definiert dabei welcher Wert in das Feld in Documents geschrieben wird bzw. welcher Wert zurück zu BC übergeben wird.

Für die Felder **dimensions** und **type** existieren im Standard definierte User Exits, da die Werte in der Form, wo sie von BC geliefert werden nicht mit dem Workflow kompatibel sind und entsprechend geparst werden müssen.

#### Besonderheit beim Mehrwertsteuer-Code-Feld

Das Mehrwertsteuer-Code wird im Mapping bei **Feldname Dynamics BC** mit dem Wert **%vatBusPostingGroup%||%vatProdPostingGroup%** angegeben.

Das bedeutet, dass die Werte aus BC mit dem Namen **vatBusPostingGroup** und **vatProdPostingGroup** genommen werden und zu einem kombinierten Wert zusammengefasst werden, wobei dieser Wert mit einem ||-Zeichen getrennt wird.

Aus der **vatBusPostingGroup** "INLAND" und der **vatProdPostingGroup** "MWST.19" wird also im Workflow der Mwst-Code "I**NLAND|MWST.19**". Dieser Wert wird bei der Rückgabe zu BC automatisch wieder in diese Werten aufgeteilt, so dass es hier zu keinem Informationsverlust kommen kann.

<p class="callout info">Es können beliebige Felder mit einem || zusammengefügt werden. Dies funktioniert derzeit allerdings nur mit zwei Werten, die zu einem kombiniert werden sollen. Zudem ist es wichtig, dass das Doppelpipe als Trennzeichen verwendet wird, ansonsten klappt die Zusammenführung ebenfalls nicht.</p>

[![image-1666960586786.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666960586786.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666960586786.png)

#### Besonderheiten bei Dimensionen

[Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten) müssen über die Syntax **dimension\[DIMENSIONSCODE\]** hinzugefügt werden. Im Beispiel wird die Dimension "**EINKÄUFER**" und in das Feld "**Custom1**" gemappt.

<p class="callout info">Über die Konfiguration einer Dimensionen wie im Kapitel [Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten) erläutert, werden diese Einträge für die Positionen automatisiert erzeugt. Es ist trotzdem immer ratsam zu prüfen, ob ein Mapping stimmt, falls ein Wert verloren gehen sollte.</p>

[![image-1666961160688.png](https://docs.squeeze.one/uploads/images/gallery/2022-10/scaled-1680-/image-1666961160688.png)](https://docs.squeeze.one/uploads/images/gallery/2022-10/image-1666961160688.png)

#### Besonderheiten bei generischen Zusatzfeldern

In BC gibt es die Möglichkeit [generische Zusatzfelder](https://docs.squeeze.one/books/breeze-interface-for-dynamics-365-bc-de-de/page/generische-zusatzfelder) zu definieren. Dies sind Felder, welche nur bei der Erstellung einer Einkaufsrechnung in BC berücksichtigt werden. In der BC-Validierung werden diese nicht verwendet und auch beim Import aus BC nicht beachtet. Diese Felder sind vor allem dann sinnvoll, wenn Felder erst im Workflow gefüllt werden und in der erstellten Einkaufsrechnung in BC ebenfalls beachtet werden sollen.

Generische Felder können in BC über die **Breeze Interface Einrichtung** hinzugefügt werden:

[![image-1704364239394.png](https://docs.squeeze.one/uploads/images/gallery/2024-01/scaled-1680-/image-1704364239394.png)](https://docs.squeeze.one/uploads/images/gallery/2024-01/image-1704364239394.png)

In der darauf folgenden Ansicht können Felder für die Einkaufszeile oder Einkaufskopf hinzugefügt werden. Wichtig für das Mapping auf Workflow-Seite ist hier der Wert, welcher unter **JSON Feld Name** hinterlegt wird. Im folgenden Beispiel **description2** für das Feld **Beschreibung 2** in der Einkaufszeile.

[![image-1704364289919.png](https://docs.squeeze.one/uploads/images/gallery/2024-01/scaled-1680-/image-1704364289919.png)](https://docs.squeeze.one/uploads/images/gallery/2024-01/image-1704364289919.png)

Im Feld-Mapping im Workflow kann über die Syntax **additionalField\[MEINFELDNAME\]** ein Mapping für die generischen Zusatzfelder hinzugefügt werden. Im Beispiel wird für das additionalField **description2** der Wert aus dem Workflow-Feld **Kommentar** verwendet.

[![image-1704364476403.png](https://docs.squeeze.one/uploads/images/gallery/2024-01/scaled-1680-/image-1704364476403.png)](https://docs.squeeze.one/uploads/images/gallery/2024-01/image-1704364476403.png)

<p class="callout info">Generische Zusatzfelder werden nur bei dem Export nach BC beachtet. Beim Import aus BC stehen diese Daten nicht zur Verfügung. Damit Felder sowohl beim Import, als auch beim Export beachtet werden können, müssen diese über eine [Extension](https://docs.squeeze.one/books/squeeze-for-dynamics-365-bc-de-de/chapter/extension-entwicklung) in BC hinzugefügt werden.</p>

#### Benutzerdefinierte Feldzuordnung (Custom Fields)

Wenn Felder in der Validierung in BC ergänzt werden sollen, müssen diese über eine [Extension](https://docs.squeeze.one/books/squeeze-for-dynamics-365-bc-de-de/chapter/extension-entwicklung) in BC hinzugefügt werden. Diese Felder können über die [benutzerdefinierten Feldzuordnung](https://docs.squeeze.one/books/squeeze-for-dynamics-365-bc-de-de/page/benutzerdefinierte-feldzuordnung) eingerichtet werden. Hier wird hinterlegt, welche Felder bei der Übertragung von Squeeze in welches benutzerdefinierte Feld in der Validierung übertragen werden soll. Alternativ/Zusätzlich können benutzerdefinierte Felder aus der Validierung an den Workflow übertragen werden.

Im Feld-Mapping im Workflow kann über die Syntax **customField\[MEINFELDNAME\]** ein Mapping für die benutzerdefinierten Zusatzfelder hinzugefügt werden. Im Beispiel wird für das customField **Department** auf das Workflow-Feld **Abteilung** gemappt.

[![image-1738582511701.png](https://docs.squeeze.one/uploads/images/gallery/2025-02/scaled-1680-/image-1738582511701.png)](https://docs.squeeze.one/uploads/images/gallery/2025-02/image-1738582511701.png)