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

Weitere Felder in den Prozess aufnehmen

Beispiel: Zahlungsbedingung im Workflow ändern können

Anforderung

Der Lieferant hat uns auf der Rechnung eine Zahlungsbedingung definiert, die dem bekannten Standard für diesen Lieferanten abweicht. Anwender sollen die Zahlungsbedingung der aktuellen Rechnung im Workflow ändern können und diese Änderung soll bei Anlage der Rechnung in Microsoft Dynamics 365 Business Central berücksichtigt werden.

Hintergrund

Üblicherweise braucht der Zahlungsbedingungsschlüssel im Workflow nicht verändert und von EASY Invoice an Dynamics 365 Business Central übergeben zu werden. Die bei der Rechnungsanlage durch den Business Central-Connector zur Anwendung kommenden Zahlungsbedingungen werden im Fall einer Einkaufsrechnung ohne Einkaufsbestellung aus den am Kreditor hinterlegten Zahlungsbedingungen automatisch ermittelt bzw. aus der Einkaufsbestellung übernommen.

Trotz der genannten Automatismen ist es möglich, dem Business Central-Connector einen abweichenden Zahlungsbedingungsschlüssel für die Anlage einer Rechnung mitzugeben.

Lösung

  • Es ist herauszufinden, über welche Seite/Page die Liste der vorhandenen Zahlungsbedingungsschlüssel abgefragt werden können. In diesem Fall ist es die Seite/Page 4.
  • Legen Sie einen neuen Web Service für Page 4 an.
  • Fügen Sie dem EASY Invoice-Mappentypen epiFiles ein Feld für den Zahlungsbedingungsschlüssel hinzu, Datentyp String.
  • Entscheiden Sie, ob Sie bei der Auswahl des Zahlungsbedingungsschlüssels im Workflow auf Daten aus der Schattendatenbank oder direkt auf den Web-Service zugreifen wollen. Vorteil der Variante Schattendatenbank ist die geringe Latenz und damit ein sich schnell öffnender Dialog für die Anwender sowie Einsparungen beim Datenvolumen, das sonst bei der Kommunikation mit dem Cloud-Service zu Buche schlägt. Nachteil sind die möglicherweise veralteten Daten, da der Datenabgleich üblicherweise nur einmal täglich erfolgt und der etwas höhere, einmalige Aufwand bei der Einrichtung. Die Vorteile bei der Variante Direktabfrage liegen in der Aktualität der Daten und der einfachere Einrichtung. Nachteile sind die höhere Latenz und damit längere Antwortzeiten bei der Anzeige des Dialogs für die Anwender und das Datenvolumen, das mit der Kommunikation mit der Cloud verbraucht wird.

Variante Schattendatenbank

  • Erstellen Sie eine neue Tabelle in der Schattendatenbank.
  • Legen Sie ein neues DataTool an, das den Abruf der Zahlungsbedingungsschlüssel vom Web-Service und deren Speicherung in der gerade erstellten DB-Tabelle durchführt. Achten Sie im Feld Eindeutige ID auf die Namenskonvention, damit das DataTool regelmäßig für alle Rechnungskreise/Business Central Companies durchführt.
  • Legen Sie ein neues DataTool an, das die Zahlungsbedingungsschlüssel aus der DB-Tabelle liest und als UserExit am Feld für Zahlungsbedingungsschlüssel am Mappentyp epiFiles bereitstellt.

Variante Direktabfrage

  • Legen Sie ein neues DataTool an, das die Zahlungsbedingungsschlüssel vom Microsoft Dynamics 365 Business Central Web Service abfragt und als UserExit am Mappen-Feld für Zahlungsbedingungsschlüssel am Mappentypen epiFiles bereitstellt.
  • Passen Sie das Mapping im Transformations-Callbackscript cb.ehrmDataTools.transform.invoice2businesscentral im Bereich header so an, dass der Inhalt des neuen Mappentyp-Feldes für Zahlungsbedingungsschlüssel in das Dynamics 365 Business Central-Feld Payment Terms Code (Datenfeld für Zahlungsbedingungsschlüssel) übergeben wird.

Beispiel: Kostenobjekte in Bestellpositionen aufnehmen

Anforderung

