bidirektionales vfx-xml-interface für daten-import/export visual extend anwendertreffen 2009 rainer...

21
bidirektionales bidirektionales VFX-XML-Interface VFX-XML-Interface für für Daten-Import/Export Daten-Import/Export Visual Extend Anwendertreffen Visual Extend Anwendertreffen 2009 2009 Rainer Becker, Frank Kropp Rainer Becker, Frank Kropp deutschsprachige FoxPro User deutschsprachige FoxPro User Group Group VFX-XML

Upload: reto-strathman

Post on 05-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

bidirektionales bidirektionales VFX-XML-InterfaceVFX-XML-Interface

für Daten-Import/Exportfür Daten-Import/Export

Visual Extend Anwendertreffen 2009Visual Extend Anwendertreffen 2009

Rainer Becker, Frank KroppRainer Becker, Frank Kropp

deutschsprachige FoxPro User Groupdeutschsprachige FoxPro User Group

VFX-XML

Page 2: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Rainer BeckerRainer Becker dFPUGdFPUG

Homepage/Portal/ForumHomepage/Portal/Forum FoxProfessionalFoxProfessional FoxRockXFoxRockX

VFP-EntwicklerkonferenzVFP-Entwicklerkonferenz Lokalisierung VFP8/VFP9Lokalisierung VFP8/VFP9 Framework Visual ExtendFramework Visual Extend MVP (Lifetime), MCPMVP (Lifetime), MCP Wizards & Builders GmbHWizards & Builders GmbH

Page 3: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Warum ein XML-InterfaceWarum ein XML-Interface

Für Export von Daten müssen Ausgabeformate Für Export von Daten müssen Ausgabeformate verwaltet und Fremdschlüssel umgesetzt werdenverwaltet und Fremdschlüssel umgesetzt werden

Für den Import von Daten gilt das gleiche zzgl. Für den Import von Daten gilt das gleiche zzgl. Validierung von Feldarten/längen und Lookup-Listen Validierung von Feldarten/längen und Lookup-Listen

Dies alles geht am besten mit dem Standard XML Dies alles geht am besten mit dem Standard XML statt mit Excel (wg. wechselnder Formate in statt mit Excel (wg. wechselnder Formate in Versionen, Lokalisierung, Lizenz-Notwendigkeit)Versionen, Lokalisierung, Lizenz-Notwendigkeit)

Für Anwender muß außerdem eine Dokumentation Für Anwender muß außerdem eine Dokumentation generiert werden für die korrekte XML-Erstellunggeneriert werden für die korrekte XML-Erstellung

Page 4: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Warum XML statt XLS/TXTWarum XML statt XLS/TXT

XML ist versions- und (theoretisch) lizenzunabhängigXML ist versions- und (theoretisch) lizenzunabhängig Excel hat verschiedene Versionen (2003, 2007)Excel hat verschiedene Versionen (2003, 2007) Excel hat unvorhersehbare Änderungen beim nächsten UpdateExcel hat unvorhersehbare Änderungen beim nächsten Update Für Excel wird eine Lizenz benötigt, für XML direkt nicht (IE)Für Excel wird eine Lizenz benötigt, für XML direkt nicht (IE)

XML erlaubt verschiedene ZeichensätzeXML erlaubt verschiedene Zeichensätze Verwaltung von Zeichensätzen ist in CSV/TXT nur schwer möglichVerwaltung von Zeichensätzen ist in CSV/TXT nur schwer möglich Verschiedene Zeichensätze können in Excel ein Problem seinVerschiedene Zeichensätze können in Excel ein Problem sein

XML ist ein mittlerweile üblicher StandardXML ist ein mittlerweile üblicher Standard XML ist ohnehin der de facto Standard für DatenaustauschXML ist ohnehin der de facto Standard für Datenaustausch

XML kann von Excel und Internet Explorer verarbeitet werdenXML kann von Excel und Internet Explorer verarbeitet werden Und kann außerdem direkt in Notepad gelesen werdenUnd kann außerdem direkt in Notepad gelesen werden

Page 5: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Wie ruft man die Funktionen auf?Wie ruft man die Funktionen auf?

Die XML-Funktionen sind über eine Vielzahl von Die XML-Funktionen sind über eine Vielzahl von Klassen verstreut.Klassen verstreut.

