tabex/4

Werbung
TABEX/4
Newsletter 10
7/2013
Editorial
Inhalt
Sehr geehrte Damen und Herren!
Editorial
In diesem Newsletter behandeln wir vier
Themen rund um TABEX/4:
Migration von Tabellendaten zwischen
relationalen Datenbanken
Möglichkeiten der Exit-Programmierung
1. Das erste Thema ist die Migration von
Tabellendaten
zwischen
(unterschiedlichen) relationalen Datenbanken z.B. von
DB2 nach Oracle oder von Informix nach DB2.
Pflege von Tabellen aus relationalen
Datenbanken
2. Zweitens zeigen wir die vielfältigen
Möglichkeiten der Exit-Programmierung auf.
•
•
•
•
Arten der Pflege von Tabellen aus
relationalen Datenbanken
Zeilenversionsführung
TABEX Katalogtabelle (SQL Catalog)
TABEX-Views
SHS-Archivierung
Wichtiger Hinweis: Problem mit IBM Java 1.7.0
build 2.6
3. Der dritte Schwerpunkt beschreibt die
unterschiedlichen Arten der Pflege von
Tabellen aus relationalen Datenbanken.
4. Last but not least widmen wir uns der SHSArchivierung.
Unser aktueller Expertentipp beschreibt, wie
numerische Tabellenfelder aus MS EXCEL
beim CSV-Import mit führenden Nullen korrekt
importiert werden können.
Expertentipp 15 – CSV-Import/Export
Viel Spaß beim Lesen!
BOI GmbH
Impressum
Ihr BOI Team
1. Migration von Tabellendaten zwischen relationalen Datenbanken
Sie haben Daten in einer relationalen Datenbank gespeichert, benötigen diese jedoch in einer
anderen relationalen Datenbank auf einem anderen Betriebssystem?
Sie möchten Daten von einer Datenbank in eine andere Datenbank migrieren und dabei
Strukturanpassungen durchführen?
TABEX/4 bietet Ihnen das Werkzeug, um Daten zwischen relationalen Datenbanken zu
transportieren. Die Datenbanksysteme können dabei unterschiedlich sein. So können Sie z.B.
Daten von Oracle in DB2 weiterverarbeiten od. Daten von Informix nach DB2 transportieren.
Abb. Beispiel für eine Migration von Informix nach DB2
Mit Hilfe der Utilities TABN02 (Command SQLTAB) / TABN05 werden die Daten von der QuellRDB (zum Beispiel Informix) in eine TABEX DB (im Beispiel TABEX_DB i) zwischengespeichert.
Da meistens Datentypanpassungen durchgeführt werden müssen, kann ein Anwenderprogramm
zwischengeschaltet werden, welches die Datentypanpassungen durchführt und die Tabelle in
eine zweite TABEX DB speichert (im Beispiel TABEX_DB d). Mit dem Utility Command SQLUPD
wird diese TABEX_DBd dann in die Zieldatenbank (im Beispiel DB2) eingespielt. Falls die
Tabelle(n) in DB2 noch nicht existieren, können diese mit dem Utility TABN06 in der
Zieldatenbank erstellt werden.
Wenn Sie an weiteren Informationen zu dieser Funktionalität interessiert sind, wenden Sie sich
bitte an unseren Support [email protected].
2. Möglichkeiten der Exit-Programmierung
Exits sind SSL-Programme, die vom Kunden in TABEX/4 eingebunden werden können, um an
gewünschter Stelle eigene Prüfungen, Nachbearbeitungen, usw. durchführen zu können. SSL,
die TABEX-interne Programmiersprache, bietet auch die Möglichkeit, externe Programme (PL/I,
Cobol usw.) aufzurufen. Neben den bekannten Exitmöglichkeiten wie z.B. Protokoll-Exits,
Berechtigungsprüfungs-Exits oder Menü-Exits bietet TABEX/4 ein vielfältiges Spektrum an
Erweiterungsmöglichkeiten.
BOI - Newsletter 10
2
7 / 2013
2. Möglichkeiten der Exit-Programmierung
An folgenden Stellen können im Ablauf des TABEX/4 Table Managers Exitprogramme des
Kunden eingebunden werden:
1. Instanzinitialisierung (nach dem Laden der Instanzkonfigurationstabelle)
2. Setzen eines Wertes eines Systemparameters
3. nach Selektion eines Menüpunkts
4. Erzeugen eines TABEX View Statements für die dynamische Viewanzeige
5. Berechtigungsprüfung
6. Spezifizieren eines SSL-Programms als Handler für ein kundenspezifisches Icon
7. nach Selektion einer TABEX Tabelle aus dem TABEX Datenbankindex
8. Vorgabe für neues Tabellenversionsdatum
9. nach Commit eines Updates einer TABEX Tabelle
10. nach Online-Transfer von der Modifikationsdatenbank in die Produktionsdatenbank
11. Definieren von Sichten für das Laden von Daten von relationalen Datenbanken (mit
technischen Feldern bei Zeilenversionsführung)
12. nach dem Laden von Daten aus relationalen Datenbanken
13. vor dem Update von Daten in relationale Datenbanken
14. Übertragen von Jobparameterwerten
15. Protokoll-Exits, wenn in der Web-Applikation die Protokollierung eingeschaltet ist, bzw für
die Commands der Utilities TBVW01 und TBVW02. Protokoll-Exits können bei sämtlichen
Tabellenänderungsmenüpunkten aufgerufen werden. (Die Namen der kundenspezifischen MOD-IDs müssen mit 'MY' beginnen.)
16. Ermitteln der TabellenID für den nächsten Step einer Tabellensequenz
Für die Exit-Programmierung werden Interfacefunktionen zur Verfügung gestellt, die in der
Implementierung der Exits verwendet werden können:
1. Abfragen der aktiven Instanz
2. Abfragen der aktiven Datenbank
3. Löschen des aktiven TABEX Tabellenindex, sodass das System diesen Index wieder
erneut aufbauen muss
4. Lesen des Tabellenstatus
5. Schreiben von Kundendaten (10 Bytes) in den Tabellenstatus
6. Methoden zur Ausgabe von Textzeilen und Messages
7. Starten von Jobs
8. Lesen von Systemparameterwerten
9. Abfragen der Modul-Parameter
10. Aufbauen einer Verbindung zu einer relationalen Datenbank
11. Laden einer RDB-Tabelle als TABEX DB in den Speicher
12. Abfragen der MOD-ID
13. Abfragen von Tabellenberechtigungen
14. Abfragen von Freigabeverfahren
Eine detaillierte Beschreibung aller Exitmöglichkeiten finden Sie in der
BOIDOC_209a_config_en.pdf im Kapitel 'User Exits'.
Wenn Sie Fragen zur Exitprogrammierung haben, wenden Sie sich bitte an unseren Support
[email protected]. Gerne unterstützen wir Sie im Rahmen eines Consultings bei der
Implementierung Ihrer Exits.
BOI - Newsletter 10
3
7 / 2013
3. Pflege von Tabellen aus relationalen Datenbanken
Arten der Pflege von Tabellen aus relationalen Datenbanken
Einzelsatz-Direktpflege über Zeilenselektion
Einzelne Zeilen einer Tabelle werden selektiert und können parallel bearbeitet werden.
Abb. Einzelsatz-Direktpflege
Tabellen-Direktpflege
Mehrere Zeilen einer Tabelle stehen auf dem Bildschirm für die Änderung zur Verfügung.
Abb. Tabellen-Direktpflege
Pflege mit Freigabeverfahren
Bei der Pflege mit Freigabeverfahren, werden geänderte Daten in einer TABEX-Modifikationsdatenbank zwischengespeichert. Nach erfolgreicher Kontrolle werden die Änderungen zu einem
festgelegten Zeitpunkt in der RDB nachgezogen, und aus der TABEX-Modifikationsdatenbank
wieder gelöscht.
Abb. Pflege mit Freigabeverfahren
Pflege über SQLT-Tabellen mit/ohne Freigabeverfahren
TABEX Tabellen mit SQL-Verbindung (sogenannte SQLT-Tabellen) werden via SQL SELECT
Statement mit den Daten einer relationalen Datenbank verknüpft. Das Ergebnis des SELECT
Statements wird dynamisch aus der relationalen Datenbank geladen, wenn die Tabelle aus der
TABEX Datenbank geladen wird und dort keine Zeilen besitzt. Sowohl Table Manager als auch
Utilities haben Funktionen zum Erzeugen und Updaten von SQLT-Tabellen.
Abb. Pflege über SQLT-Tabellen mit/ohne Freigabeverfahren
BOI - Newsletter 10
4
7 / 2013
3. Pflege von Tabellen aus relationalen Datenbanken
Zeilenversionsführung
Eine weitere Möglichkeit zur Pflege von Tabellen aus relationalen Datenbanken ist die
Zeilenversionsführung.
Um Daten zeitlich zu versionieren, und/oder die Änderungshistorie in einer RDB zu erhalten,
besteht die Möglichkeit der sogenannten Zeilenversionsführung. Die dafür nötigen technischen
Felder müssen in die Tabellenstruktur eingefügt werden. Die ursprüngliche Tabellenstruktur bzw.
Sichten auf die Tabelle (z.B. die zum Tagesdatum gültigen Zeilen) werden über 'Views'
abgebildet.
Die Minimalvariante ist eine Versionierung ohne Änderungshistorie mit Gültig-Ab-Datum als
letztes Schlüsselfeld, und Löschkennzeichen. Weitere Varianten mit Historisierung enthalten im
Schlüssel zusätzlich ein Timestamp-Feld. Alternativ zum Löschkennzeichen kann auch ein
Gültig-Bis-Datum verwendet werden.
Der Vorteil dieser Speicherung ist, dass die gesamte Historie der Daten zentralisiert in einer RDB
gespeichert ist und keine Hilfstabellen notwendig sind.
Abb. Beispiel für Zeilenversionsführung
BOI - Newsletter 10
5
7 / 2013
3. Pflege von Tabellen aus relationalen Datenbanken
TABEX Katalogtabelle (SQL Catalog)
Bei der Verwendung von relationalen Datenbanken besteht die Möglichkeit, innerhalb von
TABEX/4 eine Katalogtabelle anstelle des internen Tabellenkatalogs der relationalen Datenbank
zu verwenden.
Zu diesem Zweck muss eine 'Katalog'-Tabelle in der relationalen Datenbank definiert werden.
Vorteile der Verwendung des TABEX Katalogs sind:
• Es ist auf einfache Weise festzulegen, welche Tabellen der RDB für die Pflege mit TABEX
vorgesehen sind.
• Ein Objektnamen kann explizit für Berechtigungen, Editor-Einstellungen, ... zugewiesen
werden.
• Es besteht die Möglichkeit, mehrere Kataloge in einer Datenbank für unterschiedliche
Anwendungsfälle zu definieren.
TABEX-Views
Mit Hilfe von Views kann die Anzeige von TABEX-Tabellen und von relationalen DatenbankTabellen eingeschränkt werden.
TABEX-Views erlauben Sichten auf Daten in TABEX-Datenbanken durch Angabe eines SELECTStatements analog zu Views in relationalen Datenbanken. Über SQLT-Tabellen können auch
Daten aus relationalen Datenbanken eingebunden werden.
Soweit als möglich entsprechen die TABEX-SELECT-Statements in Syntax und Möglichkeiten
den VIEW-SELECTs von relationalen Datenbanken.
Beispiel:
SELECT STAT_CODE,STAT_NAME,CONT_NAME
FROM STATES
LEFT JOIN CONTINENTS
ON STATES.CONT_CODE=CONTINENTS.CONT_CODE
WHERE CONT_CODE='E'
Das Ändern von Tabellendaten über Views ist nicht möglich.
4. SHS-Archivierung
Um die Anwendungsprogramme immer einen konsistenten Tabellenstand im SHS-Datenbereich
verfügbar zu haben, erfolgt das Neuladen von SHS-Datenbereichen mit Hilfe eines WorkDatenbereiches. Nach erfolgreichem Laden der aktuellen Tabellen in den Work-Datenbereich
wird dieser per Switch aktiviert.
Nach dem Switch wird die SHS-Archivierung gestartet, in deren 1. Stufe ein DatenbereichsÄnderungsprotokoll gespeichert wird. Dieses enthält als Information, welche Änderungsaktion
(Daten geändert, Definition geändert, Tabelle gelöscht, ...) für welche Tabelle sich aus dem
Neuladen ergeben hat. Mit der optionalen 2. Stufe werden alle geänderten und neu geladenen
Tabellen in der Archivdatenbank gespeichert. Damit kann über die Auskunftsfunktionen der zu
einem angegebenen Zeitpunkt aktive Stand von Tabellen abgefragt werden.
BOI - Newsletter 10
6
7 / 2013
4. SHS-Archivierung
Abb. SHS-Archivierung
Wichtiger Hinweis: Problem mit IBM Java 1.7.0 build 2.6
Es wird DRINGEND EMPFOHLEN, für den Application-Server mit der TABEX-Web-Anwendung
NICHT IBM Java 1.7.0 build 2.6 zu verwenden, da sonst nicht ausgeschlossen werden kann,
dass fehlerhafte Daten gespeichert werden.
Der Fehler liegt in der IBM Java-Implementierung der Methode setLength(int length) der Klasse
StringBuffer: Wenn die neue Länge length größer ist als die Ausgangslänge des StringObjekts, dann sollten (auch gemäß IBM-javadoc) die restlichen Zeichen mit dem Character null
(\u0000) gefüllt werden. Bei IBM Java 1.7.0 build 2.6 werden die restlichen Zeichen nicht mit
null gefüllt, sondern mit irgendeinem Speicherinhalt.
BOI - Newsletter 10
7
7 / 2013
Expertentipp 15 – CSV-Import/Export
Wenn Daten aus TABEX/4 exportiert - in MS EXCEL geändert - und wieder in TABEX/4 importiert
werden, können Probleme mit Änderungen auftreten, die von MS EXCEL automatisch
durchgeführt wurden (z.B. Entfernen führender Nullen).
Ein Beispiel für eine Exportdatei:
"PRODNR";"PRODNAME";"PRODGRP";"PRODPREIS"
"000010";"Zange
";"Werkzeug
"000012";"Relay
";"Elektrik
"000013";"Saege
";"Werkzeug
"000045";"Welle
";"Mechanik
"000050";"Spray
";"Werkzeug
";"65"
";"52,12"
";"89,99"
";"39,59"
";"20,8"
MS EXCEL entfernt diese Nullen beim Import in EXCEL. Wird nun in MS EXCEL wiederum eine
CSV-Datei erzeugt, fehlen diese führenden Nullen.
In unserem Beispiel wurde von EXCEL folgende Datei generiert:
PRODNR;PRODNAME;PRODGRP;PRODPREIS
10;Zange
;Werkzeug
12;Relay
;Elektrik
13;Saege
;Werkzeug
45;Welle
;Mechanik
50;Spray
;Werkzeug
;65
;52,12
;89,99
;39,59
;20,8
Um diese Datei wieder korrekt in TABEX/4 importieren zu können, müssen die betreffenden
Character-Felder in TABEX/4 mit dem Format Numeric (N) oder als Picture (PI) definiert
werden. Dann ergänzt TABEX/4 beim Import wieder die führenden Nullen.
Um fehlerhafte Daten vor dem Import in TABEX/4 zu erkennen, besteht die Möglichkeit, mit den
in TABEX/4 zu importierenden Daten VOR dem Speichern einen Tabellenvergleich mit dem
letzten in TABEX/4 gespeicherten Stand einen Tabellenvergleich durchzuführen.
Dazu sind folgende Schritte nötig:
•
•
•
•
•
Icon 'CSV-Import' drücken
auf Icon 'mit anderer Tabelle vergleichen (Ctrl+D)' drücken,
im folgenden Dialog 'Auswählen Datenbank für Vergleich' keine Datenbank auswählen,
sondern nur auf das Icon 'auswählen (Alt+Ctrl+Shift+Right)' klicken (dadurch wird die
aktuelle TABEX-Datenbank ausgewählt) und die Tabelle auswählen.
Danach werden alle Änderungen in Form eines Differenz-Protokolls angezeigt.
Mit dem Icon 'Vergleichtabellen ein-/ausblenden' können auch die Vergleichtabellen
(vorherige und aktueller Stand) ausgeblendet werden. Dann wird das gesamte DifferenzProtokoll angezeigt.
Sie finden unseren aktuellen Expertentipp auch im BOI Wiki:
http://www2.boi.at/boiwiki/index.php/Hauptseite
BOI - Newsletter 10
8
7 / 2013
BOI GmbH
Die BOI GmbH ist das führende Unternehmen für performantes, sicheres und komfortables
Tabellenmanagement.
Seit über 30 Jahren verbindet die BOI GmbH höchste Softwarequalität mit herausragendem
Service. Namhafte TOP Unternehmen aus den Bereichen Versicherungen, Finanzdienstleistungen,
Industrie und Dienstleistungen setzen seit vielen Jahren auf die Lösungen der BOI GmbH, wenn
es um die Pflege sensibler Daten und andere Herausforderungen ihres Datenmanagements geht.
Unser Leitprodukt TABEX/4 bietet
•
zuverlässigen Tabellenzugriff mit höchster Performance – schnell, sicher, problemlos
•
ergonomische und einfach zu bedienende Tabellenverwaltung, die höchsten
Sicherheitsansprüchen und Compliance-Erfordernissen entspricht: tausende Tabellen
unterschiedlichster Größe pflegen – einfach, fehlerfrei, komfortabel
•
unbegrenzte Arbeit mit Tabellen über alle Plattformgrenzen hinweg und mit allen
Datenbanken (copy&move).
Für weitere Informationen können Sie sich gern jederzeit an uns wenden.
Impressum
BOI GmbH
Der Newsletter 11 wird Anfang Februar 2014
erscheinen.
Spazgasse 4
Als Kunde der BOI Software GmbH erhalten Sie
den BOI - Newsletter an Ihre Email-Adresse
zugesandt.
A - 4040 Linz, Austria
Telefon: +43 (0) 732 / 736423 - 0
Fax:
+43 (0) 732 / 736423 - 2
Sie können den Newsletter auf unserer Website
http://www.boi.at abonnieren oder als PDFDokument downloaden, und natürlich auch
jederzeit wieder abbestellen.
Email: [email protected]
Web:
http://www.boi.at
FN 81632y Landesgericht Linz
Wir freuen uns über Ihre Rückmeldungen!
UID: ATU24421409
Redaktion: [email protected]
© BOI Linz, 2013
BOI - Newsletter 10
Gabriele Kasper
9
7 / 2013
Herunterladen