Inhaltsverzeichnis

 

Typ-Editor

Der Typ-Editor erlaubt das Erstellen und Bearbeiten systemverwalteter Typen. Hierbei kann analog zum Mapping-Editor eine Typdefinition anhand einer Vorlage (z.B. XSD, JSON, etc.) erzeugt werden. Zusätzlich ist es aber auch möglich Strukturen gänzlich manuell zu definieren. Die so erstellte Struktur kann anschließend über die Punkte des Kontextmenüs (Baumstruktur) erweitert und über die Detail-Ansicht auf der rechten Seite editiert werden.

Hinweis: Für das erzeugen von Datentypen mit dem Typ-Editor gilt zu beachten, dass die C#-Schlüsselwörter nicht als Datenelementnamen verwendet werden dürfen!

Erstellen von Typdefinitionen

Typdefinitionen systemverwalteter Typen können neben der manuellen Erstellung aus einer Reihe von Vorlagen erstellt werden:

Bei der manuellen Erstellung ist der Unterschied zwischen einfachen komplexen und Felddefinitionen zu beachten.
Einfache Felddefinitionen repräsentieren hierbei Felder mit primitiven Datentypen, wohingegen komplexe Felder eine Reihe von beliebigen Felddefinitionen beinhalten bzw. Listen von Felddefinitionen darstellen können.

Referenzen

Wenn ein komplexes Feld die gleiche Liste von Felddefinitionen darstellt, empfielt es sich Referenzen zu verwenden. Eine Änderung der Struktur würde sich in allen Elementen wiederspiegeln, die diese Referenz gesetzt haben. Um Referenzen zu aktivieren befolgen Sie folgende Schritte:

  1. Den richtigen Pfad bestimmen. Angefangen vom Wurzelelement werden alle Elemente mit einem Punkt verbunden. Z.B. Invoice.OrderReference.DocumentReference
  2. Den resultierenden Pfad in 'Referenz Pfad' eintragen.
  3. 'Referenz verwenden' aktivieren. Wenn dies nicht funktioniert, so ist der 'Referenz Pfad' falsch oder das Ziel ist kein komplexes Feld.

Wird die Referenz deaktiviert, so wird die referenzierte Struktur kopiert.

Bearbeiten von Typdefinitionen

Innerhalb der Baumstruktur können die Elemente der Typ-Definition über die Aktionen des Kontextmenüs oder deren Tastenkürzel modifiziert und per Drag-and-Drop verschoben werden. Wird ein Element auf diese Weise auf einer einfache Felddefinition gedroppt, wird das Element nach dem Zielelement platziert. Wird es stattdessen auf einer komplexen Felddefinition gedroppt wird es innerhalb dieser platziert. Dieses Verhalten kann durch gedrückt halten der Shift-Taste insofern verändert werden, dass das Element immer vor dem Zielelement platziert wird, unabhängig von dessen Ausprägung.

Die weiteren Eigenschaften der Felddefinition können in der rechten oberen Detail-Ansicht parametriert werden.

Allgemeine Eigenschaften

Eigenschaften
NameBeschreibung
NameName der Eigenschaft
Öffentlicher NameAlternativer Name welcher bei der Erkennung von Nachrichteninhalten (eingehen) und bei der Erstellung von Nachrichten (ausgehend) verwendet wird
Öffentlichen Namen im Mapping verwendenErmöglicht die Verwendung des 'öffentliche Namens' im Mapping Kontext
BeschreibungDie Beschreibung
PflichtfeldFalls gesetz, dann werden Daten zu dem Feld erwartet

Eigenschaften einfacher Felddefinitionen

Eigenschaften
NameBeschreibung
NameName der Eigenschaft
Öffentlicher NameAlternativer Name welcher bei der Erkennung von Nachrichteninhalten (eingehen) und bei der Erstellung von Nachrichten (ausgehend) verwendet wird
Öffentlichen Namen im Mapping verwendenErmöglicht die Verwendung des 'öffentliche Namens' im Mapping Kontext
BeschreibungDie Beschreibung
PflichtfeldFalls gesetz, dann werden Daten zu dem Feld erwartet
TypPrimitiver Feld-Typ
GrößeGrößenbegrenzung eines Textfeldes (Anzahl der Zeichen). Nicht erforderlich für Nicht-Textfelder, es sei denn, das Feld wird über eine CSV-Datei mit festen Längenangaben eingelesen.
Bei ÜberlaufAktion bei Überlauf eines Textfelds

Eigenschaften komplexer Felddefinitionen