Zu jeder Klasse gibt es eine leere Appl-Klasse für die Zu jeder Klasse gibt es eine leere Appl-Klasse für die notwendigen anwendungsspezifischen Einstellungennotwendigen anwendungsspezifischen Einstellungen

Für die Ansteuerung aus der Anwendung werden ein Für die Ansteuerung aus der Anwendung werden ein Export und ein Import-Button bereitgestelltExport und ein Import-Button bereitgestellt

Für den Entwickler gibt es eine Maske für die Für den Entwickler gibt es eine Maske für die Bearbeitung aller XML-EinstellungenBearbeitung aller XML-Einstellungen

Speicherung erfolgt im USER-Feld des DBCsSpeicherung erfolgt im USER-Feld des DBCs

Page 6: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Aufruf auch im Batch-BetriebAufruf auch im Batch-Betrieb Da man Import und/oder Export auch gerne mal Da man Import und/oder Export auch gerne mal

automatisieren möchte, ist ein Parameter für die generierte automatisieren möchte, ist ein Parameter für die generierte EXE vorgesehen. Eine Batch-Datei, die man aus dem EXE vorgesehen. Eine Batch-Datei, die man aus dem Scheduler aufrufen könnte, sieht dann grob so aus:Scheduler aufrufen könnte, sieht dann grob so aus:

C:C:CD \<anwendungsverzeichnis>CD \<anwendungsverzeichnis><VFX>.EXE <parameters><VFX>.EXE <parameters>

Die Parameter werden mit Leerzeichen getrennt und lauten Die Parameter werden mit Leerzeichen getrennt und lauten ungefähr (noch in Entwicklung) wie folgt:ungefähr (noch in Entwicklung) wie folgt:

IMPORT | EXPORTIMPORT | EXPORT<user code><user code><path2inifile>\xml.ini<path2inifile>\xml.ini<path2xml>\<file>.xml<path2xml>\<file>.xml

Ländereinstellungen werden vom Anwender (Erweiterung von Ländereinstellungen werden vom Anwender (Erweiterung von VFXUSR) genommen oder aus den Daten entnommen.VFXUSR) genommen oder aus den Daten entnommen.

Page 7: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Format für XML-ImportFormat für XML-Import Für jede Haupttabelle und für jede abhängige Tabelle muß Für jede Haupttabelle und für jede abhängige Tabelle muß

eine gültige XML-Datei bereitgestellt werden. Das Format ist eine gültige XML-Datei bereitgestellt werden. Das Format ist einfaches XML mit folgenden Grundlagen:einfaches XML mit folgenden Grundlagen:

Jede XML Datei muß einen kleinen Header haben. Siehe Jede XML Datei muß einen kleinen Header haben. Siehe Beispieldateien. Dieser enthält unter anderem eine Referenz Beispieldateien. Dieser enthält unter anderem eine Referenz auf die XSD-Datei für die Validierung.auf die XSD-Datei für die Validierung.

Für jeden Datensatz muß ein XML-Tag zum Öffnen und eines Für jeden Datensatz muß ein XML-Tag zum Öffnen und eines zum Schließen vorhanden sein wie folgt: <xmlimport>(hier zum Schließen vorhanden sein wie folgt: <xmlimport>(hier kommt der Datensatz)</xmlimport>kommt der Datensatz)</xmlimport>

Für jedes Feld muß ebenfalls ein XML-Tag vorhanden sein Für jedes Feld muß ebenfalls ein XML-Tag vorhanden sein mit dem entsprechenden Feldnamen wie folgt: mit dem entsprechenden Feldnamen wie folgt: <feldname>(hier kommt der feldwert)</feldname>.<feldname>(hier kommt der feldwert)</feldname>.

Leere Felder können komplett weggelassen werden oder als Leere Felder können komplett weggelassen werden oder als <feldname /> geschrieben werden, wenn nur gelegentlich leer.<feldname /> geschrieben werden, wenn nur gelegentlich leer.

Page 8: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Beispiel für eine XML-DateiBeispiel für eine XML-Datei Wenn Sie zum Beispiel Adressen über XML importieren Wenn Sie zum Beispiel Adressen über XML importieren

