Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Task "XSuiteHelixDataImport"

Der Task "XSuiteHelixDataImport" dient der Übertragung von Stammdaten an den Data Service in der xSuite Helix Cloud. Die Stammdaten werden über die Schnittstelle "DataValuesImport" der xSuite Helix Cloud übertragen. Diese Schnittstelle unterstützt nur ausgewählte Typen von Stammdatensätzen in einem fest definierten Format. Als Quelle kann ausschließlich eine SQL-Datenbank mit einer vorgegebenen Tabellenstruktur genutzt werden. Diese Datenbank entspricht der Datenbank "xFlowERP_MasterData", die in xSuite-Invoice-Prism-Projekten genutzt wird. Die Befüllung dieser Zwischentabellen aus den Daten des kundenspezifischen ERP-Systems obliegt dem Kunden selbst oder ist als Projektarbeit zu leisten. Das Mapping der Tabellenfelder auf die Datenobjekte des Data Services ist fest im Programmcode verankert und nicht konfigurierbar.

Die folgenden Datensatztypen werden für Stammdatenimporte unterstützt:

  • BusinessPartner

  • Order

  • CostCenter

  • GLAccount

  • Company

Die Stammdaten werden abhängig vom Typ des Datensatzes technisch unterschiedlich übertragen. Für die Typen CostCenter, GLAccount und Company findet mit jedem Aufruf des Import-Tasks eine vollständige Übermittlung aller Quelldatensätze statt und alle alten Sätze werden gelöscht. Bei den Typen BusinessPartner und Order wird von einer deutlich höheren Satzanzahl ausgegangen, die bei regelmäßiger vollständiger Übertragung einen zu hohen Datenverkehr verursacht. Für diese Datensatztypen findet daher ein inkrementeller Import statt, der eine erweiterte Verarbeitungslogik erfordert, um zwischen unveränderten, veränderten, neuen und zu löschenden Datensätzen zu unterscheiden. Dazu werden in der internen Verwaltungsdatenbank die Hash-Werte aller schon übertragenen Datensätze gespeichert und bei jedem Task-Aufruf mit den Quelldatensätzen abgeglichen. Nur veränderte oder gänzlich neue Sätze werden an den Data Service übermittelt. Zu löschende Sätze werden dadurch identifiziert, dass diese in der Quelldatenbank nicht mehr vorhanden sind, aber ein Eintrag in der Verwaltungsdatenbank über den Import in der Cloud existiert.

Die folgenden Eigenschaften gelten speziell für den Task vom Typ "xSuiteHelixDataImport".

Eigenschaft

Beschreibung

Schedule[].Task[].ImportType[]

Datensatztyp, der importiert wird

Folgende Datensatztypen sind verfügbar:

  • BusinessPartner

  • Company

  • CostCenter

  • GlAccount

  • Order

In einem Task-Aufruf können mehrere Datensatztypen nacheinander verarbeitet werden, sodass nicht für jeden Typ ein separater Task definiert werden muss.

Schedule[].Task[].Database.ConnectionString*(§)

Schedule[].Task[].Database.Password(§)

Schedule[].Task[].Database.Scheme(*)

Über die Eigenschaft .ConnectionString ist die Verbindungszeichenfolge zur Quelldatenbank anzugeben. Hier muss die gleiche Syntax verwendet werden wie für die Anbindung externer Datenquellen im Rahmen einer Szenariokonfiguration (siehe Externe Datenquellen). An dieser Stelle wird ausschließlich eine Datenquelle vom Typ "OLEDB" unterstützt.

Das Passwort, das in der Verbindungszeichenfolge benötigt wird, kann separat in .Password definiert und über die Variable %Password% in die Zeichenfolge eingebunden werden.

Über die Eigenschaft .Schema kann bei Bedarf ein abweichendes Datenbankschema angegeben werden (Standardwert: dbo). Für vom MS SQL Server abweichende Systeme ist dieses in jedem Fall erforderlich.

Schedule[].Task[].Database.CustomerId

Schedule[].Task[].Database.Principal

Schedule[].Task[].Database.CompanyCode

