XML-Format-Beschreibung

Die Beschreibung der XML-Knoten kann hilfreich sein, wenn man über die Erfahrungen mit XML verfügt und die Anpassungen, welche in der Oberfläche möglich sind, stattdessen mit einem Editor vornehmen möchte.

Siehe auch Allgemeiner Aufbau des XML Dokuments

 

es2000 macht keine Angaben zu einer bestimmten Eignung der folgenden Informationen. Irrtümer und Fehler bleiben ausdrücklich vorbehalten, die Angaben erfolgen ohne Gewähr. Die Angaben stellen nur Beschreibungen dar und enthalten keine Garantie der Beschaffenheit der Produkte. Die Informationen können zum Teil auch ein Versuch sein, Ihnen bei einer Aufgabenstellung zu helfen, selbst wenn das Produkt eigentlich nicht für diesen speziellen Zweck vorgesehen wurde.

 

Das Arbeiten direkt in der XML-Datei erfordert Sorgfalt und Vorkenntnisse und sollte damit nur angewandt werden, wenn dies unbedingt erforderlich ist.

Bei den Attribut Beschreibungen wird hier folgende Syntax verwendet:

Name: (typ [default wert])

transfer

transfer

Transfer ist das Wurzel Element und es ist genau einmal erforderlich.

Attribute

version: (string [1.0])

Gibt die Version der Beschreibungsdatei an.

 

Dieses Attribut ist ab Version 1.1 erforderlich.

checkactive: (bool [false])

Wenn true wird vor einem manuellen Transfer eine Abfrage gezeigt, welche Felder übertragen werden sollen. (siehe attribut active bei table und field).

transaction: (bool [false])

Wenn true wird jede Tabelle innerhalb einer Transaktion übertragen.

assembly

Gibt einen Dateinamen für eine Assembly an, die für die Ausführung des Transfers erforderlich ist.

Alle Typen in der Assembly die von ES2000.Updatelib.TransferDescriptor ableiten, werden einmal instanziiert und die RegisterTransferMethods Methode dieser Instanz wird aufgerufen.

Attribute

filename: (string [])

Gibt den Dateinamen der Assembly an.

 

Dieses Attribut / dieser Wert ist erforderlich.

parameter

parameter

Gibt den Wert eines Parameters zum Beispiel für assembly, execsql oder call Knoten an.

Attribute

id: (string [])

Gibt die ID des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

value: (string[])

Gibt den Wert des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

execsql

execsql

Führt einen einfachen SQL-Befehl entweder auf der Quell- oder auf der Zieldatenbank aus.

Attribute

order: (int [-1])

Kann keinmal oder einmal vorkommen und beschreibt die Reihenfolge, in welcher der SQL-Befehl ausgeführt wird.

Größere Zahlen werden später übertragen.

stoponerror: (bool [true])

Gibt an, ob der Transfer bei einem Fehler abgebrochen werden soll.

db: ( {SOURCE | TARGET } [])

Gibt an, ob der Befehl auf der Quell- oder Zieldatenbank ausgeführt werden soll.

 

Dieses Attribut / dieser Wert ist erforderlich.

command: (string [])

Der SQL-Befehl der ausgeführt werden soll. Es können Parameter definiert werden, die vor dem Ausführen ersetzt werden können. Diese Parameter werden wie folgt angegeben: Delete from {Tabelle} dabei wäre Tabelle der Parametername.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

parameter

parameter

Gibt den Wert eines Parameters zum Beispiel für assembly, execsql oder call Knoten an.

Attribute

id: (string [])

Gibt die ID des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

value: (string[])

Gibt den Wert des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

logfile

logfile

Gibt eine Datei an, in die das Übertragungsprotokoll gespeichert werden soll.

Attribute

filename: (string [])

Enthält den Pfad zur Datei, in die das Log gespeichert werden soll.

 

<logfile filename="C:\temp\logdb.log" />

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

table

table

Beschreibt eine Quelltabelle.

Attribute

order: (int [-1])

Kann keinmal oder einmal vorkommen und beschreibt die Reihenfolge, in der die Tabelle übertragen wird. Größere Zahlen werden später übertragen.

checkupdate: (bool [false])

Kann keinmal oder einmal vorkommen und bestimmt ob überprüft werden soll, ob der Datensatz bereits in der Zieltabelle vorhanden ist. Wenn der Datensatz gefunden wurde wird ein Update gemacht sonst ein Insert.

