Erstellung benutzerdefinierter Programmkomponenten
Um spezielle Funktionalitäten zu implementieren, die von xSuite Interface standardmäßig nicht abgedeckt werden, kann der Benutzer für bestimmte Komponenten eigenen Programmcode einbinden.
Das Einbinden von eigenem Programmcode ist für die folgenden Schnittstellenmodule und Verarbeitungsmodule möglich:
Eingabesystem
Eingabeformat
Indexdatenleser
Ausgabeformat
Ausgabesystem
alle Arten von Makrofunktionen
Die benutzerdefinierten Komponenten müssen in Form einer .NET-Klassenbibliothek bereitgestellt werden, dessen Versionsstand mit dem Hauptprogramm kompatibel ist. Aktuell ist das die Version .NET 8.0.
Hinweis
Im Unterordner Examples\CustomModules der Programminstallation befindet sich ein rudimentäres .NET-Beispielprojekt, das für jede Art von eigenerstelltem Modul und eigener Makrofunktion eine Klasse enthält, um beispielhaft die grundsätzliche Arbeitsweise zu veranschaulichen. Dies sind keine fachlich sinnvollen Anwendungsfälle. Um die Beispiele einfach zu halten, wird zudem auf eine Gültigkeitsprüfung der Eingabedaten und auf eine Fehlerbehandlung verzichtet.
Im Programmverzeichnis von xSuite Interface ist die Datei CustomModules.dll verfügbar. Diese Datei muss als Abhängigkeitskomponente in die eigene Klassenbibliothek eingebunden werden. In dem Namensraum XSuite.Interface.CustomModules.Models sind die Klassendefinitionen für alle speziellen Datentypen verfügbar, die in den Modulen und Makrofunktionen zum Einsatz kommen, d.h. z. B. für Stapel, Dokumente und Dateianlagen. Dies sind keine Original-Datenmodelle, mit denen das Programm intern arbeitet, sondern stark vereinfachte Varianten mit Eigenschaften, die speziell für den Datenaustausch mit den benutzerdefinierten Komponenten vorgesehen sind.
Eigenschaft | Beschreibung |
|---|---|
string ExternalId | externe ID, die den Stapel im Eingabesystem eindeutig identifiziert |
string Name | Anzeigename des Stapels in xSuite Interface |
IList<Document> Documents | alle Dokumente, die im Stapel enthalten sind (in aufsteigender Reihenfolge) |
IList<string> BackupFiles IList<string> BackupFolders | vollständige Pfade aller Eingabedateien oder Eingabeordner, wenn das Eingabesystem dateisystembasiert ist Diese Werte können beim Einlesen eines Stapels in einem eigenen Eingabesystem gesetzt werden, wenn die Eingabedaten durch den programminternen Backup-Service gesichert werden sollen. Es können entweder Einzeldateien oder ganze Ordner angegeben werden. Die Inhalte dieser Dateien oder Ordner werden in die Sicherung einbezogen. |
Eigenschaft | Beschreibung |
|---|---|
string ExternalId | externe ID, die das Dokument im Eingabesystem eindeutig identifiziert |
string Name | Anzeigename des Dokuments in xSuite Interface |
IList<Attachment> Attachments | alle Dateianlagen, die im Dokument enthalten sind |
IList<Field> Fields | alle Felder, die im Dokument enthalten sind |
IList<string> BackupFiles IList<string> BackupFolders | vollständige Pfade aller Eingabedateien oder Eingabeordner (analog zu den gleichnamigen Eigenschaften in der Stapelklasse) Diese Werte können entweder auf Ebene des Stapels oder der einzelnen Dokumente gesetzt werden. |
IDictionary<string, string> ExternalKeys IDictionary<string, string> MetaData | Name-/Wert-Paare von externen Schlüsselwerten und Metadaten des Dokuments In einem eigenen Ausgabesystem können hier Werte ergänzt werden, die bei der Ausgabe an ein externes System generiert wurden. |
Eigenschaft | Beschreibung |
|---|---|
string Name | Dateiname inklusive Endung |
string FilePath | vollständiger Dateipfad, wenn das Eingabesystem dateisystembasiert ist Wenn beim Einlesen eines Dokuments in einem eigenen Eingabesystem oder Eingabeformat die Binärdaten der Datei nicht direkt in |
Stream FileData | Binärdaten der Dateianlage Die Binärdaten müssen beim Einlesen eines Dokuments nicht zwingend gesetzt sein, wenn ein |
IDictionary<string, string> ExternalKeys IDictionary<string, string> MetaData | Name-/Wert-Paare von externen Schlüsselwerten und Metadaten der Dateianlage In einem eigenen Ausgabesystem können hier Werte ergänzt werden, die bei der Ausgabe an ein externes System generiert wurden. |
Eigenschaft | Beschreibung |
|---|---|
string Name | Name des Feldes gemäß Definition im Feldkatalog |
object Value | Wert des Feldes in einem unterstützten .NET-Datentyp Die folgenden .NET-Datentypen werden vom Makrointerpreter unterstützt:
|
IList<TableRow> Rows | Tabellenzeilen (wenn das Feld tabellarische Daten enthält) oder AchtungBei der Anbindung eigener Programmkomponenten werden nur flache Tabellenstrukturen unterstützt, d.h. keine verschachtelten Untertabellen. Das gilt für die Übernahme von einer externen Komponente eingelesener oder veränderter Feldinhalte und auch für die Übergabe bestehender Feldinhalte an eine externe Komponente. |
Eigenschaft | Beschreibung |
|---|---|
IList<Field> Fields | Felder, die in der Tabellenzeile enthalten sind |
Eigenschaft | Beschreibung |
|---|---|
string Name | Name des Feldes gemäß der Definition |
string InputName | Name des Feldes, unter dem das Feld gemäß Definition |
Eigenschaft | Beschreibung |
|---|---|
string Name object Value IList<TableRow> Rows | Eigenschaften analog zur Klasse |
string OutputName | Name des Feldes, unter dem das Feld gemäß Definition |
Die Schnittstellendefinition "ICustomLogger" beschreibt eine Logging-Komponente, die den eigenen Klassen jeweils im Konstruktor und den Makrofunktionen als Aufrufparameter übergeben wird. Diese Komponente ist im Namensraum XSuite.Interface.CustomModules.Interfaces definiert und dient dazu, aus dem eigenen Code heraus Log-Einträge direkt in die Logs von xSuite Interface auszugeben.
Methode | Beschreibung |
|---|---|
void Log( LogLevel logLevel = LogLevel.Information, string message = "", int indentLevel = 0, Exception exception = null) | Der
Die |