In einer neuen Einkaufsbestellung ordnen die MitarbeiterInnen vom Einkauf den einzelnen Positionen weitere Kostenobjekte zu, beispielsweise Kostenstellen. Diese Zuordnung soll sich im Workflow widerspiegeln, sodass darüber der Freigabeweg von Eingangsrechnungen (Kostenstellenverantwortliche sollen freigeben) gesteuert werden kann.

Hintergrund

Im Customizing von Dynamics 365 Business Central ist festgelegt, dass in dem technischen Feld Shortcut Dimension 1 Code, das in den Einkaufsbestellzeilen eingeblendet ist, die zu belastende Kostenstelle eingetragen werden kann. Das Feld Shortcut_Dimension_1_Code ist in der Feldliste des Webdienstes für Bestellpositionen, ECM_PurchaseOrderSubform, zwar grundsätzlich enthalten, wird aber vom Import DataTool Microsoft Business Central-Connector - Import Purchase Order Item nicht berücksichtigt.

Lösung

  • Erzeugen Sie im Import DataTool Microsoft Business Central Connector - Import Purchase Order Item auf dem Register Mapping eine neue Zeile: 
    • Quelle: "Shortcut_Dimension_1_Code"
    • Ziel: suchen Sie sich eine freie Spalte aus den custom-Spalten der Schattendatenbank-Tabelle orderitem aus, die noch unbenutzt ist.
    • Transformation: keine
    • Parameter: keine
  • Anpassen des Mappings epiMappingConfig.arOrderItemUpdateDataMapping im PortalScript epiMappingConfig, damit der Wert aus der gewählten custom-Spalte in die Positionen des Gentable der jeweiligen Rechnung übernommen wird.

  • (Optional) Erweiterung des Mappings in den relevanten UserExit-DataTools

  • Erweiterung des Mappings für den Export an Dynamics 365 Business Central
    • Zur Übertragung neuer Felder ist das Transformation-Callbackscript cb.ehrmDataTools.transform.invoice2businesscentral anzupassen - das entfällt in diesem speziellen Fall, da das Gentable-Feld ItemCostCenter bereits im Standard an das Feld Shortcut Dimension 1 Code einer Rechnungsposition übergeben wird.
    • Ist ein Feld auf Ebene des Rechnungskopfs zu übertragen, passen Sie bitte das erste Mapping-Objekt an.
    • Wollen Sie ein Feld auf Positionsebene übertragen, dann ist das zweite Mapping-Objekt anzupassen.
    • Für das Mapping inklusive einer ggf. nötigen Transformation ist ein Handlebars-Ausdruck anzugeben (siehe https://handlebarsjs.com/guide/). Beispiel: "Currency Code": "{{Currency}}", wobei "Currency Code" für den Feldnamen in Microsoft Dynamics 365 Business Central steht und "{{Currency}}" dem Feld "Currency" des Mappentyps "epiFiles" entspricht.
    • Handlebars-Ausdrücke erlauben die Transformation von Werten mittels sogenannter "Helper". Neben den in Handlebars.js eingebauten Standardhelpern (https://handlebarsjs.com/guide/builtin-helpers.html), stellt EASY weitere Helper zur Verfügung. 

      Beispiel: {{formatDate InvoiceDate 'dd.mm.yyyy' 'yyyy-mm-dd'}} gibt ein im Mappenfeld "InvoiceDate" als Zeichenkette vorliegendes Datum in ein Ziel-Datumsformat umformatiert zurück.

Synchronisation in Schattendatenbank ändern

Stammdaten

Der bereits konfigurierte Standard sieht vor, dass Stammdaten je Rechnungskreis einmal täglich vollständig in die Schattendatenbank synchronisiert werden.

Unter Stammdaten verstehen wir:

  • Lieferanten
  • Sachkonten, Artikel, Ressourcen, Anlagen
  • Mengeneinheiten
  • Buchungsmatrix (Geschäftsbuchungsgruppe + Produktbuchungsgruppe)
  • MwSt. Buchungsmatrix (MwSt. Geschäftsbuchungsgruppe + MwSt. Produktbuchungsgruppe)
  • Kostenstellen

  • Kostenträger

Sie können:

  • Rechnungskreise komplett aus der Synchronisation herausnehmen (betrifft Stamm- und Bewegungsdaten des Rechnungskreises)
  • die Häufigkeit von täglich auf stündlich ändern (betrifft alle Rechnungskreise)
  • die heruntergeladene Datenmenge beeinflussen (betrifft alle Rechnungskreise)

EASY Invoice Rechnungskreis aus der Synchronisation ausschließen

Pflegen Sie den Rechnungskreis am Documents Mandanten in der Eigenschaft bccRecipientBlacklist ein (Beipspiel: ["Condex AG"]). Er wird fortan nicht mehr automatisch synchronisiert.

Häufigkeit

Durch Änderung der Unique ID auf dem Register Erweitert eines der Import-DataTools können Sie die Häufigkeit von täglich auf stündlich ändern. Ändern Sie dazu den Eintrag wie folgt um, wobei Sie das Wort daily durch steady ersetzen:

  • Beispiel anhand des Import DataTool General Posting Setup: de.easy.bcc.import.daily.generalpostingsetup zu de.easy.bcc.import.steady.generalpostingsetup

Datenmenge beeinflussen

Zur Datenbeschaffung werden die OData-Webdienste von Microsoft Dynamics 365 Business Central verwendet. Bei OData handelt es sich um ist ein HTTP-basiertes Protokoll, das sogenannte CRUD-Methoden (Create, Read, Update, Delete) unterstützt.

OData erlaubt es, dass bei Read-Anfragen unter anderem Filter angegeben werden. Diese Filter werden bei der internen Datenaufbereitung berücksichtigt und man erhält ein gefiltertes Datenobjekt in JSON-Format in der Serverantwort. Diesen Mechanismus kann man sich zunutze machen, um die von den Import DataTools abgefragten Datenmengen einzugrenzen.

  • Um beispielsweise nur Wareneingangszeilen abzurufen, die vom Lieferanten noch nicht berechnet wurden, kann im DataTool "Data Tools Microsoft Business Central Connector - Import Receipt" an die URL im Bereich "Quelldienst" der Ausdruck ?$filter=Qty_Rcd_Not_Invoiced%20ne%200 angehangen werden. Das entspricht der Aussage "zeige nur Elemente, bei denen im Feld Qty_Rcd_Not_Invoiced nicht 0 steht" - also nur die noch nicht berechneten Zeilen.
  • Der Ausdruck ?$filter=No%20ne%20%27%27 am Ende der URL im DataTool "Microsoft Business Central Connector - Import Purchase Return Order Item" sorgt hingegen dafür, dass die Bemerkungs- bzw. Kommentarzeilen aus den Zeilen einer Reklamation nicht abgerufen und die Schattendatenbanktabelle "receipts" geschrieben werden, da wir sie im Workflow nicht benötigen.

Um sich einen Überblick über die Möglichkeiten zu verschaffen, lohnt sich der Blick auf http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html.

Bewegungsdaten

Der bereits konfigurierte Standard sieht vor, dass Bewegungsdaten je Rechnungskreis einmal stündlich vollständig in die Schattendatenbank synchronisiert werden.

Unter Bewegungsdaten verstehen wir:

  • Einkaufsbestellungen
  • Einkaufsbestellzeilen
  • Einkaufsreklamationen
  • Einkaufsreklamationszeilen
  • Wareneingangszeilen
  • Warenrücksendungszeilen

Sie können:

  • Rechnungskreise komplett aus der Synchronisation herausnehmen (betrifft Stamm- und Bewegungsdaten des Rechnungskreises)
  • die Häufigkeit von stündlich auf täglich ändern (betrifft alle Rechnungskreise)
  • die heruntergeladene Datenmenge beeinflussen (betrifft alle Rechnungskreise)

EASY Invoice Rechnungskreis aus der Synchronisation ausschließen

Siehe oben unter Stammdaten.

Häufigkeit

Durch Änderung der Unique ID auf dem Register Erweitert eines der Import-DataTools können Sie die Häufigkeit von stündlich auf täglich ändern. Ändern Sie dazu den Eintrag wie folgt um, wobei Sie das Wort steady durch daily ersetzen:

  • Beispiel anhand des Import-DataTools "Microsoft Business Central-Connector - Import Receipt: de.easy.bcc.import.steady.receipt zu de.easy.bcc.import.daily.receipt

Datenmenge beeinflussen

Siehe oben unter Stammdaten.