möchten, hat die XML-Datei den üblichen Header und dann möchten, hat die XML-Datei den üblichen Header und dann beispielhaft nachfolgende Feldelemente für jede Anschrift:beispielhaft nachfolgende Feldelemente für jede Anschrift:

<firma>Firmenbezeichnung</firma><firma>Firmenbezeichnung</firma><strasse>Strasse</ad2><strasse>Strasse</ad2><ort<Ort</ort><ort<Ort</ort><plz>Postleitzahl</plz><plz>Postleitzahl</plz><tel>Telefonnummer (ohne Landesvorwahl)</tel><tel>Telefonnummer (ohne Landesvorwahl)</tel><land>Länderschlüssel (lookup)</land><land>Länderschlüssel (lookup)</land><email>email addresse</email><email>email addresse</email><alien_key>Primärschlüssel aus Fremdsystem</alien_key><alien_key>Primärschlüssel aus Fremdsystem</alien_key>

Dies ist nur eine verkürzte Version. Sehr viel mehr Felder Dies ist nur eine verkürzte Version. Sehr viel mehr Felder können abhängig von der Anwendung vorhanden seinkönnen abhängig von der Anwendung vorhanden sein……

Page 9: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Verfügbare FeldtypenVerfügbare Feldtypen Es stehen drei einfache Feldarten zur Verfügung: Date (Datum), Es stehen drei einfache Feldarten zur Verfügung: Date (Datum),

String (Zeichenkette) und Boolean (Logisch):String (Zeichenkette) und Boolean (Logisch): Date: <deliverydate>Date: <deliverydate>2008-05-152008-05-15</deliverydate> </deliverydate> String: String: <position><position>MANAGERMANAGER</position></position> Boolean: Boolean: <active><active>falsefalse</active> </active>

Meist wird die Feldart String (Zeichenkette) verwendet. Meist wird die Feldart String (Zeichenkette) verwendet. Im Falle von Zeichenketten gibt es noch eine weitere Im Falle von Zeichenketten gibt es noch eine weitere

Geschmacksrichtung. Es kann sich um ein Lookup-Feld handeln, Geschmacksrichtung. Es kann sich um ein Lookup-Feld handeln, welches nur bestimmte Werte erlaubt. Der Feldwert muß also in welches nur bestimmte Werte erlaubt. Der Feldwert muß also in einer entsprechenden Lookup-Liste vorhanden sein (z.B. einer entsprechenden Lookup-Liste vorhanden sein (z.B. VFXPLIST)VFXPLIST)

Die zulässigen Werte für Lookups (sofern SQL-basiert) können der Die zulässigen Werte für Lookups (sofern SQL-basiert) können der generierten Datenbankdokumentation entnommen werden, siehe generierten Datenbankdokumentation entnommen werden, siehe unten.unten.

Page 10: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Automatische FelderAutomatische Felder

Innerhalb der Anwendung stehen einige Felder nur für den Innerhalb der Anwendung stehen einige Felder nur für den internen Zugriff zur Verfügung. Hier ein paar Beispiele:internen Zugriff zur Verfügung. Hier ein paar Beispiele: Schlüssel (Primärschlüssel eines Datensatzes, Fremdschlüssel eines Schlüssel (Primärschlüssel eines Datensatzes, Fremdschlüssel eines

Datensatzes)Datensatzes) Zeitstempel (Datum und Uhrzeit für Satzeneuanlage, Änderung, Zeitstempel (Datum und Uhrzeit für Satzeneuanlage, Änderung,

Löschung und Synchronisation)Löschung und Synchronisation) Protokollinformatoinen (Anwender der letzten Änderung)Protokollinformatoinen (Anwender der letzten Änderung) Statusinformationen (Feld für Löschflag)Statusinformationen (Feld für Löschflag)

Diese Felder können nicht über den XML-Import aktualisert Diese Felder können nicht über den XML-Import aktualisert werden, auch wenn sie sehr wohl exportiert werden können, werden, auch wenn sie sehr wohl exportiert werden können, und werden ignoriert. Stattdessen werden die Felder von der und werden ignoriert. Stattdessen werden die Felder von der Anwendung mit Werten gefüllt (Code notwendig).Anwendung mit Werten gefüllt (Code notwendig).

Page 11: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

XSD-Datei für ValidierungXSD-Datei für Validierung Für jede XML Importdatei gibt es eine dazugehörige XSD-Für jede XML Importdatei gibt es eine dazugehörige XSD-