Gemäß des vordefinierten Quelldatenbankmodells verwenden alle Tabellen die Felder CustomerID, Principal und CompanyCode als Teil des zusammengesetzten Primärschlüssels. Wenn bei der Auswahl der Quelldatensätze gezielt auf bestimmte Werte dieser Schlüsselfelder gefiltert werden soll, sind dieser hier anzugeben. Um mehrere alternative Filterwerte für ein Feld anzugeben, können diese Werte kommasepariert aufgelistet werden.

Schedule[].Task[].DataService.Url

Schedule[].Task[].DataService.RequestTimeout

Schedule[].Task[].DataService.Keycloak

Schedule[].Task[].DataService.ProxyServer

Verbindungsdaten zum Zielsystem (Data Service in der xSuite Helix Cloud)

Als .Url ist die Basisadresse des Data Services inklusive Portnummer, aber ohne Unterpfade anzugeben. Als .RequestTimeout ist ein Timeout-Wert in Sekunden anzugeben, der festlegt, wie lange auf eine Antwort des Data Services gewartet wird, bevor ein Fehler geworfen wird (Standardwert: 100).

Unter .Keycloak sind die Eigenschaften für die Authentifizierung zu setzen (siehe Keycloak-Authentifizierung). Unter .ProxyServer kann optional ein Proxy-Server angegeben werden, der für die Verbindung in die Cloud genutzt wird (siehe Proxy-Server-Verbindung).

Schedule[].Task[].DataService.BatchSize

Anzahl der Sätze pro Stapel

Die Übertragung der Datensätze an den Data Service erfolgt gebündelt in Stapeln von mehreren Sätzen pro Aufruf.

Standardwert: 1000 (zulässiger Maximalwert)

Schedule[].Task[].DataService.ClearAllDocs

Wahrheitswert, ob vor dem Import der Sätze alle vorhandenen Sätze im Data Service gelöscht werden

Dieses ist nur relevant für die inkrementell übertragenen Satztypen BusinessPartner und Order und sollte ausschließlich temporär für einmalige Bereinigungsaktionen aktiviert werden. Für regelmäßige Importaufrufe sollte diese Eigenschaft nicht aktiviert sein, da bei jedem Aufruf alle Sätze neu übermittelt werden müssten.

Standardwert: FALSE

Schedule[].Task[].LogRecords

Wahrheitswert, ob die Inhalte der Quelldatensätze im Log ausgegeben werden

Die Ausgabe erfolgt generell nur bei dem Log-Level "Trace" und sollte nur temporär zu Analysezwecken aktiviert werden.

Standardwert: FALSE

Schedule[].Task[].ContentLogFolder(%)

optionaler Ordnerpfad, in dem die vollständigen Inhalte der an den Data Service übertragenen Datensätze protokolliert werden

Diese Eigenschaft ist primär für Analysezwecke und nicht für den dauerhaften Betrieb gedacht. Zur dynamischen Generierung von Unterordnern können Systemvariablen in die Pfadangabe eingebunden werden.

Pro stapelweisem Importaufruf wird eine JSON-Datei mit dem Stapelinhalt in dem Ordner erzeugt. Wenn Fehlerrückmeldungen vorhanden sind, wird zusätzlich eine zugehörige Antwortdatei erzeugt. Die separaten Aufrufe für zu löschende Sätze werden an dieser Stelle nicht protokolliert, da diese nur Datensatzschlüssel beinhalten, und daher keinen Mehrwert gegenüber dem normalen "Trace"-Logging bieten.

Schedule[].Task[].MaxErrors

maximale Anzahl fehlerhaft verarbeiteter Datensätze, bevor der gesamte Import für den betreffenden Satztyp abgebrochen wird

Wenn keine maximale Anzahl festgelegt ist, wird versucht, alle Sätze zu übertragen.

Fehler, die ganze Sätze betreffen, werden nur als Warnungen protokolliert. Ein Log-Eintrag des Typs "Fehler" wird ggf. nur einmalig als Zusammenfassung des gesamten Importvorgangs erzeugt. In diesem Zusammenhang ist sicherzustellen, dass E-Mails tatsächlich nur im Fehlerfall verschickt werden und nicht auch bei Warnungen (Eigenschaft Logging.Mail.ErrorsOnly).