GENERO 4.00 (vNext)

Early Access Program (EAP) subscriptions now open

Irving, Texas – March, 5th 2021 – Four Js is pleased to announce that subscription to the Early Access Program (EAP) for Genero 4.00 – referred to previously as ‘vNext’ in the product roadmap – is now open. This release comprises important new features that will improve your productivity and the user experience of your applications. The program itself opens on March 30th when you will gain access to the product packages.

If this is your first time participating in a Four Js EAP, please read the section “What is an EAP?”, where you will learn how to subscribe to this service.

The list of features highlighted in this announcement are not exhaustive. To find the complete list, read the “What’s New” and “Upgrade” sections provided in the appropriate User Guide. The “What’s New” section provides the full list of new features in the release. The “Upgrade” section tells you how to migrate from a previous version of Genero.

Additional features may be added during the EAP, so we recommend frequent visits to the forum.

Universal Rendering

Genero 4.00 inaugurates the standardization of ‘Universal Rendering’ (UR) for all user-interface front-ends.

This important change simplifies the development of new widgets, unifies screen rendering behavior across all types of APIs and replaces the individual native rendering engines provided by Genero Desktop Client (GDC), Genero Mobile for iOS (GMI) and Genero Mobile for Android (GMA). These individual native rendering engines are hereby deprecated in this release. They continue to be supported in version 3.20 and 3.10.

This change will not impact the execution of your application. If you use operating system dependent front-calls, they are fully supported by Universal Rendering.

This change also means your GDC, GMI and GMA applications will now run in a browser.

Universal Rendering renders screen forms in a browser

Responsive Layout

Genero 4.00 implements a new responsive web design paradigm called Responsive Layout (RL).

What is Responsive Layout?

Prior to this release, three ‘.per’ form description files were usually needed to support the three form factors required for the deployment of today’s modern applications ie: smartphones, tablets and desktops. With Responsive Layout only one .per form file is necessary through the use of new ‘.per’ syntax. This will greatly simplify cross-platform screen development and render the user interface more ergonomic.

Responsive Layout enables the design of screen forms by segmenting it into zones that will adapt automatically according to the available screen real-estate.

Key Features

  • GRID now ‘stretches’ its content to fit the available screen real-estate. STRETCH applies to a column(s) of fields keeping them properly aligned while filling the width of the device. It is possible to ‘stretch’ fields, while leaving labels untouched – a feature difficult to achieve with rival technologies. STRETCH is the default for mobile clients.

Key Features

  • Portait and landscape reorientation is automatic for layout containers, such as an HBOX or a VBOX.
  • The .per form description file includes new ‘responsive’ properties, where attribute values can depend on display size. These properties dynamically adapt to the size of the display.
  • In the above figure:
    • VBOX vb1 organizes HBOX hb1 and GRID gd2 vertically, no matter what screen size or orientation.
    • HBOX hb1 organizes TABLE tb1 and GRID gd1 horizontally by default, but vertically on small screens.
    • GRID gd1 will be hidden on small screens.
  • Gestures are enhanced for mobile, tablet, and other tactile devices.
    • Swipe left, swipe right on folders:

  • Three new table properties classic, listView, or flipView work equally on smartphones, tablets and desktops.




Business Development Language (BDL)

Core language

  • Reflection dynamically introspects and modifies variables.
  • Packages group modules for better source code organization.
  • Regular expressions enable pattern matching and replacements.
  • Definitions of functions, variables, constants and types can be mixed in a module.
  • VAR declares a program variable within a code block.
  • Record usage enhancements simplify the passing and returning of records to and from functions and records in expressions.
  • The IN(...) operator.
  • DICTIONARY variable definitions can be initialized with a literal.
  • In static SQL statements, program variables can be marked with a $ (dollar sign) to distinguish from database object names.

SQL Databases

  • UTF-8 database collations are supported in SQL Server CHAR/VARCHAR columns.
  • Support is improved for INTERVAL types with Oracle® DB.
  • PostgreSQL version 13 is supported.
  • National character type conversions for IBM DB2, IBM Netezza and SAP HANA:
    CHAR/VARCHAR SQL types in DDL statements can now be converted to NCHAR/NVARCHAR for IBM DB2 LUW, IBM Netezza and SQL HANA (for Unicode/UTF-8 storage).

New fglcomp options

  • --mark-host-variables marks all program variables in static SQL statements with a $ (dollar sign).
  • -W colname detects invalid column names in static SQL statements.
  • -W case detects symbol names that do not match exactly the name used in the definition of the symbol.
  • --fix-case makes symbol names match the name used in the definition of the symbol.