stoponerror: (bool [true])

Gibt an, ob der Transfer bei einem Fehler abgebrochen werden soll.

filter: (string [])

Mit dem Attribut Filter kann die Quelldatenmenge gefiltert werden. Der Syntax innerhalb des Filters ist SQLGeschlossen Kürzel für Structured Query Language SQL ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. SQL ist von ANSI und ISO standardisiert und wird von fast allen gängigen Datenbanksystemen unterstützt..

 

Es wird empfohlen hier ANSI SQL zu verwenden damit möglichst viele DB Arten unterstützt werden

name: (string [])

Gibt den Namen der Quelltabelle an.

 

Dieses Attribut / dieser Wert ist erforderlich.

autocopy: (bool [false])

Wenn AutoCopy gesetzt ist, wird die Tabelle 1 zu 1 übernommen.

Eine manuelle Zuordnung der Felder ist dadurch nicht notwendig.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

active: (bool [false])

Gibt an, ob dieses Objekt übertragen werden sollen oder nicht.
Ist active nicht definiert, so wird, wenn transfer: checkactive auf true gesetzt ist, beim manuellen Transfer eine entsprechende Abfrage erzeugt.

field

field

Beschreibt ein Feld in der Quelltabelle, welches in eine Zieltabelle übertragen werden soll.

Attribute

name: (string [])

Enthält den Namen des Quellfeldes.

 

Dieses Attribut / dieser Wert ist erforderlich.

action: (char [])

Enthält die Art der Übertragung. Dieses Attribut kann den Wert C oder T annehmen.

Wobei C für einen Kopiervorgang steht und T für einen Programmgesteuerten Transfer.

typ: (string [])

Enthält die Typendefinition des Quellfeldes

Feldtypen

Nachfolgend finden Sie die verschiedenen Feldtypen, welche in der XML-Datei möglich sind:

Abkürzung - Bedeutung

I - Integer (32 Bit)

S - Small - Integer (16 Bit)

F - Float / Double

D - DateTime / TimeStamp

M - Memo (Plaintext)

R - Memo (RichText)

H - Memo (HTML)

B - Blob

A|1 - Boolean (String der Länge 1)

A|X - String der Länge X

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

active: (bool [false])

Gibt an, ob dieses Objekt übertragen werden sollen oder nicht.
Ist active nicht definiert, so wird, wenn transfer: checkactive auf true gesetzt ist, beim manuellen Transfer eine entsprechende Abfrage erzeugt.

const

const

Beschreibt einen Konstanten Wert (Konstante) für die Zieldaten.

Attribute

value: (beliebig [])

Enthält den Wert der In die Zieltabelle eingefügt werden soll. Der Wert wird anhand der Typendefinition des Zielfeldes gecastet.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

autoinc

autoinc

Beschreibt einen Wert, welche nach jedem einfügen um eine bestimmte Schrittweite inkrementiert wird (Inkrement).

Attribute

startvalue: (double [1])

Gibt den ersten Wert an, welche benutzt werden soll.

 

Dieses Attribut / dieser Wert ist erforderlich.

incby: (double [1])

Gibt den Wert an um den erhöht werden soll.

 

Dieses Attribut / dieser Wert ist erforderlich.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

dynamic

dynamic

Beschreibt einen dynamischen Wert, wie zum Beispiel das aktuelle Datum oder die Uhrzeit.

Attribute

value: (string [])

Gibt den Wert an.

 

Dieses Attribut / dieser Wert ist erforderlich.

Gültige Werte sind:

DATE – entspricht dem aktuellen Datum ohne Uhrzeit

NOW – entspricht dem aktuellen Datum mit Uhrzeit

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

expression

expression

Mit der Funktion Expression können komplexe Berechnung durchgeführt werden. Es wird die Script-Sprache ES-Expression-Language (ESEL) verwendet.

Attribute

value: (string [])

Gibt den Wert für die Berechnungsformel an.

 

Dieses Attribut / dieser Wert ist erforderlich.

target | setvar | setfont ( - target | setvar )

fromvar

Liest einen Wert aus einer Variablen, die mit setvar gesetzt wurde und übergibt den Wert an das target.

Attribute

name: (string [])

Enthält den Namen der Variable, aus welcher der Wert gelesen wird.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

