BDL 5.00 new features

Features added in 5.00 releases of the Genero Business Development Language.

Important:

This page covers only those new features introduced with the Genero BDL version specified in the page title. Check prior new features pages if you migrate from an earlier version. Make sure to also read the upgrade guide corresponding to this Genero version.

Corresponding upgrade guide: BDL 5.00 upgrade guide.

Previous new features page: BDL 4.01 new features.

Table 1. Core language
Overview Reference
Starting at 5.00.03
New base.Channel method to get the exit status of the pipe child process. See base.Channel.getExitStatus.
Related upgrade notes
Table 2. User interface (language features)
Overview Reference
Support for front-ends of different major version number. See VM and front-end compatibility
Proper action default attributes in FGLDIR/lib/default.4ad, for special actions such as enterforeground/enterbackground. See List of predefined actions, Using action defaults files.
Form file syntax allows now string literal for ACCELERATOR* attributes. See ACCELERATOR attribute.
Starting at 5.00.03
Declarative dialogs support parameters (SUBDIALOG). See Declarative dialogs (DIALOG - at module level).
Related upgrade notes
Table 3. User interface (front-end features)
Overview Reference
Starting at 5.00.03
New method UseGbcThemeVariables() in gICAPI web components, to use GBC theme variables in your code. See gICAPI.UseGbcThemeVariables()
Related upgrade notes
Table 4. SQL databases
Overview Reference
Support for Dameng® database 8. See Dameng database server.
Support for MariaDB 11. See Database driver specification (driver) and Oracle MySQL / MariaDB.
Support for Oracle® database 23c, with support for native BOOLEAN and JSON types. See Oracle Database, ORACLE BOOLEAN type, Oracle JSON data type.
Starting at 5.00.02
New FGLPROFILE entry to define PostgreSQL client trace file. See dbi.database.dsname.pgs.trace.file.
Starting at 5.00.03
Support for PostgreSQL 17. See Database driver specification (driver) and PostgreSQL.
Starting at 5.00.04
Support for Oracle MySQL 8.4. See Database driver specification (driver) and Oracle MySQL / MariaDB.
Related upgrade notes
Table 5. Tools
Overview Reference

The --web-content option of the fglgar war command to create a war file is now mandatory. It must specify the path to the Java Web Content directory of the JGAS installation.

See Changes to fglgar and options table for fglgar war.
The fgldbsch tool has a new -sl ("sloppy") option, to skip detection of invalid table or column names. See Command tools changes
Related upgrade notes
Table 6. Web Services
Overview Reference
The Genero Web Services JSON library (json) has been added. This library provides classes and methods to perform:
  • JSON manipulation with a Streaming API for JSON
  • Serialization of BDL variables in JSON
See
Serializer functions have been added to the com.HttpRequest and com.HttpResponse classes to start and end HTTP requests and responses streaming as JSONWriter and JSONReader objects. Go to

The fglrestful tool now supports the new JSON API (json) and generates code with this new API. However, it is possible to use the legacy JSON API (util.json) using the option --legacyJSONApi.

