BREEZE Invoice for Dynamics 365 BC
- Besonderheiten bei BC onPrem
- Verbindungen
- Mandanten
- Mandantenwechsel
- Dimensionen / Benutzerdefinierte Stammdaten
- Stammdatenimport
- Feld-Mapping
- Rechnungsimport
- Rechnungsexport
- Aussteuern von Rechnungen
- Stammdatenimport von Dimensionen
Besonderheiten bei BC onPrem
API-Funktionen müssen in BC aktiviert werden
An einigen Stellen der Übergabe werde API-Funktionen verwendet (im Gegensatz zu oData). Dieses ist onPrem nicht immer aktiviert. Dieses muss bei Fehlermeldungen aktiviert werden. Eine Microsoft Dokumentation befindet sich unter https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/enabling-apis-for-dynamics-nav
Fehlermeldungen nicht bei nicht aktivierten API-Funktionen
Wenn API-Funktionen nicht aktiviert sind, sind in der Regel Fehler mit dem Fehlercode '503' (Service Unavailable) im Log zu sehen. Zudem sind folgende XML-Fehlermeldungen zu sehen:
Verbindungen
Allgemein
Die Verbindungkonfiguration kann über den Ordner "Dynamics 365 BC->Verbindung" geöffnet werden:
Folgende Verbindungen können über die Konfiguration angelegt werden und unterscheiden, welche sich alle in Details unterscheiden:
- Dynamics 365 BC (SaaS)
- Dynamics 365 BC (on Prem)
Dynamics 365 BC (SaaS)
Folgende Daten müssen für eine Verwendung mit Dynamics 365 BC in der Cloud eingetragen werden (für Einrichtung auf Microsoft-Azure-Seite siehe https://docs.squeeze.one/books/breeze-for-dynamics-365-bc-de-de/page/oauth-20-einrichtung-nur-fur-saas ). Die Kommunikation findet ausschließelich über OAuth 2.0 statt.
- Server-URL: Hier muss die vollständige Server-URL zum Dynamics 365 BC Server eingetragen werden
- Tenant ID: Name des verwendeten Tenants
- Client ID: Name des verwendeten Clients
- Client Secret: Client Secret des Systems. Bei der ersten Verwendung wird dieses Secret automatisch verschlüsselt und ist anschließend nicht mehr im Klartext auf der Webseite lesbar.
Über den "Verbindung Prüfen"-Knopf können die eingetragenen Verbindungsdaten geprüft werden.
Dynamics 365 BC (on Prem)
Folgende Daten müssen für eine Verwendung mit Dynamics 365 BC on Prem eingetragen werden:
- Server-URL: Hier muss die vollständige Server-URL zum Dynamics 365 BC Server eingetragen werden
- Wichtig: Diese URL entspricht nicht zwangsläufig der URL, über welche die BC-Oberfläche aufgerufen werden wird. Die URL kann in der Regel aus der oData4-URL extrahiert werden (entspricht Servernamen, Port plus BC-System)
- Benutzer: Name des Benutzers für den Zugriff auf die Webservices
- Passwort: Passwort des Benutzers. Bei der ersten Verwendung wird dieses Passwort automatisch verschlüsselt und ist anschließend nicht mehr im Klartext auf der Webseite lesbar.
Wenn beim Testen der Verbindung nur die Fehlermeldung -1 angezeigt wird, heißt dies in der Regel, dass der Server gar nicht erreichbar ist. In der Regel ist dies der Fall, wenn der oData-Port (oft 7048) nicht freigegeben ist. In diesem Fall muss dieser in der Firewall des BC-System freigegeben werden.
Über den "Verbindung Prüfen"-Knopf können die eingetragenen Verbindungsdaten geprüft werden.
Name der Verbindungsdatei (navConn.json)
Im Standard liegt die navConn.json mit diesem Namen im DEXPRO-Verzeichnis. Über die Mandanteneigenschaft $NAVConnFile kann ein anderer Name für die Datei definiert werden. Dies kann z.B. bei mehreren Documents-Mandanten in einer Installation notwendig sein.
Squeeze
Damit Dokumente (PDFs, EMLs oder ähnliches) heruntergeladen werden können, muss eine Verbindung zu Squeeze eingerichtet werden. Für die Anbindung von Squeeze an Documents existiert bereits die Dokumentation "Invoice Squeeze Anbindung". Aus dieser kann die grundsätzliche Konfiguration entnommen werden.
Wichtig: Die Squeeze-Verbindung muss die gleiche sein, welche in der Einrichtung der BC SQUEEZE App hinterlegt ist. Das System funktioniert derzeit nur, wenn für die gesamte Lösung nur ein Squeeze-Mandant verwendet wird.
Mandanten
Einrichtung der aktiven Mandanten
Über den Ordner "Dynamics 365 BC -> Mandanten" werden die Mandanten definiert, welche im Workflow aktiv verwendet werden und für welche die Stammdaten aus BC gezogen werden sollen. Nur für die hier eingetragenen Mandanten können Rechnungen aus BC geladen werden. Alle anderen Mandanten werden ignoriert.
Über den Knopf "Alle Mandanten aus Dynamics 365 BC laden" können alle BC Mandanten in die Tabelle geladen werden. In der Regel empfiehlt es sich, einmal alle Mandanten einmal zu laden und anschließend diejenigen aus der Tabelle zu entfernen, welche nicht benötigt werden.
Alternativ können über den Knopf "Einzelne Mandanten aus Dynamics 365 BC hinzufügen" auch einzelne Mandanten der Tabelle hinzugefügt werden.
Verwenden von Mandantennamen statt der technischen IDs
Bei älteren Systemen kann es manchmal notwendig sein, dass statt der technischen IDs die Anzeigenamen der Mandanten für die Stammdatenimporte und Übergaben genutzt werden sollen. Von dieser Verwendung wird, wenn möglich, abgeraten, da es theoretisch möglich Sonderzeichen in den Namen zu verwenden. Soll dennoch der technische Name verwendet werden, muss in Documents in den Mandanteneigenschaften die Eigenschaft NavisionUsePrincipalNames auf true gesetzt werden.
Mandantenwechsel
Für den Mandantenwechsel steht bei Rechnungen, welche aus BC kommen der Knopf Mandant ändern zur Verfügung.
Nach Ausführung dieser Funktion wird der Beleg im Workflow ausgesteuert und in BC ein neuer Beleg erstellt. Bereits vorhandene Kontierungen gehen verloren und der Beleg muss erneut validiert werden.
Wird der Mandant über die Auswahlliste geändert, so kann dieser Beleg nicht anschließend nicht mehr in BC upgedatet werden. Deshalb ist es wichtig, dass das Feld Mandant im Zusammenhang mit Breeze for BC immer schreibgeschützt ist!
Dimensionen / Benutzerdefinierte Stammdaten
Allgemein
Über den Ordner "Dynamics 365 BC->Dimensionen" können die im Workflow verwendeten Dimensionen definiert werden:
Bedeutung der Konfiguration
In dieser Tabelle hinzugefügte Dimensionen können im Workflow verwendet werden und haben automatisch ein funktionierendes Popup und ein Autocomplete.
Diese Konfiguration kann nur verwendet werden, wenn aus der Dimension nur die ID und die Beschreibung einer Dimension verwendet werden sollen. Bei komplexeren Stammdaten muss je nach Projekt entschieden werden, ob dafür ein eigener Stammdaten-Import geschrieben bzw. ob dafür eine völlig neue SQL-Tabelle angelegt werden muss.
Falls Stammdaten übernommen werden sollen, welche keine Dimension sind, kann das Skript "DEXPRO__UserExit_NAVImport_Dimensions" erweitert werden. Auch hier gilt die Einschränkung, dass dies nur funktioniert, wenn die benötigten Daten lediglich eine eindeutige ID und eine Beschreibung darstellen.
Die Funktion, welche dafür genutzt werden kann, heißt transferOtherValues und enthält ein Beispiel, an welchem man sich orientieren kann.
Die Stammdaten dieser Dimensionen werden automatisiert in der Tabelle accounting_custom_values angelegt.
Die Dimension, welche z.B. mit der Nummer 1 hinterlegt wird, kann anschließend über die Felder "Custom1" und "Custom1_Desc" im Workflow verwendet werden. Übersetzungen für die Felder müssen ggf. manuell in der Positionsfeld-Konfiguration gepflegt werden. Neue Dimensionen können über den Button "Dimension hinzufügen" verwaltet werden.
Die Dimensionen KOSTENTRÄGER und KOSTENSTELLE müssen nicht in diese Konfiguration hinzugefügt werden, da diese in der Regel auf allen BC Systemen existieren und bereits Teil des Standards sind.
Dimension hinzufügen
Über den Knopf "Dimension hinzufügen" können Dimension zum Workflow hinzufügt werden. Folgende Einstellungen stehen dort zur Verfügung:
- Dimension -Auswahlliste, welche alle in BC verfügbaren Dimensionen anzeigt. Bereits in der Konfigurationstabelle vorhandene Dimensionen werden aus der Auswahlliste ausgeschlossen, genau wie die Dimensionen KOSTENSTELLE und KOSTENTRÄGER, welche bereits so in den Standard integriert sind.
- Feld zum Buchungs-Mapping hinzufügen? - Wird diese Checkbox gesetzt, wird für die Dimension automatisch ein Eintrag zum Buchungsmapping hinzugefügt. Ansonsten muss die Dimension manuell zum Buchungsmapping hinzugefügt werden
- Feld aktivieren und Übersetzungen übernehmen? - Wird diese Checkbox gesetzt, wird die Übersetzung der Dimension automatisch zur Positionsfeldkonfiguration des Workflows hinzugefügt und das Feld wird automatisch zu den Übersetzungen hinzugefügt.
Nachdem eine Übersetzung angepasst wurde, muss zwingend der Export der Übersetzungen und ein Neustart des Tomcat-Servers ausgeführt werden. Ansonsten werden Änderungen der Übersetzungen in den Positionen nicht gezogen.
Dimensionsdaten Laden
Bei vielen Stammdaten in den Dimensionen kann dieser Import sehr lange dauern! Diese Funktion sollte ausschließlich in der Testphase des Systems verwendet werden.
Stammdatenimport
Allgemein
Über den Order "Dynamics 365 BC->Stammdatenimport" können einzelne Stammdatenimporte in BC ausgeführt werden.
Folgende Stammdatenimporte können hier ausgeführt werden:
- Import aller konfigurierten Stammdaten
- Kreditoren
- Bank Informationen
- Navision Konten (Sachkonten, Artikel, W/G Anlage, etc.)
- Kostenstellen
- Kostenträger
- Dimensionen (siehe Dimensionen)
- Mengeneinheiten
- Mehrwertsteuer-Codes
- Zahlungsbedingungen
- Bestellungen
- Wareneingänge
- Alle Mandanten (siehe Mandanten)
Die Stammdatenimporte werden immer für alle in Mandanten angelegten Einträge ausgeführt
Ein Stammdatenimport kann je nach Anzahl der zu importierenden Daten sehr lange dauern, da maximal 1.000 Einträge pro Request aus BC abgeholt werden können.
Maximale Anzahl von Einträgen pro Request
- BC (SaaS): 20.000 Einträge pro Request, welche allerdings ausschließlich bei Installationen mit MySQL verwendet werden können. Installationen bei welchen die Workflow-Stammdaten-Tabellen auf MSSQL laufen, müssen auf 1.000 begrenzt bleiben, da MSSQL Bulk-Inserts auf 1.000 Einträge begrenzt. Dieser Wert muss ggf. in dem Skript DEXPRO__NAVLib angepasst werden. Bei BC onPrem ist dieser Wert automatisch auf 1.000 begrenzt.
- BC (on Premise): 1.000 Einträge pro Request
Hinweise
Die Skripte aus welchem die Stammdatenimporte ausgeführt werden, können immer über den Namen in Klammern gefunden werden und ggf. angepasst werden, da sie alle als User Exit Skripte definiert sind. Sollten andere oder neue Felder in einer Stammdatentabelle benötigt werden, so muss das Import Skript entsprechend erweitert werden. Die Feldnamen eines Webservices in BC können über den Ordner "Webservice Prüfen" herausgefunden werden.
Mehrwertsteuer-Codes setzen sich im Workflow immer aus den Produktbuchungsgruppen und Mwst-Geschäftsbuchungsgruppe und Produktbuchungsgruppe zusammen und werden durch die Zeichen || miteinander verbunden. Ein gültiger Mwst-Satz wäre z.B. EU||MWST.19
Einzelner Stammdatenimport
Über Order "Dynamics 365 BC->Einzelner Stammdatenimport" können einzelne Werte aus Stammdatentabellen in BC gezogen werden.
Folgende Einstellungen können hier vorgenommen werden:
- Mandant - Mandant aus dem der Stammdateneintrag gezogen bzw. aktualisiert werden soll
- Stammdatenwert von - Webservice/Page von welchem der Wert gezogen werden
- Wert - Wert, welcher aktualisiert werden soll
Das Beispiele zieht sich aus dem Mandanten "BREEZE Test 2" den Wert 0001 aus den Sachkonten.
Aus folgenden Webservices können Stammdateneinträge einzeln aktualisiert werden:
- Kreditoren
- Sachkonten
- Artikel
- W/G Anlage
- MwSt-Code
- Zu/-Abschlag (Artikel)
- Kostenstelle
- Kostenträger
- Alle im System vorhandenen Shortcut Dimensionen
Über den Knopf "Wert Anzeigen" kann geprüft werden, ob für die eingetragenen Werte ein Eintrag in BC für den Mandanten gefunden werden kann. Die Rückgabe zeigt exakt die Daten an, wie sie aus BC zurückgegeben werden.
Das Resultat aus dem Beispiel ist dann z.B. folgendes:
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.
Mapping (Kopf-Felder)
Im Register Mapping (Kopf-Felder) befinden sich alle Kopffelder, welche aus Dynamics 365 BC übernommen werden sollen.
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.
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.
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.
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.
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.
Besonderheiten bei generischen Zusatzfeldern
In BC gibt es die Möglichkeit 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:
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.
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.
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 in BC hinzugefügt werden.
Benutzerdefinierte Feldzuordnung (Custom Fields)
Wenn Felder in der Validierung in BC ergänzt werden sollen, müssen diese über eine Extension in BC hinzugefügt werden. Diese Felder können über die benutzerdefinierten 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 generischen Zusatzfelder hinzugefügt werden. Im Beispiel wird für das customField Department auf das Workflow-Feld Abteilung gemappt.
Rechnungsimport
Über den Ordner "Dynamics 365 BC->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 importiert werden oder nur von einem bestimmten.
Nach dem Import wir ebenfalls angezeigt, wie viele Rechnungen importiert worden sind und ob es ggf. zu Fehlern beim Import kam.
Fehlerhaft importierte Rechnungen können auf dem öffentlichen Ordner Fehler beim Import angesehen und neu gestartet werden,
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)
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.
Die Variable value darf nie gelöscht werden. Ansonsten ist die Wahrscheinlichkeit groß, dass es zu Fehlern im Workflow kommt.
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.
userExit_ParsePosValue (User-Exit für das Parsing von Positionswerten beim Import)
Das Prinzip ist dabei identisch zu dem User-Exit der Kopffelder.
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:
- Berechnung von Brutto- und Rabattwerten für den Workflow
- Wenn es sich um eine Rechnung mit Bestellbezug handelt, werden automatisch die Bestell- und Wareneingangsdaten für diese Bestellung in der BREEZE Stammdatentabelle aktualisiert.
- 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
- Kreditor-Daten
- Navision-Typ (Sachkonten, Artikel, W/G Anlage, etc.)
- Kostenstellen
- Kostenträger
- Alle konfigurierten Dimensionen
Rechnungsexport
Allgemein
Im Standard werden die Felder aus dem Feld-Mapping verwendet, um zu definieren, welche Felder aus dem Worfklow in welches Feld in Workflow BC geschrieben werden sollen.
Im Standard ist ein Export der Daten aus dem Workflow nach BC in dem Skript DEXPRO__UserExit_WorkflowLib und hier in der Funktion ue_OnActionEnd_End eingebunden.
Wichtig: Derzeit können nur bereits vorhandene Breeze-Belege in BC upgedatet werden. Eine Anlage von neuen Breeze-Dokumenten wird derzeit noch nicht unterstützt.
Im Standard wird die Übergabe nur ausgeführt, wenn sich die Rechnung im Status "FinalCheck" (Finale Prüfung) befindet und wenn die Felder BreezeID und CoreID gefüllt sind, welche immer gefüllt sind, wenn der Import über den Standard Rechnungsimport ausgeführt worden ist.
User-Exits für den Export
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 sendDataToDynamicsBC.
userExit_ParseHeadValue_Export (User-Exit für das Parsing von Kopfwerten beim Export)
userExit_ParsePosValue_Export (User-Exit für das Parsing von Positionswerten beim Export)
Aussteuern von Rechnungen
Im Standard ist ein Aussteuern der Rechnung aus dem Workflow nach BC in dem Skript DEXPRO__UserExit_WorkflowLib und hier in der Funktion disqualifyInvoiceDynamicsBC eingebunden.
Die Funktion ist im Standard in dem Invoice-User-Exit ue_Disqualify_AfterArchiving eingebunden.
Der User-Exit beim Aussteuern wird nur ausgeführt, wenn BreezeID und CoreID in der Rechnungsmappe gefüllt sind. Beim Aussteuern wird in BC der Status auf den Wert "Cancelled" gesetzt.
Beim Aussteuern wir geprüft, ob ein Beleg in BC noch vorhanden ist. Ist es nicht mehr vorhanden, dann wird das Setzen vom Status in BC übersprungen und Beleg wird direkt ausgesteuert.
Stammdatenimport von Dimensionen
Dimensionen sind in BC eine Besonderheit, welche eine besondere Konfiguration benötigt.
Eine Dimension kann über den Ordner "Dimensionen" geöffnet werden.
Dimensionen können pro Mandant unterschiedlich benannt sein, obwohl sie im Workflow die inhaltlich gleichen Daten beinhalten. Wenn für alle Mandanten die Dimension den gleichen Namen hat, muss diese nur einmal zur Tabelle hinzugefügt werden und der Import wird bereits funktionieren.
Konfiguration bei Dimensionen mit inhaltlich gleichen Werten, aber verschiedenen Dimensions-Codes
Wenn eine Dimension in "Mandant 1" den Namen "ABTEILUNG" hat, in "Mandant 2" allerdings den Namen "ABTEIL", dann kann dies über eine Alternative definiert werden.