from: (int [0])

Kann einen 0-Basierenden Index enthalten, von dem der Wert der Variable übernommen wird. Bei negativen Werten wird die Position vom Ende des Wertes aus berechnet, so dass -1 dem letzten Zeichen entspricht.

to: (int [-1])

Kann einen 0-Basierenden Index enthalten, bis zu dem der Wert der Variable übernommen wird. Bei negativen Werten wird die Position vom Ende des Wertes aus berechnet, so dass -1 dem letzten Zeichen entspricht.

lookup

lookup

Holt einen Wert aus einer Detail Tabelle und trägt diesen ein. Lookups können beliebig verschachtelt werden.

 

Beim letzten Lookup ist es erforderlich ein targetTarget zu definieren.

Attribute

name: (string [])

Der Feldname der Ursprungstabelle.

 

Dieses Attribut / dieser Wert ist erforderlich.

table: (string [])

Der Name der Lookup Tabelle.

 

Dieses Attribut / dieser Wert ist erforderlich.

lookupfield: (string [])

Das Feld in der Lookup Tabelle, welches den Wert von name enthält.

 

Dieses Attribut / dieser Wert ist erforderlich.

valuefield: (string [])

Das Feld in der Lookup Tabelle, dessen Wert übernommen werden soll.

 

Dieses Attribut / dieser Wert ist erforderlich.

db: ( {SOURCE | TARGET } [])

Gibt an, ob sich die Lookup Tabelle in der Quell- oder Zieldatenbank befindet.

 

Dieses Attribut / dieser Wert ist erforderlich.

lookuptyp: (string [])

Gibt optional den Typen des Lookupfields an, falls dieses erst gecastet werden muss.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

switch

switch

Leitet eine bedingte Übertragung vor.

 

Felder, die innerhalb eines Switchs stehen, werden immer kopiert!

Attribute

name: (string [])

Gibt den Feldnamen innerhalb der Zieltabelle, an der den Wert enthält, nachdem verzweigt werden soll.

 

Dieses Attribut / dieser Wert ist erforderlich.

trim: (bool [true])

Gibt an, ob der Wert vor dem Vergleich von Leerzeichen am Anfang und am Ende befreit werden soll.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

fromvar: (bool [false])

Gibt an, ob der Wert aus einer Variablen geladen wird statt aus einem Feld.

case

case

Eine Verzweigung für Switch Elemente

Attribute

value: (string [])

Enthält den Wert den das Switch Feld enthalten muss damit das untergeordnete Übertragungsfeld übertragen werden soll

regex: (bool [false])

Gibt an, ob es sich bei dem Wert in value um einen regulären Ausdruck handelt oder um einen Normalen String.

 

Auf Regex Case Zweige wird erst geprüft, wenn keiner der nicht-Regex-Zweige zum Erfolg führt

 

Reguläre Ausdrücke (RegEx / Regular Expressions)

Informationen zu Regulären Ausdrücken können Sie unter https://www.regular-expressions.info finden

default

default

Default Feld für switch und lookup Elemente

 

Die interne Übertragung wird ausgeführt, wenn kein case Element zutrifft

log

log

Schreibt einen Logeintrag oder erzeugt einen Fehler, der den Transfer abbricht mit einem bestimmten Text.

Attribute

text: (string [])

Enthält den Text, der geschrieben wird. Dieser Text kann auch Feldwerte der Quelldaten enthalten diese werden mit {FELDNAME} in den Text eingefügt.

iserror: (bool [false])

Gibt an, ob es sich um einen Fehler handelt oder um eine normal Log-Meldung.

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

try

try

Enthält einen Befehl, der ggf. einen Fehler erzeugen könnte. Über den catch-Block kann ein weiterer Befehl hinterlegt werden, der im Fehlerfall ausgeführt wird.

Ein Fehler könnte zum Beispiel die Konvertierung eines Strings in ein Datum sein, die fehlschlägt (55.12.1999 -> Datum wird einen Fehler verursachen).

catch

catch

Enthält einen Befehl, der im Fehlerfall eines try-Blocks ausgeführt wird.

group

group

Kann mehrere Unterelemente beinhalten.

Dies ist zum Beispiel nützlich um in einem switch-case Fall mehrere Werte zu setzten.

setfont

setfont

Setzt die Schriftart um.

Attribute