DateiDatei Eine XSD Datei enthält Feldbeschreibungen sowie Eine XSD Datei enthält Feldbeschreibungen sowie

Feldnamen, Feldtypen und maximale Feldlängen. Letztere Feldnamen, Feldtypen und maximale Feldlängen. Letztere werden im Falle von landesabhängigen Zeichensätzen in der werden im Falle von landesabhängigen Zeichensätzen in der Länge verdoppelt.Länge verdoppelt.

Weitere Regeln können über die Definitionsmaske in die Weitere Regeln können über die Definitionsmaske in die XSD-Datei vom Entwickler eingefügt werden.XSD-Datei vom Entwickler eingefügt werden.

Es ist immer die jeweils neueste XSD-Datei zu verwenden.Es ist immer die jeweils neueste XSD-Datei zu verwenden. Mit Hilfe der XSD-Datei kann der Anwender eine einfache Mit Hilfe der XSD-Datei kann der Anwender eine einfache

Prüfung der erstellten XML-Datei für den Import vornehmen, Prüfung der erstellten XML-Datei für den Import vornehmen, ob Feldnamen, Feldtypen, Feldlängen und Lookupwerte ob Feldnamen, Feldtypen, Feldlängen und Lookupwerte korrekt sind und überhaupt eine Verarbeitung möglich wäre. korrekt sind und überhaupt eine Verarbeitung möglich wäre.

Page 12: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Beispiel für eine XSD-DateiBeispiel für eine XSD-Datei Pro Feld in einer Tabelle enthält die XSD-Datei einen Eintrag Pro Feld in einer Tabelle enthält die XSD-Datei einen Eintrag

nachfolgender Art mit Definition von Feldname, Länge, Typ:nachfolgender Art mit Definition von Feldname, Länge, Typ:<xsd:element name=“companyname“><xsd:element name=“companyname“>

<xsd:simpleType><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:restriction base="xsd:string"><xsd:maxLength value=“50"></xsd:maxLength><xsd:maxLength value=“50"></xsd:maxLength></xsd:restriction></xsd:restriction>

</xsd:simpleType></xsd:simpleType></xsd:element></xsd:element>

Man muß die XSD-Datei als Anwender weder lesen noch Man muß die XSD-Datei als Anwender weder lesen noch verstehen. Man muß sie nur für eine erste Validierung der verstehen. Man muß sie nur für eine erste Validierung der selbst erstellten XML-Import-Datei verwenden, um die selbst erstellten XML-Import-Datei verwenden, um die offensichtlichsten Probleme (z.B. Tippfehler) zu vermeiden.offensichtlichsten Probleme (z.B. Tippfehler) zu vermeiden.

Page 13: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Internationale ZeichensätzeInternationale Zeichensätze In XML werden Zeichenketten im UTF8 Format gespeichert, In XML werden Zeichenketten im UTF8 Format gespeichert,

so daß internationale Zeichensätze wie Kyrillisch (Russisch), so daß internationale Zeichensätze wie Kyrillisch (Russisch), Hebräisch, Griechisch und so weiter und der XML-Datei Hebräisch, Griechisch und so weiter und der XML-Datei korrekt dargestellt werden können.korrekt dargestellt werden können.

Dabei besteht allerdings ein Problem mit internationalen Dabei besteht allerdings ein Problem mit internationalen Zeichensätzen. Sie können bis zu doppelt so lang sein wie das Zeichensätzen. Sie können bis zu doppelt so lang sein wie das entsprechende Feld in der Datenbank. Deshalb werden für entsprechende Feld in der Datenbank. Deshalb werden für landesabhängige Zeichenfelder die Längen verdoppelt.landesabhängige Zeichenfelder die Längen verdoppelt.

Natürlich darf letztendlich die Anzahl der zulässigen Zeichen Natürlich darf letztendlich die Anzahl der zulässigen Zeichen nicht überschritten werden, selbst wenn die XSD-Datei keine nicht überschritten werden, selbst wenn die XSD-Datei keine Fehlermeldung erzeugt. Der Anwender muß selbst Fehlermeldung erzeugt. Der Anwender muß selbst sicherstellen, daß die Feldlängen nicht überschritten werden, sicherstellen, daß die Feldlängen nicht überschritten werden, da die Daten sonst natürlich abgeschnitten werden..da die Daten sonst natürlich abgeschnitten werden..

