Skip to main content

Feld-Mapping

Allgemein

Über den Ordner "Dynamics 365 BC->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 oder benutzerdefinierte Felder hier hinzugefügt werden.

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!

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.

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.

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

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

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.

Mapping (Positions-Felder)

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

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

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 "INLAND|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.

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.

image-1666960586786.png

Besonderheiten bei Dimensionen

Dimensionen müssen über die Syntax dimension[DIMENSIONSCODE] hinzugefügt werden. Im Beispiel wird die Dimension "EINKÄUFER" und in das Feld "Custom1" gemappt.

Über die Konfiguration einer Dimensionen wie im Kapitel Dimensionen erläutert, werden se Einträge automatisiert erzeugt. Es ist trotzdem immer ratsam zu prüfen, ob ein Mapping stimmt, falls ein Wert verloren gehen sollte.

image-1666961160688.png

Besonderheiten bei Metadaten

Manchmal kann es vorkommen, dass Werte in die Metadaten von BC geschrieben werden sollen. 

Damit das Mapping funktioniert, muss die Feld-ID des zu setzenden Feldes bekannt sein. In dem Screenshot ist das Feld TestPosfield mit der ID 23 enthalten. Diese wird für das UserExit benötigt.

image-1700044647539.png

Zum Setzen von Metadaten-Informationen beim Senden nach BC stehen die Funktionen setHeadValueForMetadata (für das Setzen der Metadaten im Kopf im UserExit userExit_ParseHeadValue_Export) und setLineValueForMetadata (für das Setzen der Metadaten in den Positionen im UserExit userExit_ParsePosValue_Export) zur Verfügung. 

Die Funktionen müssen die Parsing-Funktion eingefügt werden. Im Beispiel wird in den Positionen das Metadatenobjekt mit der ID 23 um den Wert aus dem Gentable-Zeile "Comment" erweitert.

image-1700044738607.png