Eigenschaften
NameBeschreibung
NameName der Eigenschaft
Basisklasse
Öffentlicher NameAlternativer Name welcher bei der Erkennung von Nachrichteninhalten (eingehen) und bei der Erstellung von Nachrichten (ausgehend) verwendet wird
Öffentlichen Namen im Mapping verwendenErmöglicht die Verwendung des 'öffentliche Namens' im Mapping Kontext
BeschreibungDie Beschreibung
PflichtfeldFalls gesetz, dann werden Daten zu dem Feld erwartet
Referenz PfadPfad zu einer anderen Definition, welche als Referenz verwendet werden soll
ListeDas Element ist eine Liste der untergeordneten Strukturen
Min. Anzahl von ElementenMinimale Anzahl von erforderten Positionen innerhalb der Liste
Max. Anzahl von ElementenMaximale Anzahl von erlaubten Positionen innerhalb der Liste
Referenz verwenden

In der Unteren rechten Detail-Ansicht können die Definitionen über die gegeben Felder hinaus mittels Attributen weiter parametriert werden. Wobei hier erneut auf der rechten Seite die Attribute weiter parametriert werden können. Um Attribute zu einer Felddefinition hinzuzufügen oder diese zu entfernen, können die Einträge des Kontextmenüs bzw. deren Tastenkürzel verwendet werden.

XPath berechnete Felddefinitionen

Mit Hilfe der XPath berechneten Felddefinition kann ein beliebiges Feld erzeugt werden.
Durch eine Bedingung (XPath Ausdruck) wird dem Feld ein bestimmter Wert zugewiesen.
Dies kann hilfreich sein, wenn z.B. innerhalb der Kopf-Ebene die Quellobjekt-Struktur eine Liste beinhaltet.
In einem einfachen Feld innerhalb einer der Listen ist z.B. eine Information, welche man mit einem MapFrame-Attribut (z.B. Sender) versehen möchte.
So könnte man in diesem Fall ein XPath berechnetes Feld erzeugen, worauf man das MapFrame-Attribut legt.
Dies kann wie folgt aussehen:

Achtung: Der XPath Ausdruck kann im Map-Debugger getestet werden, wobei die XPath-Expression ab der Stelle an der das Property definiert ist, im Mapping zum Test eingefügt werden kann.

Weitere Aktionen

Bei der Verwendung von XSDs oder DB-Tabellen als Vorlage für eine Objektdefinition ergeben sich weitere Bearbeitungsmöglichkeiten. So können weitere Elemente direkt aus der jeweiligen Quelle hinzugefügt oder bestehende mit Definitionen aus einer XSD oder DB-Tabellen differenziert abgeglichen werden. Der Abgleich kann auch über den Menüpunkt „Objektdefinition“ am oberen Rand des Editors vollständig, über die ganze Struktur, durchgeführt werden.

Objektdefinitionen aus der Datenbank

Bei Objektdefinitionen die von Datenbank-Tabellen abgeleitet werden, müssen zunächst in einem Dialog der Verbindungstyp und Connection String für die entsprechende Datenbank angegeben werden. Falls ein Standard-Systempartner für den aktuellen Knoten definiert wurde, für den Variablen mit den Namen „ebiss.dbadapter.connectionstring“ und „ebiss.dbadapter.connectiontype“ definiert sind (siehe HowTo - Datenbank Integration (DB Adapter)) werden die Werte dieser Variablen verwendet um die Felder des Dialogs automat. vorzubelegen.
Soll die erzeugte Objektdefinition in Verbindung mit dem DB Adapter verwendet werden, ist es zudem wichtig, dass Feld „Verwendung“ des systemverwalteten Typs korrekt zu setzen.

Hinweis: Bis auf weiteres unterstützt eBiss nur einen Namespace innerhalb einer Datenbank, weil der Datenbank „Connection-String“ keine Möglichkeit bietet den Namensraum auszuwählen, wird i.d.R. der Standardnamensraum des SQL Users verwendet. (Die Liste der auswählbaren Tabellen zeigt aber Tabellen aller Namensräumen innerhalb der Datenbank an.)

Nachfolgend finden Sie Beispiele für gängige Verbindungsarten bzw. Verbindungstypen:

MSSQL

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
System.Data.SqlClient.SqlConnection

MySql

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
MySql.Data.MySqlClient.MySqlConnection

SQLite

Data Source=c:\mydb.db;Version=3;
System.Data.SQLite.SQLiteConnectionction

Oracle

user id=SYSTEM;password=<Password>;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<Host>)(PORT=<Port>))(CONNECT_DATA=(SERVICE_NAME=<Service>)))
Oracle.ManagedDataAccess.Client.OracleConnection

oder

Oracle.DataAccess.Client.OracleConnection 

Ansichten (Views)

Ansichten als Basis für Typdefinitionen werden nur für die oben aufgelisteten Datenbank-Adapter unterstützt.

Debugging

Eine vorliegende Typdefinition kann über das Erzeugen von Test-Daten oder das Laden bestehender Nachrichtendaten geprüft werden.
Zudem sind der Export gefüllter Strukturen und das Erzeugen von Einzelassemblies zum weiteren Debugging möglich.

Themen