/
Buchung – Einkaufsrechnung

Buchung – Einkaufsrechnung

Bei dem Buchen einer ungebuchten Einkaufsrechnung wird im Standard eine gebuchte Einkaufsrechnung sowie diverse Posten erstellt.
Der ursprüngliche ungebuchte Einkaufsrechnungsbeleg wird anschließend durch Business Central gelöscht. 

Im Folgenden wird der ungebuchte Einkaufsrechnungsbeleg als alter Beleg und der erstellte gebuchte Einkaufsrechnungsbeleg als neuer Beleg bezeichnet.

Über die enaio Integration wird sichergestellt, dass enaio Objekte, welche dem alten Beleg zugeordnet sind, auch den neu erzeugten Belegen zugeordnet sind. 

Voraussetzung ist, dass die enaio Integration sowohl für den alten Beleg als auch den neuen Beleg aktiviert ist.

Technische Ablaufbeschreibung

Zur Realisierung der Funktionalität wird der Business-Central-Standardprozess an folgenden Stellen erweitert.

Vor der Verarbeitung durch den Standard-Business-Central-Standardprozess

Über das Anhängen an das Event OnBeforePostPurchaseDoc der Codeunit Purch.-Post erfolgt vor dem Business-Central-Standardprozess folgende Verarbeitung.

enaio Verknüpfungsinformation sicherstellen

Sollte der alte Beleg noch keinen Marker für die Verknüpfung mit enaio (ProcessGUID) besitzen, wird diese vor der Verarbeitung des Business-Standardprozesses erzeugt.
Der neue Beleg übernimmt später die ProcessGUID des alten Belegs. Erforderlich ist dies, damit zu den neu erstellten Belegen dieselben enaio Objekte angezeigt werden.

Offene Synchronisierungseinträge verarbeiten

Verarbeitung im Benutzerkontext

Es wird geprüft, ob in der enaio Synchronisierungshistorie offene Verarbeitungseinträge zu dem alten Beleg vorhanden sind, die später, anhand des neuen Belegs, nicht mehr verarbeitet werden könnten.
Der Anwender kann entscheiden, ob die offenen Verarbeitungseinträge jetzt verarbeitet oder im Folgenden deaktiviert werden sollen.
Wenn der Anwender die offenen Einträge in dem Moment verarbeiten möchte und dies nicht möglich ist, kann der Buchungsprozess abgebrochen werden.

Verarbeitung durch Hintergrundprozesse

Die folgenden Optionen werden in der Konfiguration der enaio Integration (Zentrale Einrichtung) aktiviert/deaktiviert (siehe Sektion Prozess Integration – Buchen).

  • Ist die Option Hintergrund: verarbeite offene Aufträge vor dem Buchen aktiviert, werden offene Verarbeitungseinträge in der enaio Synchronisierungshistorie zu dem alten Beleg direkt verarbeitet.
    Sollte die Verarbeitung nicht möglich sein, wird geprüft, ob die Verarbeitungseinträge auf dem neuen Beleg, umgeschrieben werden können.
    Ist das Umschreiben nicht möglich, wird der angestoßene Business Central Prozess mit einer Fehlermeldung abgebrochen, sofern die Option Hintergrund: Aufträge können verworfen werden nicht gesetzt ist.

  • Ist die Option Hintergrund: Aufträge können verworfen werden aktiviert, werden solche Synchronisierungseinträge im Folgenden deaktiviert.

  • Ist die Option Hintergrund: verarbeite offene Aufträge vor dem Buchen nicht gesetzt, wird direkt geprüft, ob die Verarbeitungseinträge auf dem neuen Beleg, umgeschrieben werden können.
    Ist das Umschreiben nicht möglich, wird der angestoßene Business Central Prozess mit einer Fehlermeldung abgebrochen, sofern die Option Hintergrund: Aufträge können verworfen werden nicht gesetzt ist.

  • Ist die Option Hintergrund: Aufträge können verworfen werden aktiviert, werden solche Synchronisierungseinträge im Folgenden deaktiviert.

