iQueryTransfer

Kurzübersicht

Mit dem Tool IBM i Query Transfer, kurz IQT, können mit WRKQRY erstellte Abfragen aus der IBM i (alias System i, alias AS/400) maschinell ausgelesen werden. Die Definition einer Abfrage steht anschließend als einfaches XML Dokument zur Verfügung.

Softwarehersteller von alternativen Berichtslösungen werden damit in die Lage versetzt, für bestehende WRKQRY-Abfragen ein Migrationstool, für ihre spezifische Lösung, zu erstellen.

Hintergrund

Gerne wurde in der Vergangenheit das bordeigene WRKQRY / RUNQRY für Abfragen verschiedenster Art auf der IBM i verwendet. Tausende, hiermit definierte Abfragen, sind auch heute noch im produktiven Einsatz und teilweise durchaus “mission-critical” für den täglichen Ablauf.

Leider befindet man sich mit WRKQRY in einer Sackgasse, denn die IBM pflegt diese Lösung schon seit längerer Zeit nicht weiter. Themen wie Unicode, Mobilgeräte und viele anderen Anforderungen, können mit dieser Lösung nicht mehr abgedeckt werden.

Viel zu spät hat IBM mit Web Query, als alternativen Lösungsansatz, reagiert. Zudem erfordert Web Query (gegenüber WRKQRY) eine beachtliche Einarbeitung ins Thema, was die Akzeptanz nicht gerade beflügelt hat.

In dieser Zwischenzeit haben sich viele Alternativen zu WRKQRY entwickelt, teils von Tool-Hersteller, teils von Software-Hersteller, welche ihre Produkte mit einer solchen Funktionalität anreicherten. Alle Alternativen, auch Web Query von IBM, haben einen gemeinsamen Nenner: Sie können keine bestehenden Queries von der IBM i importieren.

Der Grund hierfür ist, dass weder das OS/400 selbst, noch irgendeiner der Toolhersteller, das Auslesen von IBM i Query Definitionen (WRKQRY) oder gar deren Migration hin zu einer anderen Lösung, unterstützt. Entgegen mancher Beteuerung seitens der IBM, kann auch Web Query dies letztlich nicht wirklich. Web Query kann bestehende Queries aufrufen und deren Ergebnisse in seine eigene Abfrage einbinden, damit werden aber bspw. Unicode-Felder weiterhin nicht unterstützt.

Der fachkundige Experte wird einwerfen, dass mit RTVQMQRY das Auslesen einer Query Definition doch sehr wohl möglich ist. Dem muss ich ein Stück weit zustimmen, aber auch gleich widersprechen. RTVQMQRY wandelt eine Query Definition in ein SQL Statement und speichert dieses bei Bedarf als Quelldatei ab. Aber, die Metainformationen, wie Überschriften, etc., werden hiermit nicht zur Verfügung gestellt.

Mit IQT (IBM i Query Transfer) ist erstmalig das Auslesen von Query Definitionen möglich. Die Definition der Queries werden in ein einfaches XML-Format überführt. Es mag erstaunen welches „API“ IQT dazu verwendet. Nein, es werden keine undokumentierten APIs aufgerufen, es wurde nichts in MI programmiert und es wird auch kein SAVF ausgelesen. IQT setzt auf eine gut dokumentierte „Schnittstelle“ auf – den 5250 Bildschirm. IQT baut im Hintergrund eine Verbindung zur AS/400 auf und beschafft sich die notwendigen Daten über die bekannten Dialogbildschirme.

IQT, alleine verwendet, ist aber vergleichsweise nutzlos. Erst in Verbindung mit einem weiteren Stück Software, welche diese nun maschinenlesbaren Queries in das Zielformat konvertiert, wird ein für den Anwender nützliches Migrationstool daraus. Eine solche zweite Schicht zu entwickeln, steht in der Verantwortung des jeweiligen Anbieters.

Interesse?

Sollten Sie als Softwarehersteller Interesse an IBM i Query Transfer haben nehmen Sie einfach Kontakt mit mir auf.

Sollten Sie als Anwender den Komfort einer Migration von IBM i Abfragen missen, nehmen Kontakt mit Ihren Softwarehersteller auf. Sollte dieser aus technischen Machbarkeitsgründen „abwinken“, dürfen Sie gerne auf diesen Lösungsansatz hinweisen.