Mit Fusion5250 hat Valence eine Funktionslücke geschlossen. Für Anwender steht damit ein einfacher Weg zur Verfügung, um die bestehenden 5250-Anwendungen ohne Aufwand und mit geringem Risiko in ein Webportal zu integrieren. Die weiteren Möglichkeiten von Valence, um moderne Anwendungen zu entwickeln, erlauben dann eine schrittweise, bedarfsorientierte Modernisierung.

Seit seiner Vorstellung im Jahr 2008 hat Valence zahlreichen IBM i Entwicklern dabei geholfen, erstklassige Web- und Mobilanwendungen zu erstellen. Im Laufe der Jahre hat CNX dabei mehrere Entwicklungswerkzeuge wie AutoCode und AppBuilder bereitgestellt, die den Weg zur fertigen App so einfach wie möglich gestalten. Trotz dieser umfangreichen Modernisierungsmöglichkeiten haben Anwender aber immer auch die Anforderung, auf Bestandsanwendungen im 5250-Modus zugreifen zu können. Seit dem Valence Release 5.2+ ist das über die App Fusion5250 möglich.

Simon Muschel ist Projektverantwortlicher und Senior Developer bei der PKS Software GmbH. – Quelle: PKS Software GmbH

Fusion5250 kommuniziert über Websockets mit dem Anwendungsjob und wandelt den 5250-Datenstrom direkt im Browser in JSON-Segmente um. Auf Basis dieses JSON-Unterbaus sind viele nützliche Erweiterungen denkbar, z.B. die Einbindung von 5250-Sitzungen in AppBuilder Anwendungen oder auch in Webservices. Im Moment dient Fusion5250 aber noch als reiner Emulator. Sobald man die Fusion5250 App startet, wird man in eine Terminal-Sitzung auf der aktuellen Instanz eingeloggt. Aus Systemsicht ist diese Sitzung nichts anderes als eine 5250 Telnet Sitzung mit einem anderen Emulator.

Sitzungssteuerung alszentrale Funktion

Eine zentrale Funktion von Fusion5250 ist die Möglichkeit, die Sitzung über Macros zu steuern. So ist es möglich, mehrere Apps zu definieren, die den Anwender direkt an ausgewählte Punkte der 5250-Anwendung führen. Ein Fusion5250 Macro ist dabei einfach eine Liste von JSON Direktiven, die der App sagen, wo auf dem Bildschirm Werte eingefügt werden sollen und welche Funktionstaste gedrückt werden soll. Im Moment müssen Macros von Hand erstellt werden, in einem zukünftigen Valence Release will CNX dafür auch eine Aufnahme-Funktionalität zur Verfügung stellen. Alle Macros werden im IFS im Verzeichnis /resources/fusionmacros der Valence Instanz abgelegt. Ein Beispiel-Macro ‚sample_macro.json‘ ist als Referenz inkludiert.

Bedeutung der einzelnen Macro Elemente:

  • note: Notizen für Entwickler, z.B. eine Beschreibung der Macro-Funktionalität. Diese Direktive hat keine direkte Auswirkung auf das Macro.
  • showProgress: true oder false. Wenn man den Wert auf true setzt, wird bei Ausführung des Macros jede Bildschirmausgabe dargestellt. Bei false wird der Anwender direkt den Ergebnisbildschirm des Ablaufs sehen.
  • steps: eine Liste der einzelnen Schritte der Macro-Ausführung
  • row (muss zusammen mit col verwendet werden): positioniert den Cursor auf eine bestimmte Bildschirm-Koordinate.
  • type: Inhalt, der an der aktuellen Cursorposition ‚getippt‘ werden soll. Ersetzungswerte, die z.B. über die URL übergeben werden, können verwendet werden.
  • action: gibt an, welche Aktion ausgeführt werden soll. Gültige Werte sind F1, F2,…, F24, ENTER, PAGE_UP, PAGE_DOWN und ESC.
  • note: Kommentar.
  • shift: true oder false. Wenn man den Wert auf true setzt, wird bei der ausgeführten Aktion Shift mit ‚gedrückt‘, d.h. bei action=F12 und shift=true wird F24 ausgelöst.
  • alt: true oder false. Bei true wird bei der action die Taste ALT mit ausgelöst.
  • ctrl: true oder false. Bei true wird bei der action die Taste STRG mit ausgelöst.

Beispiel für ein Fusion-Macro-File – Quelle: PKS Software

Macro wird einfach mit App verbunden

Um ein Macro mit einer Fusion5250 App zu verknüpfen, muss man es einfach der URL als Query-Parameter hinzufügen (über die Konfiguration der App). Um also das Beispiel-Macro ‚sample_macro‘ zu verwenden, würde man als Pfad

/build/production/Fusion/index.html?macro=sample_macro

angeben. Auch Aufrufparameter sind möglich. Dazu kann man in der URL einen zusätzlichen Parameter wie folgt angeben:

/build/production/Fusion/index.html?macro=sample_macro&teil_nummer=1235213

und im Macro dann über [teil_nummer] darauf zugreifen. Fusion5250 fügt dann automatisch den korrekten Wert ein.

PKS Software

www.pks.de