Über diese Links gelangen Sie zu den einzelnen Abschnitten auf dieser Seite:

Allgemein

Der easy invoice-Connector gibt nach einer erfolgreichen Belegverarbeitung im Response-Objekt die Nummer des Belegs in Microsoft Dynamics 365 Business Central zurück. 

Konnte der Export nicht erfolgreich durchgeführt werden, ist hinsichtlich der betroffenen Komponente geeignet zu reagieren.

Fehlermeldende Komponente

Mögliche Fehler

HTTP-Returncodes

Behandlung der Fehlermeldung

XMLHTTPRequest / Netzwerk
(https://otris.software/documents/api/portalscript/XMLHTTPRequest.html#open)

URL kann nicht erreicht werden werden (Netzwerk nicht verfügbar, Host nicht verfügbar etc.)

-1

Vorschlag bei Verwendung eines DataTools: Der beim Ausführen des DataTools erzeugte Fehler ist im eigenen Code abzufangen. Siehe APIDOC de.easy.ehrm.classes.DataTools#execute

Microsoft Dynamics 365 Business Central

  • Anmeldung fehlgeschlagen
  • Tenant nicht verfügbar
  • Web Service / Seite nicht gefunden

Liste unter https://docs.microsoft.com/en-us/dynamics-nav/api-reference/v2.0/dynamics_error_codes

400 - 599

Vorschlag bei Verwendung eines DataTools: Der beim Ausführen des DataTools erzeugte Fehler ist im eigenen Code abzufangen. Siehe APIDOC de.easy.ehrm.classes.DataTools#execute

EASY for Dynamics 365 Invoice-Connector

  • Pflichtfeld nicht vorhanden
  • Workflow-ID bereits vorhanden

200 - 299

Das Response-Objekt enthält eine Eigenschaft Message, die den Fehlertext enthält


Um ein erfolgreichen Export erreichen zu können, sind mindestens folgende Felder mit Werten zu exportieren:

Vorgang

EASY Invoice-Dokumenttyp

Kopfdaten

Positionsdaten

Einkaufsrechnung mit Bezug zu einer Einkaufsbestellung (und gebuchten Wareneingängen)

bzw.

Einkaufsgutschrift mit Bezug zu einer Einkaufsreklamation (und gebuchten Warenrücksendungen)

RMB, GMB

  • Buy-from Vendor No.
  • Vendor Invoice No.
  • Vendor Cr. Memo No.

  • ECM Workflow Doc. Type
  • ECM Document ID (Barcode)
  • ECM Workflow Document ID
  • ECM Order- Return Order No.
  • ECM Amount Workflow
  • ECM Amount incl. VAT Workflow
  • Type
  • No.
  • Quantity
  • Direct Unit Cost
  • ECM Receipt- Return Shpd. No.
  • ECM ReceiptReturnShpdLineNo.
  • ECM Order- Return Order No.
  • ECM Order- ReturnOrder LineNo. 

Einkaufsrechnung ohne Bezug zu einer Einkaufsbestellung

bzw.

Einkaufsgutschrift ohne Bezug zu einer Einkaufsreklamation

ROB, GOB

  • Buy-from Vendor No.
  • Vendor Invoice No.
  • Vendor Cr. Memo No.
  • ECM Workflow Doc. Type
  • ECM Document ID (Barcode)
  • ECM Workflow Document ID
  • ECM Amount Workflow
  • ECM Amount incl. VAT Workflow
  • Type
  • No.
  • Quantity
  • Direct Unit Cost

Export-DataTool

Das DataTool für den Export (Microsoft Business Central Connector - Export) ist bereits Bestandteil des Standardpakets, in dem sich auch die Import- und UserExit-DataTools befinden. Es besteht aus drei Komponenten:

  • dem DataTool Microsoft Business Central Connector - Export selbst,
  • dem Transformation-Callbackscript cb.ehrmDataTools.transform.invoice2businesscentral und
  • dem Response-Handler-Script cb.ehrmDataTools.handler.invoice2businesscentral

Das DataTool ist so konfiguriert, dass es für die Ausführung eine einzelne Mappe vom Mappentyp epiFiles erwartet. Es werden die in der Selektion Einfach konfigurierten Felder aus der Rechnungsdaten-Mappe ausgelesen, im Transformation-Callbackscript transformiert (z.B. Anpassung des Formats von Datumsangaben) und an den Webdienst des EASY Invoice-Connectors übergeben. Dazu werden die am DataTool gesetzten bzw. zur Laufzeit noch ergänzten Umgebungsvariablen in die URL eingesetzt. Das Response-Handler-Skript verarbeitet die Antwort von Microsoft Dynamics 365 Business Central bzw. vom EASY Invoice-Connector, indem es entweder die Belegnummer (Feld ERPProcessNumber) oder die Fehlermeldung (Feld ExportServerInfo) in die Rechnungsdaten-Mappe zurückschreibt.

Anpassungen am DataTool

Das Anpassen der Einstellungen wurde ab Version 1.1.0 vereinfacht. Siehe Verbindungseinstellungen und Mappingeinstellungen


Für eine erfolgreiche Inbetriebnahme sind mindestens die folgenden Anpassungen am Export-DataTool erforderlich:

  • Feld Benutzer unter Mappendeckel, Bereich Zieldienst
  • Feld Passwort unter Mappendeckel, Bereich Zieldienst
  • Feld Umgebungsvariablen auf dem Register Erweitert, Abschnitt Scripting
    • apiversion: Geben Sie die zu verwendende API-Version an (Stand 03/2021: v2.0)
    • tenant: Geben Sie die GUID Ihres Business Central Tenant an
    • system: Geben Sie den Namen des zu verwendenden Systems an

Anpassungen am Transformation-Callbackscript

Es sind bereits alle mindestens erforderlichen und ein Teil der optionalen Felder integriert, sodass das Script ohne größere Anpassungen lauffähig sein sollte. Sind dennoch Anpassungen und Erweiterungen nötig, finden Sie Beispiele auf Projektspezifische Anpassungen an.

Anpassungen am Response-Handler

Sie sollten das Skript unverändert einsetzen können. Nur in Ausnahmefällen passen Sie es an Ihre Bedürfnisse an.

Hinweise zur Integration

  • Organisieren Sie den Export nach der abschließenden Freigabe der Rechnung/Gutschrift. 

    • Eine Variante ist es, den Export über öffentliche Ordner zu organisieren, wie in der Beispielintegration vorgeschlagen. 
    • Es kommt aber auch ein Skriptaufruf am Ende des projektspezifischen Teils Ihres Freigabeworkflows infrage. Mögliche Serverantworten mit Fehlern sind dann im Workflow zu behandeln.

      Beispielcode für Scriptaufruf
      //#import cached [de.easy.ehrm.library.Standalone]
      try {
      const cFile = context.file;
      if (!cFile) throw new Error("no file in context.");
      const uniqueId = "de.easy.bcc.export.CHANGE_ME"; // Ändern Sie bitte die uniqueId auf die von Ihnen am Export-Data Tool eingetragene UniqueID, Register "Erweitert"
      const dt = new de.easy.ehrm.classes.DataToolsFactory.createByUniqueId(uniqueId, cFile),
      env = dt.getEnvironmentVariables();
      env.company = cFile.Recipient;
      dt.getDestinationService().addContext(env);
      dt.execute();
      } catch (ex) {
      cFile.ExportServerInfo = ex;
      cFile.sync();
      util.log("execution failed. " + ex);
      }
    • Das Export-DataTool kann auch als Aktion am epiFiles-Mappentypen konfiguriert werden (Export-DataTool, Mappendeckel, Kontrollkästchen Aktion konfigurieren im Abschnitt Quelle). Ist das die bevorzugte Option, dann sollten Sie mit einem AllowedActions-Skript sicherstellen, dass die Aktion nur unter bestimmten Bedingungen angezeigt wird.

  • Zur Vermeidung von Diskrepanzen zwischen den in "Microsoft Dynamics 365 Business Central" gebuchten Einkaufsrechnungen und den archivierten EASY Invoice-Eingangsrechnungen sollte vor dem Archivieren der Rechnungsdaten-Mappe die "Microsoft Dynamics 365 Business Central"-Tabelle der gebuchten Einkaufsrechnungen mit der Mappen-ID des aktuellen Workflows abgefragt und die Documents-Mappe aktualisiert werden.

Beispielintegration

Die folgenden Komponenten und Abläufe stellen lediglich einen Vorschlag dar, wie der Export von Eingangsrechnungsdaten an den easy invoice-Connector in einen bestehenden EASY Invoice-Workflow integriert werden kann.

Funktionsweise

Der Export von EASY Invoice-Rechnungen und -Gutschriften wird über drei öffentliche Ordner gesteuert: 

  • Übergabe ERP
  • An ERP exportiert
  • ERP-Übergabe fehlerhaft

Im Ordner Übergabe ERP werden alle zum Export bereitstehenden Eingangsrechnungen und -gutschriften aufgeführt. Hierzu werden zwei Filter genutzt (ExportServerInfo <leer> und ERPProcessNumber <leer>). Die Filter sind um mindestens ein drittes Kriterium entsprechend des Prozesses in Ihrer Umgebung zu erweitern, damit nicht unbeabsichtigt noch nicht freigegebene Vorgänge exportiert werden.

An dem Ordner Übergabe ERP ist die Aktion Export verfügbar. Es erlaubt die Auswahl eines Export-DataTools und führt für alle markierten Vorgänge das Export-DataTool einzeln aus. Als Export-DataTools werden alle DataTools aufgelistet, deren Feldwert Unique ID auf dem Register Erweitert mit de.easy.bcc.export beginnt. Ein geeignetes Export-DataTool ist mit der Installation des Installationsmediums bereits vorhanden.

Der Export eines Vorgangs kann erfolgreich oder mit Fehler abgebrochen worden sein:

  • Erfolgreiche Exporte werden im Ordner An ERP exportiert dargestellt und enthalten im Mappenfeld ERPProcessNumber die von Dynamics 365 Business Central vergebene Belegnummer.
  • Fehlerhafte Exporte werden im Ordner ERP-Übergabe fehlerhaft aufgelistet. Sie enthalten im Mappenfeld ExportServerInfo die Fehlermeldung; das Feld ERPProcessNumber ist leer.

Die Auswertung und Behandlung des Export-Ergebnisses unterscheidet sich je Fall und antwortender Komponente. Folgende Fälle werden berücksichtigt:

HTTP-Responsecodes

Bedeutung

Beispiel-Response

Behandlung

200-299

Erfolg

HTTP/1.1 200 OK

{
"@odata.context": "https://api.businesscentral.dynamics.com/v2.0/d4371590-0b07-46a0-a999-f93d33a63f79/DEV-Sandbox/ODataV4/$metadata#Edm.String",
"value": "{\"No.\":\"107307\",\"Status\":\"Open\",\"URL\":\"https://businesscentral.dynamics.com/d4371590-0b07-46a0-a999-f93d33a63f79/DEV-Sandbox/?company=CRONUS%20DE&page=51\",\"Message\":\"\"}"
}

Der Response-Handler des Export-DataTools (cb.ehrmDataTools.handler.invoice2businesscentral) schreibt die Nummer des Belegs (No.) in das Feld ERPProcessNumber derjenigen Eingangsrechnung-Mappe, mit der das Export-DataTool aufgerufen wurde.

200-299

Fehler

HTTP/1.1 200 OK

{
"@odata.context": "https://api.businesscentral.dynamics.com/v2.0/d4371590-0b07-46a0-a999-f93d33a63f79/DEV-Sandbox/ODataV4/$metadata#Edm.String",
"value": "{\"No.\":\"107308\",\"Status\":\"Open\",\"URL\":\"https://businesscentral.dynamics.com/d4371590-0b07-46a0-a999-f93d33a63f79/DEV-Sandbox/?company=CRONUS%20DE&page=51&filter='ECM%20Workflow%20Document%20ID'%20IS%20'777777_fi20210081187735'\",\"Message\":\"The field Buy-from Vendor No. of table Purchase Header contains a value (50001) that cannot be found in the related table (Vendor).\"}"
}

Der Response-Handler des Export-DataTools (cb.ehrmDataTools.handler.invoice2businesscentral) schreibt die Fehlermeldung aus dem Feld "Message" in das Mappenfeld ExportServerInfo der Eingangsrechnung.

400-499

Client Fehler

HTTP/1.1 404 Not Found

{
"error": {
"code": "BadRequest_NotFound",
"message": "Resource not found for the segment 'ECM_InvoiceJSONWebService_GetWorkflowDocument'. CorrelationId: b97ac86c-c599-4c32-8a5f-d711f7b61f57."
}
}

Das das Export-DataTool ausführende PortalScript (de.easy.bcc.example.exportPostingData) schreibt die Fehlermeldung in das Mappenfeld ExportServerInfo

500-599

Server Fehler

HTTP/1.1 503

{
"error": {
"code": "Application_ServiceUnavailable",
"message": "The tenant 'msweua1602t24422181' is not accessible. CorrelationId: 9fc39271-2134-4674-8a80-209005a949ac."
}
}

Das das Export-DataTool ausführende PortalScript (de.easy.bcc.example.exportPostingData) schreibt die Fehlermeldung in das Mappenfeld ExportServerInfo

Installation und Konfiguration

Die nötigen Importe finden Sie im Ordner example des Installationsmediums. Gehen Sie wie folgt vor:

  1. Importieren Sie mithilfe des Documents5-Managers die xml-Dateien für Öffentliche Ordner, die Sie im Ordner /example/folder finden
  2. Definieren Sie an den soeben importierten Ordnern als Oberordner einen bestehenden Rechnungskreis-Ordner (Ordner für Rechnungskreise befinden sich unterhalb des Ordners epiData)
  3. Importieren Sie die xml-Datei für die PortalSkripte
  4. Beachten Sie die Minimal-Konfiguration des Export-DataTools (Kap. Export-DataTool)