See fglrestful
The JSONOneOf and JSONSelector attributes are added to support the Swagger and OpenAPI oneOf JSON schema property. See
The JSONRequired attribute is added to support the Swagger and OpenAPI required JSON schema property. See JSONRequired
The JSONAdditionalProperties attribute is added to support the Swagger and OpenAPI AdditionalProperties JSON schema property. See JSONAdditionalProperties
The FGLPROFILE has a new entry, security.global.options, added to support legacy OpenSSL 1 options. See New security.global.option in FGLPROFILE to allow legacy OpenSSL 1 options
The FGLPROFILE has a new entry, security.global.verifyserver, added to support certificate validation. See New security.global.verifyserver entry in FGLPROFILE to support certificate validation process
New fglwsdl option -SSLOptions added to support legacy OpenSSL 1 options. See fglwsdl option -SSLOptions to support legacy OpenSSL 1 options and fglwsdl.
Set the HTTP response status code (200 - 299) of a web service operation with com.WebServicesEngine.SetRestStatus. See com.WebServiceEngine.SetRestStatus
A new method allows the return of a specific header in an HTTP error response. See WSErrorHeader.
The WSRetCode attribute can be set with the "2XX" value to allow setting the response status with any code from 200 to 299 dynamically at runtime, added to support the Swagger and OpenAPI specification. See
The WSTypeDescription high-level REST attribute is added to support the Swagger and OpenAPI description JSON schema property. See WSTypeDescription
The WSDescription attribute can be used on JSON schemas in addition to REST function input and output parameters, added to support the Swagger and OpenAPI specification. See
The WSPreProcesssing and WSPostProcessing attributes are added to support preprocessing and postprocessing for REST callback functions. See
The REST engine WSContext variable has three new entries: RequestPATH, RequestVERB, and RequestOPERATION to support preprocessing and postprocessing for REST callback functions. See WSContext
STRING-typed return parameter in OAUTH API function. See Change to OAuthAPI.GetIDSubject returns.
The OAuthAPI has a new method called OAuthAPI.GetIdRoles() to explicitly retrieve authorization roles from ID tokens. See New method GetIdRoles() for retrieving authorization roles and OAuthAPI.GetIdRoles.
The Genero OpenIDConnect service now decodes ID tokens containing roles instead of scopes, and creates a new environment variable called OIDC_ROLES containing the list of roles. See OpenIDConnect service supports OIDC_ROLES
Starting at 5.00.02
The FGLPROFILE has a new entry, security.global.certificate.selfsigned.preload, added to preload the global certificate and key at the start of the application instead of at the first HTTPS connection. See New security.global.certificate.selfsigned.preload entry in FGLPROFILE

The fglrestful tool now supports adding a prefix in front of named types in a JSON schema when generating the GWS client stub. The --typePrefix option is added.

See fglrestful

The GWS GeneroAccessService service has enhancements to how scopes are managed. The Genero Identity Provider can now secure a web service from scopes set in the configuration file (xcf).

See The GeneroAccessService supports scopes set in configuration file
Starting at 5.00.03
New fglwsdl option -oauth added to support OAuth. See fglwsdl oauth option added
The OAuthAPI has a two new method to use with Single sign-on authentication for mobile apps accessing web services:
  • OAuthAPI.RetrievePasswordTokenForNativeApp()
  • OAuthAPI.InitNativeApp()
See New OAuthAPI methods to use with SSO authentication for mobile apps accessing web services
The ImportOAuth tool, which registers endpoints provided by an identity provider, has an update to its --show option to display the identity provider's registration endpoint. See Using an identity provider's registration endpoint
The json.Serializer.setOption() and json.Serializer.getOption() methods are added to support the global configuration of JSON serializer options such as allowNullAsDefault. See:
The allowNullAsDefault option is added to json.Serializer to support null values during deserialization even if the JSON type is not explicitly specified. By default allowNullAsDefault is FALSE. You can set this option with the json.Serializer.setOption() method. See:
The fglrestful tool has enhancements:
  • It detects the nullable: true keyword set for OpenAPI 3.0 and generates json_null="null" attribute in BDL variables to allow nulls.
  • It generates the nullable: true keyword in the OpenAPI document when GWS detects json_null="null" on a BDL type.
See Using the json_null="null" attribute with fglrestful
Related upgrade notes
Upgrade notes for web services. See Web Services changes
Table 7. Mobile apps (GMA 5.00 and GMI 5.00)
Overview Reference
New front calls introduced in V4.01 front end maintenance releases. See New front calls.
Starting at GMA-5.00.02
New gmabuildtool options --custom-foreground-service-type and --background-explanation. See Specifying the Android foreground service type.
Related upgrade notes
Upgrade notes for GMA. See Genero Mobile for Android (GMA) 5.00 changes.
Upgrade notes for GMI. See Genero Mobile for iOS (GMI) 5.00 changes.