Page 14: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Primärschlüssel FremdsystemPrimärschlüssel Fremdsystem Wie zuvor erwähnt, werden für Haupttabellen Schlüssel eines Wie zuvor erwähnt, werden für Haupttabellen Schlüssel eines

anderen Systems verwaltet, da ein externes System kaum die anderen Systems verwaltet, da ein externes System kaum die gleichen Primärschlüssel wie die VFX-Anwendung verwenden gleichen Primärschlüssel wie die VFX-Anwendung verwenden wird.wird.

Der Primärschlüssel eines Fremdsystems wird stattdessen in Der Primärschlüssel eines Fremdsystems wird stattdessen in einer zusätzlichen Spalte der Tabellen abgelegt. In den einer zusätzlichen Spalte der Tabellen abgelegt. In den Beispielen heißt dieses Feld „alien_key“ (bzw. alien_ <weitere Beispielen heißt dieses Feld „alien_key“ (bzw. alien_ <weitere tabelle>_key) und ist ein String mit 30 Zeichen Länge.tabelle>_key) und ist ein String mit 30 Zeichen Länge.

Dieser alien_key wird permanent gespeichert und dient als Dieser alien_key wird permanent gespeichert und dient als Rückreferenz auf die externen Originaldaten.Rückreferenz auf die externen Originaldaten.

Die Primärschlüssel im Fremdsystem dürfen natürlich Die Primärschlüssel im Fremdsystem dürfen natürlich keinesfalls geändert werden, da die Relation sonst nicht mehr keinesfalls geändert werden, da die Relation sonst nicht mehr verfügbar istverfügbar ist

Page 15: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Arten von TransaktionenArten von Transaktionen Bei der Verarbeitung von XML-Importdateien gibt es drei Bei der Verarbeitung von XML-Importdateien gibt es drei

Arten von Aktionen / Transaktionen:Arten von Aktionen / Transaktionen: Insert: Der alien_key kann in der Anwendung nicht gefunden werden. Insert: Der alien_key kann in der Anwendung nicht gefunden werden.

Ein neuer Datensatz wird angelegt.Ein neuer Datensatz wird angelegt. Update: Der alien_key kann gefunden werden. Der gefundene Update: Der alien_key kann gefunden werden. Der gefundene

Datensatz wird aktualisiert.Datensatz wird aktualisiert. Delete: Der alien_key kann gefunden werden und die Spalte „Del“ Delete: Der alien_key kann gefunden werden und die Spalte „Del“

enthält „true“ als Wert (in XML: <Del>true</Del>). Der Datensatz enthält „true“ als Wert (in XML: <Del>true</Del>). Der Datensatz wird gelöscht.wird gelöscht.

Mit letzterem Fall gibt es gelegentlich Probleme:Mit letzterem Fall gibt es gelegentlich Probleme:Das Datenbanksystem des Kunden entfernt gelöschte Sätze möglicher- Das Datenbanksystem des Kunden entfernt gelöschte Sätze möglicher- weise direkt und der Anwender kann gar eine zu löschenden weise direkt und der Anwender kann gar eine zu löschenden Datensätze mehr exportieren. In solchen Fällen muß ein anderes Datensätze mehr exportieren. In solchen Fällen muß ein anderes Verfahren verwendet werden. Stattdessen wird eine vollständige Liste Verfahren verwendet werden. Stattdessen wird eine vollständige Liste alle gültigen Fremdschüssel geliefert und alle darüberhinaus alle gültigen Fremdschüssel geliefert und alle darüberhinaus vorhadenen Datensätze mit Fremdschlüsseln werden gelöscht…vorhadenen Datensätze mit Fremdschlüsseln werden gelöscht…

Page 16: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Aktualisierung bestehender DatenAktualisierung bestehender Daten

Es gibt ein weiteres Problem, sofern bereits Daten aus einem Es gibt ein weiteres Problem, sofern bereits Daten aus einem externen System auf welche Art und immer in den Tabellen externen System auf welche Art und immer in den Tabellen der VFX-Anwendung vorhanden sind. Diese wurden aber der VFX-Anwendung vorhanden sind. Diese wurden aber vermutlich nicht mit dem externen Schlüssel gespeichert.vermutlich nicht mit dem externen Schlüssel gespeichert.