name: (string [])

Der Name der Schriftart.

size: (float [])

Die Schriftgröße.

color: (color [Black])

Die Schriftfarbe.

style: (fontstyle [])

Der Schrifttyp (bold, italic, etc.)

id: (string[])

Kann einen Wert enthalten, über den der Knoten eindeutig identifiziert werden kann.

target

target

Gibt das Ziel eines Feldes oder einer Konstanten an.

 

Dieser Knoten darf nur genau einmal pro Knoten vorkommen.

Wenn mehrere Ziele definiert werden sollen, ist es erforderlich den übergeordneten Knoten erneut anzugeben.

Attribute

table: (string [])

Enthält den Namen der Zieltabelle.

 

Dieses Attribut / dieser Wert ist erforderlich.

field: (string [])

Gibt den Feldnamen der innerhalb der Zieltabelle an.

 

Dieses Attribut / dieser Wert ist erforderlich.

typ: (string [])

Gibt den Feldtypen des Zielfeldes an. Der String ist nach den Typendefinitionen, welche oben beschrieben wurden, zu setzten.

 

Dieses Attribut / dieser Wert ist erforderlich.

setvar

setvar

Schreibt den Übergebenen Wert in eine Variable. Dieser Wert kann mit fromvar wieder ausgelesen werden.

Attribute

name: (string [])

Enthält den Namen der Variable, in welcher der Wert gespeichert wird.

action: ((set, concat) [set])

Bestimmt, ob der Wert in der Variablen überschrieben werden soll oder ob der neue Wert hinten an vorhandenen Wert angehängt werden soll.

call

call

Ruft eine Methode in einer mit assembly angegebenen DLL auf.

Attribute

name: (string [])

Enthält den Namen der aufzurufenden Funktion.

parameter

parameter

Gibt den Wert eines Parameters zum Beispiel für assembly, execsql oder call Knoten an.

Attribute

id: (string [])

Gibt die ID des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

value: (string[])

Gibt den Wert des Parameters an.

 

Dieses Attribut / dieser Wert ist erforderlich.

Feldtypen

Nachfolgend finden Sie die verschiedenen Feldtypen, welche in der XML-Datei möglich sind:

Abkürzung - Bedeutung

I - Integer (32 Bit)

S - Small - Integer (16 Bit)

F - Float / Double

D - DateTime / TimeStamp

M - Memo (Plaintext)

R - Memo (RichText)

H - Memo (HTML)

B - Blob

A|1 - Boolean (String der Länge 1)

A|X - String der Länge X

Allgemeiner Aufbau des XML Dokuments

Version 1.2

Das XML Format für den Abgleich zwischen Datenbanken sieht wie folgt aus:

Kopieren
Allgemeiner Aufbau des XML Dokuments
-transfer
    o logfile
    o assembly
        - parameter
    o execsql
        - parameter
    o table
        - field
            - target | setvar | setfont ( - target | setvar )
        - const
            - target | setvar | setfont ( - target | setvar )
        - autoinc
            - target | setvar | setfont ( - target | setvar )
        - dynamic
            - target | setvar | setfont ( - target | setvar )
        - expression
            - target | setvar | setfont ( - target | setvar )
        - fromvar
            - target | setfont ( - target | setvar )
        - group
            - { field | const | autoinc | dynamic | lookup | switch | log | try | fromvar | call | skip | expression }
            - [{ field | const | autoinc | dynamic | lookup | switch | log | try | fromvar | call | skip | expression } …]
        - lookup
            - { lookup | switch | target | setvar | log | try | group | field | skip | expression } 
            - [default]
                - { field | const | autoinc | dynamic | lookup | switch | log | try | fromvar | group | call | skip | expression }
        - switch
            - case
                - { field | const | autoinc | dynamic | lookup | switch | log | try | call | skip | expression }
            - [case …]
                - { field | const | autoinc | dynamic | lookup | switch | log | try | call | skip | expression }
            - [default]
                - { field | const | autoinc | dynamic | lookup | switch | log| try | fromvar | group | call | skip | expression }
        - log
        - try
            - { field | const | autoinc | dynamic | lookup | switch | log | fromvar | group | call | skip | expression }
            - catch
                - { field | const | autoinc | dynamic | lookup | switch | log | try | fromvar | group | call | skip | expression }
        - call
            - parameter
        - skip