# Rechnungsimport

Über den Ordner "**Dynamics 365 BC-&gt;Rechnungsimport**" kann ein manueller Rechnungsimport gestartet werden. Im Standard können diese ebenfalls über das Job-Skript **DEXPRO\_\_UserExit\_NAV\_DynamicsImport** ausgeführt werden.

Auf dem Ordner können entweder die Rechnungen aller [Mandanten](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/mandanten) importiert werden oder nur von einem bestimmten.

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

Nach dem Import wir ebenfalls angezeigt, wie viele Rechnungen importiert worden sind und ob es ggf. zu Fehlern beim Import kam.

<p class="callout info">Fehlerhaft importierte Rechnungen können auf dem öffentlichen Ordner **Fehler beim Import** angesehen und neu gestartet werden,</p>

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

### User-Exits für den Rechnungsimport

Im Standard werden die Felder aus dem Feld-Mapping verwendet, um zu definieren, welche Felder aus BC in welches Feld im Workflow geschrieben werden sollen.

In dem Skript **DEXPRO\_\_UserExit\_CustomDynamicsBCLib** befinden sich verschiede User-Exits mit welchem die Daten beim oder nach dem Import modifiziert werden können. Diese User-Exit-Funktionen befinden sich im Standard in der Funktion **userExit\_dynamicsFileImport**.

#### userExit\_ParseHeadValue (User-Exit für das Parsing von Kopfwerten beim Import)

<div id="bkmrk-%C3%9Cber-dieses-user-exi">Über dieses User-Exit können Kopfwerte so geparst werden, dass diese im Workflow verwendet werden können.</div><div id="bkmrk-im-standard-sind-hie">Im Standard sind hier schon UserExits für bestimmte Felder enthalten.</div>##### Beispiel am Feld InvoiceCreditVoucher

Für Documents-Feld "**InvoiceCreditVoucher**" wird geprüft, ob in dem BC-Feld typ der Wert "**Rechnung**"/"**Invoice**" bzw. "**Gutschrift**"/"**Creditor Memo**" steht und je nachdem, welcher Werte in dem BC Feld steht, wird entweder der technische Wert "**invoice**" oder "**creditvoucer**" in das Documents-Feld geschrieben.

Über die variable **value** wird immer definiert, welcher Wert in das Feld geschrieben wird.

<p class="callout danger">Die Variable **value** darf nie gelöscht werden. Ansonsten ist die Wahrscheinlichkeit groß, dass es zu Fehlern im Workflow kommt.</p>

Diese Art von Parsing ist manchmal notwendig, da es Felder gibt, in welchem BC nur die übersetzen Werte liefert, obwohl eigentlich ein technischer Wert für den Workflow notwendig ist.

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

#### userExit\_ParsePosValue (User-Exit für das Parsing von Positionswerten beim Import)

<div id="bkmrk-%C3%9Cber-dieses-user-exi-0">Über dieses User-Exit können Positionswerte so geparst werden, dass diese im Workflow verwendet werden können.</div><div id="bkmrk-im-standard-sind-hie-0">Im Standard sind hier schon UserExits für bestimmte Felder enthalten.</div>Das Prinzip ist dabei identisch zu dem User-Exit der Kopffelder.

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

#### ue\_afterInvoiceCreate (User-Exit, welches nach dem Erstellen der Documents-Mappe ausgeführt wird)

Dieses User-Exit kann dafür verwendet werden, um z.B. nachträglich Berechnungen in den Positionen auszuführen oder sonstige Prüfungen an der Rechnungsmappe vorzunehmen.

Im Standard werden folgende Funktionen hier schon ausgeführt:

1. Berechnung von Brutto- und Rabattwerten für den Workflow
2. Wenn es sich um eine Rechnung mit Bestellbezug handelt, werden automatisch die Bestell- und Wareneingangsdaten für diese Bestellung in der BREEZE Stammdatentabelle aktualisiert.
3. Wenn Kontierungswerte in den Positionen bzw. Kreditorenwerte noch nicht in der dazugehörigen Stammdatentabelle vorhanden sind, wird automatisiert dieser Eintrag aus BC gezogen und in die Stammdatentabelle hinzugefügt. Für folgende Daten steht diese Funktion zur Verfügung 
    1. Kreditor-Daten
    2. Navision-Typ (Sachkonten, Artikel, W/G Anlage, etc.)
    3. Kostenstellen
    4. Kostenträger
    5. Alle konfigurierten [Dimensionen](https://docs.squeeze.one/books/breeze-invoice-for-dynamics-365-bc/page/dimensionen-benutzerdefinierte-stammdaten)

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