Deshalb folgender Warnhinweis an die Anwender: Wenn Deshalb folgender Warnhinweis an die Anwender: Wenn einfach alle vorhadenen Datensätze per XML importiert einfach alle vorhadenen Datensätze per XML importiert werden, werden dadurch mit Sicherheit eine Vielzahl von werden, werden dadurch mit Sicherheit eine Vielzahl von Doubletten angelegt, die dann bereinigt werden müssen!Doubletten angelegt, die dann bereinigt werden müssen!

Wahlweise warten Sie auf eine geplante Funktion zum Import Wahlweise warten Sie auf eine geplante Funktion zum Import von Listen mit Primär- und externen Schlüsseln, wobei diese von Listen mit Primär- und externen Schlüsseln, wobei diese Listen aber auch erst vom Anwender vorbereitet werden Listen aber auch erst vom Anwender vorbereitet werden müßten. Oder die Anwendung ermöglicht das Nachtragen von müßten. Oder die Anwendung ermöglicht das Nachtragen von externen Schlüsseln zu vorhandenen Datensätzen…externen Schlüsseln zu vorhandenen Datensätzen…

Page 17: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Bereitgestellte DokumentationBereitgestellte Dokumentation

Die nachfolgende Dokumentation steht zur Verfügung:Die nachfolgende Dokumentation steht zur Verfügung: Datenbank Dokumentation (als .XLS) mit Beschreibung allerDatenbank Dokumentation (als .XLS) mit Beschreibung aller

Felder für alle TabellenFelder für alle Tabellen Werte für alle Lookuplisten (sofern SQL-basierend)Werte für alle Lookuplisten (sofern SQL-basierend)

Die folgenden Dateien stehen pro importierbarer Tabelle zur Die folgenden Dateien stehen pro importierbarer Tabelle zur Verfügung bzw. können vom Anwender erstellt werden:Verfügung bzw. können vom Anwender erstellt werden: XML-Beispieldatei mit echten DatenXML-Beispieldatei mit echten Daten XSD-DateiXSD-Datei HTML Dokumentation des XML-FormatsHTML Dokumentation des XML-Formats

Um einen ersten Eindruck zu gewinnen, sollte der Anwender Um einen ersten Eindruck zu gewinnen, sollte der Anwender eine bestehende Datei als XML exportieren und anschauen.eine bestehende Datei als XML exportieren und anschauen.

Page 18: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

DatenbankdokumentationDatenbankdokumentation Die generierte Datenbankdokumentation ist ein Spreadsheet Die generierte Datenbankdokumentation ist ein Spreadsheet

mit vielen Seiten. Hier eine Übersicht über die Seitenarten:mit vielen Seiten. Hier eine Übersicht über die Seitenarten: Tablelist: Übersicht über alle Tabellen. Hyperlink zur Felderliste.Tablelist: Übersicht über alle Tabellen. Hyperlink zur Felderliste. Pickuplist: Übersicht über alle Lookups. Hyperlink zur Werteliste.Pickuplist: Übersicht über alle Lookups. Hyperlink zur Werteliste. Viewlist/Indexlist: Übersicht Views/Indizes. Bitte ignorieren.Viewlist/Indexlist: Übersicht Views/Indizes. Bitte ignorieren. Table X...Z: Liste aller Felder zu Tabellen mit Name, Überschrift, Typ, Table X...Z: Liste aller Felder zu Tabellen mit Name, Überschrift, Typ,

Länge, Notwendigkeit, Kommentar, Vorgabewert, Format, Länge, Notwendigkeit, Kommentar, Vorgabewert, Format, EingabemaskeEingabemaske

View X..Z: Liste aller Felder zu View. Bitte ignorieren.View X..Z: Liste aller Felder zu View. Bitte ignorieren. XML Properties: Liste alle XML-Einstellungen.XML Properties: Liste alle XML-Einstellungen. Lookup lists: Liste aller Werte zu allen Lookuplisten.Lookup lists: Liste aller Werte zu allen Lookuplisten.

Die Datenbankdokumentation kann aus der Anwendung Die Datenbankdokumentation kann aus der Anwendung genierert werden, damit sie immer aktuell ist.genierert werden, damit sie immer aktuell ist.