Genero Web Services (GWS)


  • The method setBodyChunk() of the com.HTTPRequest class enables or disables ‘chunk mode’ in an HTTP POST or PUT request.
  • HTTP status codes allow values between 100 to 999 as an HTTP response on the server side.


Better OpenAPI support

  • (Future EAP candidate) One REST service can support several resources.
  • The default REST format is JSON.
  • Generated named types are based on BDL type names, instead of anonymous types from the OpenAPI specification.
  • The high-level REST framework supports all HTTP verbs supported by the OpenAPI specification, including HEAD, OPTIONS, TRACE and PATCH.
  • The WSOptional attribute is supported for the input request body for POST, PUT and PATCHthe fglrestful tool will generate the two BDL functions necessary for such a service.
  • Error management has been enhanced in fglrestful.A new wsError RECORD is generated in the stub file. It provides details (error code and description) of unexpected errors returned by the Genero Web Server.
  • WSHeader supports complex types such as RECORDs and ARRAYs as specified in OpenAPI specification.


No global file is generated; no linking is required.

  • The fglwsdl tool generates one stub file for SOAP Web service. Modular types and variables are defined as PUBLIC in the stub. This enhancement replaces the globals file (.inc); however, the globals file is still supported with the -legacy option.
  • The fglwsdl -domHandler option has changed how callbacks are generated. You must provide a module name for the callback handler functions module.
  • The fglwsdl -s option takes a module name, identifying the module where the SOAP server operations are defined.

OpenIdConnect service provider

  • Bypass or configure IP or X-Forwarded-For during ID Token validation in the SSO handshake.

Genero Application Server (GAS & JGAS)

License consumption with browsers

  • Applications invoked from the same browser consume one user license only.

Better web server integration

  • The GAS supports HTTP/2. HTTP/2 is the default protocol when installing a web server configured for HTTPS.
  • The GAS supports use of X-Forward headers (protocol, host, and port) to improve the management of reverse proxy server, load balancer, and integrated cloud solutions.
    The ROOT_URL_PREFIX element is deprecated in favor of X-Forward headers.

Web services monitoring

  • (GAS only) Web services monitoring can monitor the performance of your services, set alarms, and analyze data.
    • The DATA_DIRECTORY element (added to MONITOR) configures a directory where Web services monitoring data is stored.
    • The ALERT_SCRIPT element (added to MONITOR) executes a script when alarms for Web services are raised.
    • The gasadmin tool provides new monitoring commands:

Application configuration enhancements

  • Dedicated HTTP headers can be set on each response for an application or service.
  • CloseAllOnMainExit supports the graceful stop of all child applications when the main application is closed.

Better web service integration

  • URL management can detect the REST web service URL part after the group/xcf.

Command line tool enhancement

  • The --pid-file option of the fastcgidispatch and httpdispatch commands retrieves the GAS process-id and writes it to a file on disk.

Genero Identity Provider (GIP)

Supports any database

  • GIP works with any database supported by Genero.

Migration tool

  • A migration tool helps you migrate the GIP database from v3.20 (based on SQLite) to the database of your choice

Custom properties

  • Custom properties can be set in your profile service.

Genero Ghost Client (GGC)

Scenario generator supports ‘snapshot’ in the logs (Future EAP candidate)

  • Scenario generator generates a callback function when a snapshot is encountered in the log, to perform verification in a BDL application.

API enhancements for better testing

  • An API can return all or part of the AUI tree.
  • Command line options or a file can provide user data using the ggcadmin or fglrun tool. The test scenario can fetch this data using the getUserData() function.
  • A BDL scenario can support multiple front-call registrations.
  • The scenario ID can be retrieved.

Performance and stress tests options

  • Perform stress tests by running multiple instances of the GGC using the --instance-count and --instance-delay options of the ggcadmin tool for tcp and ua.

Four Js License tools

Better performance

The Four Js licensing tools provides better performance.

  • $FGLDIR/etc/lmfgl profile is a new configuration file.
  • The flmprg command introduces minor changes.

fglWrt and greWrt 6.00 are compatible with Genero BDL 4.00 and Genero Report Writer 4.00 packages; they are not compatible with packages prior to 4.00.

How to subscribe ?

If you want to subscribe to the Early Access Program  you must have a Four Js web site account (“My Account”) that enables access to privileged technical information.

Four Js will send you an acknowledgment of your subscription within 24 hours (Monday -> Friday).

Upon approval, you will get access to the download section and the associated mailing list.

We appreciate your interest in pre-release access to our products, and value your feedback. Thank you for your participation in this important phase of our product development.

Best Regards,
The Four Js Development Team