Während der Verarbeitung durch den Business-Central-Standardprozess

Über das Anhängen an das Event OnAfterCopyGenJnlLineFromPurchHeader der Codeunit Gen. Journal Line erfolgt während des Business-Central-Standardprozesses folgende Verarbeitung.

Verknüpfungsinformation übertragen

Im Standard-Buchungsprozess von Business Central werden temporär Buch.-Blattzeilen erzeugt. Auf diese wird der Marker für die Verknüpfung mit enaio (ProcessGUID) vom alten Beleg übernommen.

Im weiteren Verlauf des Standard-Buchungsprozesses werden über die temporären Buch.-Blattzeilen die verschiedenen Posten erzeugt.
Über das Anhängen an nachfolgend aufgeführte Events wird schließlich der Marker für die Verknüpfung mit enaio (ProcessGUID) vom alten Beleg auf die einzelnen Posten geschrieben.

  • Für Sachposten: Event OnAfterCopyGLEntryFromGenJnlLine der Tabelle G/L Entry

  • Für Kreditoren: Event OnAfterCopyVendLedgerEntryFromGenJnlLine der Tabelle Vendor Ledger Entry

  • Für Debitorenposten: Event OnAfterCopyCustLedgerEntryFromGenJnlLine der Tabelle G/L Entry

  • Für MwSt.-Posten: Event OnAfterCopyFromGenJnlLine der Tabelle VAT Entry

  • Für Bankposten: Event OnAfterCopyFromGenJnlLine der Tabelle Bank Account Ledger Entry

Nach der Verarbeitung durch den Business-Central-Standardprozess

Über das Anhängen an das Event OnAfterPostPurchaseDoc der Codeunit Purch.-Post erfolgt nach dem Business-Central-Standardprozess folgende Verarbeitung.

Alte Einträge der Synchronisierung Historie prüfen

Offene Einträge in der enaio Synchronisierung Historie zu dem alten Beleg werden, sofern möglich, auf den neuen Beleg umgeschrieben.
Sollten Einträge nicht auf den neuen Beleg umgeschrieben werden können, werden diese Einträge deaktiviert.

Damit ein Verarbeitungseintrag umgeschrieben werden kann, muss zu dem neuen Beleg eine Exportkonfiguration mit dem gleichen Szenario definiert sein.

Verarbeitungseinträge mit dem Szenario E-Mail bzw. Drucken können generell nicht umgeschrieben werden, da für die Dokumentenerstellung der ursprüngliche Beleg erforderlich ist.

Eintrag in der Synchronisierung Historie erstellen

Sofern zu dem alten Beleg in Business Central bereits Verarbeitungseinträge in der enaio Synchronisierung Historie vorhanden sind, wird ein Eintrag in der enaio Synchronisierung Historie zum Übertragen der Buchungsinformation an enaio für den neuen Beleg erstellt.
Verarbeitungseinträge existieren dann, wenn zu dem alten Beleg bereits Dokumente oder Daten an enaio übertragen worden sind.

Bei der Prüfung spielt der Status der vorhandenen Verarbeitungseinträge keine Rolle.

Einträge der Synchronisierung Historie verarbeiten

Anschließend werden alle Einträge zu dem neuen Beleg verarbeitet, die älter als die konfigurierte Sync Ledger Verzögerung (s) sind.
Dies trifft nur auf Verarbeitungseinträge zu, die zu dem alten Beleg existierten und ggf. auf den neuen Beleg umgeschrieben worden sind.

Erfolgt die Verarbeitung im Anwenderkontext bzw. im Hintergrund und die Option Hintergrund: Sync-Aufträge mit dem Buchen verarbeiten in der Konfiguration der enaio Integration ist aktiviert, wird die Karenzzeit ignoriert und es werden alle offenen Einträge zu dem neuen Beleg verarbeitet.

 

Related content