Page 19: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Dokumentation pro TabelleDokumentation pro Tabelle Beispiel XML-Datei:Beispiel XML-Datei:

Die erstellte Beispieldatei kann vom Anwender per Doppelklick Die erstellte Beispieldatei kann vom Anwender per Doppelklick geöffnet werden und der Internet Explorer wird für die Anzeige geöffnet werden und der Internet Explorer wird für die Anzeige gestartet. Die Sicherheitswarnungen bezüglich ActiveX-Steuer-gestartet. Die Sicherheitswarnungen bezüglich ActiveX-Steuer-elementen können dabei getrost ignoriert werden, da sowieso keine elementen können dabei getrost ignoriert werden, da sowieso keine aktiven Inhalte bereitgestellt werden…aktiven Inhalte bereitgestellt werden…

Man kann die Datei natürlich auch über das Rechtsklick-Menü und Man kann die Datei natürlich auch über das Rechtsklick-Menü und „Öffnen mit“ in Excel öffnen. Excel bietet dann 3 Optionen zum „Öffnen mit“ in Excel öffnen. Excel bietet dann 3 Optionen zum Öffnen an – bitte die erste verwenden „als XML-Tabelle öffnen“!Öffnen an – bitte die erste verwenden „als XML-Tabelle öffnen“!

XSD-Datei:XSD-Datei: Kann man in Notepad anschauen. Zeigt Feldtypen/längen usw..Kann man in Notepad anschauen. Zeigt Feldtypen/längen usw..

HTML Dokumentation: HTML Dokumentation: Öffnet im Internet Explorer. Zeigt Feldtypen/längen als auch Öffnet im Internet Explorer. Zeigt Feldtypen/längen als auch

Kommentare/Erläuterungen in einem separaten kleinen Fenster.Kommentare/Erläuterungen in einem separaten kleinen Fenster.

Page 20: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Vorbereitung auf KundenseiteVorbereitung auf Kundenseite

Was sollen die Kunden zuerst tun:Was sollen die Kunden zuerst tun: Prüfen, ob deren Anwendungen XML pro Tabelle exportieren können.Prüfen, ob deren Anwendungen XML pro Tabelle exportieren können. Prüfen, ob dabei Feldnamen festgelegt werden können.Prüfen, ob dabei Feldnamen festgelegt werden können. Prüfen, ob für alle Pflichtfelder auch Werte vorliegen.Prüfen, ob für alle Pflichtfelder auch Werte vorliegen. Prüfen, ob für alle Lookup-Felder die richtigen Werte vorliegen.Prüfen, ob für alle Lookup-Felder die richtigen Werte vorliegen.

Die Ergebnisse müssen die Kunden erstmal zurückmelden.Die Ergebnisse müssen die Kunden erstmal zurückmelden. Und dann muß man diskutieren, wie man die zu erwartende Und dann muß man diskutieren, wie man die zu erwartende

Vielzahl von Bereitstellungsproblemen denn lösen könnte!Vielzahl von Bereitstellungsproblemen denn lösen könnte! Von daher ist eine XML-Schnittstelle zwar technisch sehr Von daher ist eine XML-Schnittstelle zwar technisch sehr

schön, aber in der Praxis erfordert es auf Kundenseite noch schön, aber in der Praxis erfordert es auf Kundenseite noch einige Arbeit, bis das auch tatsächlich funktionsfähig ist!einige Arbeit, bis das auch tatsächlich funktionsfähig ist!

Page 21: Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group

Vielen Dank!Vielen Dank!Besuchen Sie unsere Webseiten: Besuchen Sie unsere Webseiten:

http://www.visualextend.de (Homepage)http://www.visualextend.de (Homepage)

http://portal.dfpug.dehttp://portal.dfpug.de (Reiter/Verzeichnis VFX) (Reiter/Verzeichnis VFX)

http://forum.dfpug.de (Sektion VFX)http://forum.dfpug.de (Sektion VFX)

http://newsletter.dfpug.de (Rubrik VFX)http://newsletter.dfpug.de (Rubrik VFX)

http://devcon.dfpug.de (Vorträge VFX)http://devcon.dfpug.de (Vorträge VFX)

http://www.dfpug.de (Reiter VFX)http://www.dfpug.de (Reiter VFX)