Deutschland GmbH Migrating to Genero
Jan ADAPTRIS Deutschland GmbH 2 Our contact Adaptris Deutschland GmbH Hollerallee Bremen +49 (0)421 /
Jan ADAPTRIS Deutschland GmbH 3 Agenda Why migrate to Genero? Why change to a GUI? Project description - (objectives, before & after) Screen conversions Program conversions Our experience with Genero
Jan ADAPTRIS Deutschland GmbH 4 Why migrate to Genero? Why Migrate to Genero?
Jan ADAPTRIS Deutschland GmbH 5 How did we arrive at Genero? Our customers develop in Informix 4GL Existing internal Informix and I-4GL skill set Existing experience converting text to GUI Genero’s concept convinced us Why migrate to Genero?
Jan ADAPTRIS Deutschland GmbH 6 Example converting text to GUI on an AS/400 Why migrate to Genero?
Jan ADAPTRIS Deutschland GmbH 7 Critical Sucess Factors: Minimal modifications to source code Quick results Perspectives for future development Portability (must support Linux) Why migrate to Genero?
Jan ADAPTRIS Deutschland GmbH 8 Why Convert to a GUI? Why convert to a GUI?
Jan ADAPTRIS Deutschland GmbH 9 Why should you convert to a GUI? State-of-the-art design - user acceptance, competitive positioning User ergonomics - users now familiar with intuitive GUI paradigm Powerful new features - list boxes, images, other widgets... Why convert to a GUI?
Jan ADAPTRIS Deutschland GmbH 10 GUI requirements: Mass data entry easier from a keyboard data entry programs optimised for no mouse Adhere to GUI standards - respect the GUI paradigm Why convert to a GUI?
Jan ADAPTRIS Deutschland GmbH 11 Project description Conversion Parameters
Jan ADAPTRIS Deutschland GmbH 12 Project description Projects: Two conversions for two customers Original applications developed by Adaptris Customers developed bespoke improvements
Jan ADAPTRIS Deutschland GmbH 13 Project description Both applications: Highly specialized w/ complex business logic Informix 4GL Genero SCO Unix Linux Development guidelines existed - but not always 100 % adhered to
Jan ADAPTRIS Deutschland GmbH 14 Project A: Perform 1:1 conversion Very short term - three weeks to convert Conversion 100% executed by Adaptris Future development performed by customer Project description Key metrics: 354 programs modules 625 screens lines of source code
Jan ADAPTRIS Deutschland GmbH 15 Project description Key metrics: 242 programs modules 596 screens lines of source code Project B: Conversion with significant enhancements Medium term – two man months to convert Conversion executed in tight collaboration at customer site Future development performed by customer
Jan ADAPTRIS Deutschland GmbH 16 Screen conversions Screen Conversions
Jan ADAPTRIS Deutschland GmbH 17 Project A – screens were… … divided into sub programs – header and data areas … peppered with special characters – alphanumeric ‘frame’ characters … optimized for 25x80 text screens – not changed for the 1:1 conversion Screen conversions
Jan ADAPTRIS Deutschland GmbH 18 Screen head Data area Pop up windows (like selections) Menu Schema of the old text screens: Header was output by a sub program Sometimes overlaid “windows” were used Screen conversions
Jan ADAPTRIS Deutschland GmbH 19 Typical screen layout: Frame Characters! Header Menu Data area Screen conversions
Jan ADAPTRIS Deutschland GmbH 20 SCREEN { ┌──────────────────────────────────────────────────────────────────────alkon02┐ │ ANREDE-KZ :[a] [a1 ] ZUORDNUNG :[a7 ]│ │ BERUF/BRANCHE :[a2 ] SPRACHEN-SS :[a8 ] │ │ TITEL :[a3 ] GEBURTSTAG :[a9 ]│ │ VORNAME :[a4 ] │ │ NACHNAME/FIRMA:[a5 ] ┌─────────────────────────┐ │ │ NAME 3 :[a6 ] │ SUCHBEGRIFF :[s1 ] │ │ ├─────────────────────────────────────────────────┤ ├─┤ │ POSTFACH :[b1 ] │ ANSCHRIFT-NR :[s2 ] │ │ │ STRASSE :[b2 ] └─────────────────────────┘ │ │ LAND-SS LAND :[b3 ] [b4 ] │ │ PLZ ORT BL :[b5 |b6 |b7 ] [c ]│ │ ORT ALT+INFO :[b8 |b9 ]│ ├─────────────────────────────────────────────────────────────────────────────┤ │ KOMMUNIKATION : ART LANDVORWAHL ORTVORWAHL ANSCHLUSS KURZWAHL ANZ │ │ [k1 ][k2 ][k3 ][k4 ][k5 ] [d] │ └─────────────────────────────────────────────────────────────────────────────┘ } Typical screens with frame characters Screen conversions
Jan ADAPTRIS Deutschland GmbH 21 Console text output – data data area only Screen conversions
Jan ADAPTRIS Deutschland GmbH 22 SCREEN { alkon02+ | ANREDE-KZ :[a] [a1 ] ZUORDNUNG :[a7 ]| | BERUF/BRANCHE :[a2 ] SPRACHEN-SS :[a8 ] | | TITEL :[a3 ] GEBURTSTAG :[a9 ]| | VORNAME :[a4 ] | | NACHNAME/FIRMA:[a5 ] | | NAME 3 :[a6 ] | SUCHBEGRIFF :[s1 ] | | | POSTFACH :[b1 ] | ANSCHRIFT-NR :[s2 ] | | | STRASSE :[b2 ] | | LAND-SS LAND :[b3 ] [b4 ] | | PLZ ORT BL :[b5 |b6 |b7 ] [c ]| | ORT ALT+INFO :[b8 |b9 ]| | KOMMUNIKATION : ART LANDVORWAHL ORTVORWAHL ANSCHLUSS KURZWAHL ANZ | | [k1 ][k2 ][k3 ][k4 ][k5 ] [d] | } Definition converted ASCII / ANSI Character conversion needed first, if moving to a UTF-8 file system Screen conversions
Jan ADAPTRIS Deutschland GmbH 23 GUI output Screen conversions
Jan ADAPTRIS Deutschland GmbH 24 GUI screens Have no title (“screen”) Special characters are displayed Frame characters are displayed untouched If converting to a UTF-8 file system these characters need replacing first Screen conversions
Jan ADAPTRIS Deutschland GmbH 25 Adaptris developed a tool to analyse and convert these old screens The conversion program Deleted frame characters Redefined screen layouts with their names Added ‘groups’ and ‘grids’ to replace frame characters Created real, resizable GUI tables Screen conversions
Jan ADAPTRIS Deutschland GmbH TOOLBAR LAYOUT (text="kowin_02") VBOX GROUP (text="") GRID { ANREDE-KZ [a] [a1 ] ZUORDNUNG [a7 ] BERUF/BRANCHE [a2 ] SPRACHEN-SS [a8 ] TITEL [a3 ] GEBURTSTAG [a9 ] VORNAME [a4 ] NACHNAME/FIRMA [a5 ] NAME 3 [a6 ] SUCHBEGRIFF [s1 ] } END -- GRID END -- GROUP GROUP (text="") GRID { POSTFACH [b1 ] ANSCHRIFT-NR [s2 ] STRASSE [b2 ]... Result after conversion (1/2): Strip frame characters and add Genero screen layout syntax Screen conversions
Jan ADAPTRIS Deutschland GmbH LAND-SS LAND [b3 ] [b4 ] PLZ ORT BL [b5 |b6 |b7 ] [c ] ORT ALT+INFO [b8 |b9 ] } END -- GRID END -- GROUP GROUP (text="") GRID { KOMMUNIKATION ART LANDVORWAHL ORTVORWAHL ANSCHLUSS KURZWAHL ANZ [k1 ][k2 ][k3 ][k4 ][k5 ] [d] } END -- GRID END -- GROUP END -- VBOX END Screen conversions Result after conversion (2/2): Strip frame characters and add Genero screen layout syntax
Jan ADAPTRIS Deutschland GmbH 28 Conversion protocol: INFO: :53: Starte Konvertierung: INFO: :53: Eingabedatei: per_in\kowin_02.per INFO: :53: Ausgabedatei: per_out\kowin_02.per INFO: :53: Die Ausgabedatei existiert und wird überschrieben INFO: :53: Zeilen gelesen INFO: :53: Screen startet Zeile 3 INFO: :53: LAYOUT & VBOX eingefügt; O-Zeile 2 INFO: :53: GROUP / GRID beginnt; O-Zeile 5 INFO: :53: VBOX beendet; O-Zeile 12 INFO: :53: GROUP / GRID beginnt; O-Zeile 12 INFO: :53: VBOX beendet; O-Zeile 18 INFO: :53: GROUP / GRID beginnt; O-Zeile 18 INFO: :53: LAYOUT beendet; O-Zeile 22 INFO: :53: Zeilen geschrieben Screen conversions
Jan ADAPTRIS Deutschland GmbH 29 Screen after automatic conversion: Screen conversions
Jan ADAPTRIS Deutschland GmbH 30 And after 1 minute of manual fine-tuning: Screen conversions
Jan ADAPTRIS Deutschland GmbH 31 SCREEN { ┌──────────────────────┬─────────┬─────┬───────┬──────────────────┬───────────────alkon55 ┐ │ NAME/FIRMA │ SUCHB │ LKZ │ PLZ │ ORT │ STRASSE │ ├──────────────────────┼─────────┼─────┼───────┼──────────────────┼──────────────────────┤ │ [a ] │ [b ] │ [c ] │ [d ] │ [e ] │ [f ] │ └ ──────────────────────┴─────────┴─────┴───────┴─────────────────┴─────────────────────── ┘ } Table Definition with special frame characters Screen conversions
Jan ADAPTRIS Deutschland GmbH 32 Table output without change Screen conversions
Jan ADAPTRIS Deutschland GmbH 33 Output after converting Automatic Table properties without coding: Sorting rows (click on row header) Switch rows on/off (visible/invisible) Interchange rows Scrollbar Screen conversions
Jan ADAPTRIS Deutschland GmbH 34 ¨········································································lbn12¸ ¦ ÜBERSICHT ROHSTOFF ¦ ····································¼·············¼··························¾ ¦ ARTIKEL ¦ BESTAND ¦ LETZTE ÄNDERUNG ¦ ¦ARTNR¦ BEZEICHNUNG ¦ KG ¦ ZUGANG ¦ ABGANG ¦KORREKTU¦ ·····¬······························¬·············¬········¬········¬········¾ [a1 |a2 |a3 |a4 |a5 |a6 ] ª·····½······························½·············½········½········½········º Problems with tables If we have several lines of row description Note: this is what the screen description looks like without any character set conversion Screen conversions
Jan ADAPTRIS Deutschland GmbH 35 ¨········································································lbn12¸ ¦ ÜBERSICHT ROHSTOFF ¦ ····································¼·············¼··························¾ ¦ ARTIKEL ¦ BESTAND ¦ LETZTE ÄNDERUNG ¦ ¦ARTNR¦ BEZEICHNUNG ¦ KG ¦ ZUGANG ¦ ABGANG ¦KORREKTU¦ ·····¬······························¬·············¬········¬········¬········¾ [a1 |a2 |a3 |a4 |a5 |a6 ] ª·····½······························½·············½········½········½········º Problems with tables If we have several lines of row description Screen conversions
Jan ADAPTRIS Deutschland GmbH 36 Example: Input fields and table in one screen Screen conversions
Jan ADAPTRIS Deutschland GmbH 37 Project B – conversion with enhancements Reorder input fields (better overview) Create screen space with new widgets (tabs) Associative access (check box, combo box) Pictures (e.g. for articles in stock) Enhanced copy and paste (whole tables) Examples... Screen conversions
Jan ADAPTRIS Deutschland GmbH 38 Screen conversions
Jan ADAPTRIS Deutschland GmbH 39 Screen conversions
Jan ADAPTRIS Deutschland GmbH 40 Program conversions Program Conversions
Jan ADAPTRIS Deutschland GmbH 41 Project A – 1 : 1 Created script to build make ‘. mak ’ files - created from Informix program table Conversion tool: - removed CLOSE WINDOW SCREEN - removed screen ‘header’ code - changed SCO printer control to Linux raw data Program conversions
Jan ADAPTRIS Deutschland GmbH 42 audru_module= \ /u80/kun/ALLGM/GP/gpbda_10.42m \ /u80/kun/ALLGM/GP/gpdrs_20.42m \ /u80/kun/ALLGM/GP/gpgen_10.42m \ /u80/kun/ALLGM/GP/gpmes_20.42m \ /u80/kun/ALLGM/GP/gpope_10.42m \ /u80/kun/ALLGM/GP/gpsel_20.42m \ /u80/kun/ALLGM/GP/gpszr_10.42m \ /u80/kun/BOECK/AU/aaglb_10.42m \ /u80/kun/BOECK/AU/audru_20.42m \ LIB=$(FGLDIR)/lib/libfgl4js.42x \ $(FGLDIR)/lib/libfgl.42x \ audru_module_base=$(notdir $(audru_module)) all:: audru.42r clean:: rm -f audru.42r $(audru_module) audru.42r: $(audru_module) fglrun -l -o audru.42r $(audru_module_base) $(LIB) Example: Macro script for make compilations Program conversions
Jan ADAPTRIS Deutschland GmbH 43 Project B – conversion with enhancements Enhanced table reads (now dynamic arrays) Added code for toolbar and menus ( on action ) Images (display to image field) Copy and paste of whole table data Read / write XML Program conversions
Jan ADAPTRIS Deutschland GmbH 44 Adaptris and Genero Our Experience with Genero
Jan ADAPTRIS Deutschland GmbH 45 Our experience w/ Genero Program conversions: Genero tighter on I4GL syntax – e.g. number of function call parameters must match I4GL programs will run without change Future orientated add-ons (libraries) Use old and new techniques in parallel - use.per forms or more powerful XML Dynamic User Interface New integration possibilities - OLE access to Office Progressive, step by step improvements
Jan ADAPTRIS Deutschland GmbH 46 Thank you for listening