Webservice –> 5250 Dialog –> Webservice

Mit RPG richtig schnell!

Kennen Sie das?

Ihr Vertrieb hat sich eine geniale, neue, mobile App (Alternativ auch Web App, Cloud App, was auch immer App) für Ihre Kunden ausgedacht, hat der Geschäftsleitung schon wunderschön, grafisch dargestellt, wie sich Ihre Umsatzzahlen damit innerhalb von 12 Monaten verdoppeln und Ihre Geschäftsleitung macht jetzt Druck, weil diese geniale neue App nun dringend an Ihr vorhandenes (IBM i) Backend angebunden werden muss.

Die App soll lediglich ein paar Daten aufnehmen, an das Backend schicken und von dort ein paar Daten zurück bekommen. 5250 Programme für genau diese Funktion gibt es so oder so ähnlich schon seit vielen Jahren (sagen wir mal Jahrzehnten…).
Also kann das ja alles nicht so schwer sein…

Natürlich wird die IT Abteilung erst ins Boot geholt, nachdem der Vertrieb bereits Unsummen für die neue App ausgegeben hat und ggf. den Kunden schon ein Datum für die Verfügbarkeit der neuen App mitgeteilt hat….

Der/die praktisch veranlagte RPG Entwickler/in schaut sich das an, greift in seiner Not zu IBM i Bordmitteln, um einen Webservice zu erstellen und merkt mitten bei der Umsetzung plötzlich, dass es gar nicht so einfach und schnell geht, die gewünschten Daten in einen Webservice zu packen.

Zwar gibt es 5250 Dialoganwendungen, die genau diese Daten entgegennehmen und validieren und ggf. genau die gewünschten Daten ausgeben, die die App nachher haben will (z.B. kundenspezifische Preise o.ä.), aber diese Daten werden in 20-30 Jahre alten, gewachsenen RPG Monolithen aufbereitet und stehen nirgends in der Datenbank.

Eine erste Analyse dieses oder dieser RPG Monolithen zeigt, dass der oder die Entwickler/in schon lange in Rente ist bzw. selbst wenn nicht, gar nicht mehr weiß, was er/sie 1988, 1991, 1998 oder wann auch immer da zusammenprogrammiert hat und die Funktionalität zu extrahieren würde einige Manntage oder gar Mannwochen benötigen.

Falls der Mensch, der nun mit dieser undankbaren Aufgabe betraut wurde (die natürlich neben dem normalen Tagesgeschäft „mal schnell“ gemacht werden soll und nicht viel kosten darf) diesen Artikel hier (oder einen
der vielen anderen von mir) gelesen hat, ruft er mich spätestens jetzt an.

So oder so ähnliche Projekte kommen bei mir in den letzten Jahren immer häufiger auf den Projektplan.

Glücklicherweise können wir diesen Kunden i.d.R. sehr schnell und einfach helfen.

Virtueller Terminal Emulator


Der Trick heißt: „Virtueller Terminal Emulator für ILE“.

Eine der vielen Funktionen, die IceBreak uns nämlich zur Verfügung stellt ist ein virtueller Terminalemulator.

D.h. wir können in einem RPG (oder Cobol, C oder gar CL) Programm, einfach ein virtuelles Terminal starten, uns dort anmelden und durch jede beliebige 5250 Anzeige navigieren – und das mit einfachem RPG (oder Cobol, C oder CL) Code!

Die Lösung für das o.g. Szenario können wir so ggf. in wenigen Stunden (manchmal sogar in unter einer Stunde!) komplett lösen indem wir:

  •         Einen IceBreak RPG Webservice erstellen, der mit der App kommuniziert
  •        Dieser bekommt von der App Daten im Json Format, die in vorhandene Dialog Anwendungen eingegeben werden müssen (z.B. Bestellungen, Registrierungsinformationen, Anfrage zu Lieferungen o.ä.)
  •        Im RPG Webservice starten wir ein virtuelles Terminal, melden uns mit einem dedizierten Benutzer an, navigieren zu der oder den 5250 Green Screen Anwendung/en, in welche die Daten eingegeben werden müssen und tragen sie dort per ILE Funktionen ein.
  •        Ggf. auftretende Validierungsfehler (falsche Kundennummer, falsche Artikelnummer, Lieferzeit, etc.) erkennen wir auf dem 5250 Bildschirm und liefern sie per Json an die App zurück.
  •        Hat alles geklappt greifen wir uns entsprechende Daten vom 5250 Bildschirm (wenn nötig auch aus mehreren verschiedenen Anwendungen oder Screens) und liefern sie der App als Json Daten zurück.
  •      Natürlich können wir in dieser App beliebige, weitere Daten per SQL in die Datenbank schreiben, Programme aufrufen, andere Webservices (auch auf anderen Plattformen) aufrufen, Daten aus beliebigen Datenquellen laden oder schreiben und und und…

Vorteile


Die Vorteile dieser Lösung liegen auf der Hand:

  • Man muss keine vorhandene, meist extrem gewachsene Anwendungslogik analysieren, um
    bestehende Dialogfunktionen auch in neuen Anwendungen direkt nutzen zu können.
  • Damit spart man Unmengen an Zeit. I.d.R. ist solch ein Service in wenigen Stunden erstellt. Eine Neuentwicklung der Funktionalität dauert i.d.R. mehrere Manntage, -Wochen oder gar Monate.
  • Durch die Nutzung von IceBreak nutzt man die schnellsten Web Services auf IBM i inkl. integriertem Load Balancing und Sicherheitsfeatures.
  • Bei Änderungen hat man nicht mehrere Stellen, an denen man die Logik anpassen muss.
  • Man braucht keinerlei teure Tools, die die Oberfläche mit proprietären Scriptsprachen Abgreifen
  • Die Entwicklung kann auch von Entwicklern ausgeführt werden, die nicht über intensives Firmenspezifisches Know How verfügen müssen – also z.B. auch von externen Entwicklern (Stichwort selektives Outsourcing).
  • Es verschafft einem Zeit die vorhandenen Altanwendungen bei Bedarf noch „richtig“ zu modernisieren – sprich zu modularisieren und ggf. mit neuen Architekturen (Stichwort Microservices – doch dazu in einem anderen Blog Beitrag demnächst mehr) umzusetzen.
  • u.v.m.

Die Möglichkeiten, die der virtuelle Terminalemulator bietet sind damit noch lange nicht erschöpft. Auch ohne die o.g. Anforderung kann man ihn z.B. verwenden, um sich auch für Batchanwendungen oder andere Webservices „mal schnell“ ein paar Daten aus Dialog Masken zu holen, an die man ansonsten nur mit aufwendiger Programmierung herankommt.
Beispiel seien die unzähligen Druckausgaben, die oft Daten enthalten, die sonst so nirgends stehen.

Auch Systemfunktionen können so via RPG Programmen automatisiert bzw. abgefragt werden. Auch wenn es noch keinen IBM i Service oder ähnliches dafür gibt oder noch nicht das dazu passende IBM i Release
installiert ist.

Ihre Idee ist gefragt

Sie haben weitere Ideen, was Sie damit machen können?
Dann freue ich mich über Ihre Email.

Die kreativsten Ideen, werden mit 2 Manntagen kostenloser Serviceleistung oder wahlweise einer neuen Apple Watch oder Samsung Galaxy Watch belohnt.

Es lohnt sich also.

Kommentar verfassen

Für Newsletter registrieren

Bleiben Sie immer auf dem Laufenden und erhalten Sie meine News rund um die IBM i und sonstigen IT Themen.

Beiträge