What's new in Genero Business Development Language, v 2.50

This topic lists features added for the 2.50 release of the Genero Business Development Language.

Table 1. What's new in Genero Business Development Language, Version 2.50
Overview Reference
Dialog modularization. Declarative DIALOG blocks can be defined as module elements and reused with the SUBDIALOG keyword of procedural DIALOG blocks. See DIALOG block structure.
Form modularization. Use the new FORM layout keyword to include a sub-form in the current form specification file. See Form file structure.
Support for character length semantics to simplify UTF-8 programming.

See Length semantics settings.

The UTF-8 character set can be used on Microsoft™ Windows™ platforms by setting the LANG environment variable to .fglutf8. See Language and character set settings.
JSON (JavaScript™ Object Notation) utility classes. See The JSON class, The JSONObject class, The JSONArray class.
The base.Channel method dataAvailable(), to check for channel readability. See base.Channel.dataAvailable.
CLEAR SCREEN ARRAY instruction clears the values of all the rows of a form list (TABLE, TREE, SCROLLGRID). See CLEAR SCREEN ARRAY.
AUTONEXT attribute is allowed in DATEEDIT, SPINEDIT and TIMEEDIT fields. See DATEEDIT, SPINEDIT, TIMEEDIT.
BUTTONEDIT item type attribute NOTEDITABLE, to disable the field editor. See NOTEDITABLE attribute.
ON CHANGE fired when selecting a date in DATEEDIT calendar or when changing the value of a TIMEEDIT widget. See ON CHANGE block.
With IMPORT FGL, fglcomp now automatically compiles imported modules when needed. To avoid implicit compilation, use the --implicit=none option of fglcomp. See IMPORT FGL module.
The --resolve-calls or -W implicit fglcomp compiler options can be used to detected unresolved symbols. See IMPORT FGL module.
The fglrun option --print-imports can be used to find modules dependencies and use IMPORT FGL instead of traditional linking. See IMPORT FGL module.
Presentation style attributes ringMenuButtonTextHidden and actionPanelButtonTextHidden added to customize the default action view panels. See actionPanelButtonTextHidden, ringMenuButtonTextHidden.
Presentation style attribute thinScrollbarDisplayTime to define the display time of the thin scrollbar when scrolling in fixed screen arrays. See thinScrollbarDisplayTime
Presentation style attribute customWidget to define the widget to be used for a TEXTEDIT (and CHECKBOX). See TEXT EDIT customWidget and TEXT EDIT customWidget.
fglrun options --start-guilog and --run-guilog, to generate and replay a GUI protocol exchange. See Front-end protocol logging options.
The SQLite driver dbmsqt3xx is now statically linked with the SQLite library, except on platforms where the SQLite library is usually present such as Linux™ and Mac OS/X. See the SQLite adaptation guide.
Database driver for PostgreSQL 9.2: dbmpgs92x. This driver is similar to the prior PGS 9.x drivers, it is supported for strict binary compatibility with the PostgreSQL 9.2 client library and is compiled with the 9.2 libpq headers. See Database driver dbmpgs92x.
Database driver for IBM® DB2® UDB version 10: dbmdb2Ax. This driver is similar to the prior DB2 9.x driver, it is supported for strict binary compatibility with the DB2 10.x client library and is compiled with the 10.x CLI headers. See Database driver dbmdb2Ax.
Support for the Oracle RAW data type, in order to use the SYS_GUID() values generator. See SQL adaptation guide For Oracle Database 9.2, 10.x, 11.x, 12x.
FGLPROFILE entry for MySQL to specify the my.cnf client configuration file: dbi.database.dbname.mys.config. See Oracle MySQL specific FGLPROFILE parameters.
New security library provides classes and methods to support basic cryptographic features. Although added for Genero Web Services, can be used for any Genero application. See The security package.
New signature methods in xml.Signature class: signString() and verifyString(). See xml.Signature methods.
New methods in xml.CryptoKey: loadPublicFromString() and savePublicToString(). See xml.CryptoKey methods.
Support of Diffie-Hellman key-agreement algorithm. It allows two peers to agree on the same symmetric key, the shared secret, without exchanging confidential data. See The Diffie-Hellman key agreement algorithm, Supported kind of keys and Computing the shared secret with Diffie-Hellman
HTTP compression support has been added for Genero Web Services. See HTTP compression.

The com.HTTPRequest.setAutoReply() method now works for HTTP HEAD method as well as the GET method.

See com.HTTPRequest methods.

DOM features:

The Genero XML DOM library has been enhanced with new features that can be set with the setFeature() method or retrieved with the getFeature() method.
  • load-save-base64-string - loads and saves an XML document from/to a base64 string
  • auto-id-attribute - sets at document loading all unqualified attributes named ID, id, Id or iD of type ID
  • auto-id-qualified-attribute - sets at document loading all qualified attributes named ID, id, Id or iD of type ID
  • enable-html-compliancy - allows HTML document parsing and modification using the xml.DomDocument API.
See The DomDocument class.

Binary support on HTTP layer:

The Genero COM library has been enhanced to support transport of binary data via the Genero BYTE data type.

On the client side, it is now possible to send and read binary data to/from a server with the following two methods:
On the server side, it is possible to read and write binary data to a client with following two methods:
See The com package.
Access the HTTP headers request and response in high level web services. See how to modify your server or use fglwsdl generated global end point at runtime.

The standard API is enhanced with few new methods and a new class called HTTPPart to handle the different part in a HTTP request or response at client and server side.

See The HTTPPart class, The HTTPRequest class, The HTTPResponse class, and The HTTPServiceRequest class.
The client side is able to generate stubs to support multiple part with Genero Web Services. Support for the server side is not yet provided.
Note: Starting with version 2.50.25, when generating client stubs managing multipart, you will get extra input and/or output variables called AnyInputParts and AnyOutputParts, defined as a DYNAMIC ARRAY of com.HTTPPart objects. These arrays may contain additional input and/or output HTTP parts not specified in the WSDL. You will have to adapt your client program, to handle those dynamic arrays in any functions calling such stubs. See Client stubs managing multipart changes.
See Multipart in the client stub and The GWS server and multipart.
FGLPROFILE HTTPS configuration details no longer needed to perform HTTPS communication. A default SSL configuration is now generated automatically. See HTTPS configuration.
Creating URL base that applies to multiple server applications by using a wildcard in the URL, allowing for a shared server configuration (such as authentication and HTTPS). See Wildcards in the URL base.