Zum Inhalt springen

ERP-Plugins

Der invoiceR prüft und gibt Rechnungen frei, bezahlt sie aber nicht selbst. Die Zahlung übernimmt das ERP- oder Buchhaltungssystem. Die Verbindung dazu stellt ein ERP-Plugin her. Jedes Plugin kann bis zu drei Aufgaben übernehmen:

  1. Stammdaten-Import: Konten, Kostenstellen, Projekte, Lieferanten, MwSt-Codes und weitere Stammdaten regelmässig aus dem ERP holen (siehe Stammdaten).
  2. Buchungsexport: Freigegebene Belege nach der Schlusskontrolle als Kreditorenbeleg an das ERP übergeben, je nach Plugin mit dem PDF der Rechnung.
  3. Vorbuchung: Bei wenigen ERP die Rechnung schon vor der letzten Freigabe melden, damit sie in Auswertungen erscheint. Bezahlt wird erst nach der Freigabe.
ERP-SystemImportExportVorbuchungFehler-RückmeldungVerbindung
AbacusjajajaSOAP (AbaConnect)
Abacus über ODBCjajajaODBC und Datei
ComarchjaDatei
CSS eGeckojaXML-Datei
Generisch CSVjajaCSV-Datei
SAP (IDoc)jaIDoc-Datei
Axians InfomajaDatei
Microsoft Dynamics 365 Business CentraljajajaREST-API
Generisch SQL ServerjaSQL
NexusjajajaSOAP und REST
Generisch ODBCjaODBC
DynasoftjaODBC
LobosjajajajaODBC
OpalejaDatei
pain.001 (ISO 20022)jajaXML-Datei
ProffixjaAPI
E3KjajaREST-API

Fehler-Rückmeldung heisst: Lehnt das ERP eine Buchung ab, holt der invoiceR den Beleg zurück in die Schlusskontrolle und zeigt die Fehlermeldung dort und im Verlauf an. Plugins ohne Fehler-Rückmeldung übergeben die Buchung, ohne eine Antwort des ERP auszuwerten. Fehler siehst du dann im ERP selbst.

Import und Export laufen als wiederkehrende Hangfire-Jobs. Ihre Konfiguration steht in der Tabelle conf.IrRecurringJobs im Feld Configuration als JSON. Sie enthält die Verbindungsdaten zum ERP, ERP-spezifische Angaben (Mandant, Firma, Belegart) und Einstellungen des invoiceR wie die Rolle, die bei Fehlern informiert wird.

Import: Zur eingestellten Zeit verbindet sich der Job mit dem ERP, holt die Stammdaten und gleicht sie mit den bestehenden ab. Details unter Stammdaten-Import.

Export: Ist ein Beleg fertig freigegeben, legt der invoiceR einen Eintrag in der Export-Warteschlange an (Tabelle exp.IrCaseBookings). Der Export-Job sucht regelmässig nach offenen Einträgen und übergibt jeden Beleg einzeln an das ERP. Ein verarbeiteter Eintrag erhält ein Verarbeitungsdatum und wird nicht noch einmal exportiert.

Das Plugin für Business Central verbindet sich über die REST-API von Business Central und meldet sich mit einer App-Registrierung in Microsoft Entra ID an.

Es importiert Konten, Lieferanten, Projekte, Artikel und Währungen mit Kursen und exportiert freigegebene Belege als Einkaufsrechnung mit dem PDF als Anhang.

EinstellungBedeutung
AzureAdTenantIdVerzeichnis-ID (Tenant) in Microsoft Entra ID
AzureAdClientIdAnwendungs-ID der App-Registrierung
AzureAdClientSecretGeheimer Schlüssel der App-Registrierung
AzureAdScopeBerechtigungsumfang, in der Regel https://api.businesscentral.dynamics.com/.default
BusinessCentralEnvironmentName der Business-Central-Umgebung, zum Beispiel Production
OrganizationUnitExternalIdsListe der Firmen-IDs in Business Central, die importiert bzw. exportiert werden. Jede entspricht einem Geschäftsbereich im invoiceR.
MappingKeys, SourceNur Import, siehe Stammdaten
ExceptionRoleIdNur Export: Rolle, der ein Beleg bei einem Fehler im Export zugewiesen wird
CreateMissingVendorNur Export: Fehlt der Lieferant in Business Central, legt ihn der Export an (true) oder bricht mit einem Fehler ab (false, Standard)
AufgabeClassIdentifierMethodNameMethodArgumentIdentifier
Konten importierenenio.erp.Plugin.MSDynamics365.Entities.AccountsDoImportenio.erp.Plugin.MSDynamics365.Import.ImportArgument
Lieferanten importierenenio.erp.Plugin.MSDynamics365.Entities.SuppliersDoImportenio.erp.Plugin.MSDynamics365.Import.ImportArgument
Projekte importierenenio.erp.Plugin.MSDynamics365.Entities.ProjectsDoImportenio.erp.Plugin.MSDynamics365.Import.ImportArgument
Artikel importierenenio.erp.Plugin.MSDynamics365.Entities.ArticlesDoImportenio.erp.Plugin.MSDynamics365.Import.ImportArgument
Währungen importierenenio.erp.Plugin.MSDynamics365.Entities.CurrencyExchangeRatesDoImportenio.erp.Plugin.MSDynamics365.Import.ImportArgument
Belege exportierenenio.erp.Plugin.MSDynamics365.Export.InvoicesDoExportenio.erp.Plugin.MSDynamics365.Export.ExportArgument

Beispiel für die Konfiguration des Lieferanten-Imports:

{
"AzureAdTenantId": "<verzeichnis-id>",
"AzureAdClientId": "<anwendungs-id>",
"AzureAdClientSecret": "<geheimer-schluessel>",
"AzureAdScope": "https://api.businesscentral.dynamics.com/.default",
"BusinessCentralEnvironment": "Production",
"OrganizationUnitExternalIds": ["<firmen-id-1>", "<firmen-id-2>"],
"MappingKeys": ["IrOrganizationUnitId", "Number"],
"Source": "MSDynamicsImport"
}