BDL 3.20 new features
Features added in 3.20 releases of the Genero Business Development Language.
Corresponding upgrade guide: BDL 3.20 upgrade guide.
Prior new features guide: BDL 3.10 new features.
Overview | Reference |
---|---|
Support for circular dependency of modules with IMPORT
FGL . |
See Circular dependency with IMPORT FGL. |
Method declaration, to define functions acting on a user-defined type. | See Methods, FUNCTION syntax. |
INTERFACE structure, to define a group of methods for a
type. |
See Interfaces. |
Passing records by reference (INOUT ). |
See Passing records by reference with INOUT. |
Variable initializers: The DEFINE instruction supports a
clause to initialize the variable. |
See Variable initializers, DEFINE. |
Named parameters in function calls: CALL
func(p1:value) . |
See Naming parameters in a function call. |
Function attributes (for RESTful Web Services). A FUNCTION
definition can specify function attributes, parameter attributes and return values
attributes. |
See Function attributes, FUNCTION definitions. |
New STRING and base.StringBuffer methods to
remove all kinds of whitespace characters in a string. |
See the *WhiteSpace methods in STRING data type methods and base.StringBuffer methods. |
FUNCTION definition syntax allows the RETURNS
() clause, to specify an empty return list and enforce compilation verifications to avoid
RETURN instruction misusage. |
See FUNCTION syntax, Returning values. |
Arrays can be assigned without the .* notation. |
See Dynamic array assignment with .* notation. |
Records can be assigned without the .* notation. |
See Record copy without .* notation. |
FGLPROFILE fglrun.floatToCharScale2 and
fglrun.floatToCharScale2.print to control FLOAT/SMALLFLOAT to
string conversion. |
See FLOAT/SMALLFLOAT to string conversion. |
GetOpt utility type and methods, to process command line arguments in the
getopt style
(--option[=value] ). |
See getopt: Command line options module. |
New os.Path.glob() method to get a list of files from a
pattern. |
See os.Path.glob. |
TEXT and BYTE variables are now
automatically located in memory by JSON parsing methods. |
See JSON to BDL data conversion. |
Overview | Reference |
---|---|
The new gui.rendering FGLPROFILE entry, to enable Universal
Rendering. |
See Graphical mode with Universal Rendering. |
FGLGBCDIR environment variable, to define the directory of
the GBC component to be used for Universal Rendering. |
See FGLGBCDIR, Graphical mode with Universal Rendering. |
KEYBOARDHINT form attribute allows now the
URL value to define an EDIT field for URL input. |
See KEYBOARDHINT attribute. |
GBC supports the "chrome" value for
actionPanelPosition , ringMenuPosition and
toolBarPosition window style attributes. |
See Action views rendering in GBC chromebar. |
ui.Interface class methods to identify the Universal
Rendering client and version. |
See Graphical mode with Universal Rendering, ui.Interface.getUniversalClientName, ui.Interface.getUniversalClientVersion. |
Form elements of type GROUP can be defined as collapsible
with new style attributes (collapsible /
initiallyCollapsed ). |
See Collapsible groups with GBC. |
Collapsible groups and folders can be configured to display the collapser icon at a specific position with the collapserPosition style attribute. | See New Folder.collapserPosition (GBC), Collapsible groups with GBC. |
ON FILL BUFFER , ON IDLE and ON
TIMER triggers for display array dynamic dialog. |
See ui.Dialog.addTrigger. |
Built-in classes methods to control form elements are now case-insensitive. | See Case insensitive names with UI methods. |
Use the itemsAlignment style attribute to control the
alignment of elements inside a scrollgrid. |
See Controlling element alignment inside a scrollgrid. |
New enableCalendar style attribute for
DateTimeEdit with GDC. |
See New DateTimeEdit.enableCalendar style attribute (GDC). |
New qtStyle style attribute for
ComboBox with GDC. |
See New ComboBox.qtStyle style attribute (GDC). |
Set the sanitize style attribute to "no" to
disable HTML content cleanup (Warning: allows Stored XSS attacks!) |
See New sanitize style attribute (GBC). |
The INITIALIZER attribute of COMBOBOX
accepts module specification as function prefix (the module is then automatically loaded) |
See INITIALIZER attribute. |
Setting the comment of a form element or form field. | See ui.Form.setElementComment, ui.Form.setFieldComment. |
New FGLPROFILE entry gui.programStoppedMessage to define a
generic message to be displayed to the end user when a program stops because of a runtime
error. |
See Default exception handling, Program stop error message box. |
AUTONEXT can be used on EDIT or
BUTTONEDIT with the COMPLETER attribute, and on
COMBOBOX , to jump to the next field when a value is selected from the list. |
See AUTONEXT attribute. |
The lateRendering style attribute for FOLDER
containers can be used to optimize the layout processing. |
See New Folder.lateRendering style attribute (GBC). |
Upgrade notes for presentation styles. | See Presentation styles changes. |
Upgrade notes for web components. | See Web components changes. |
Upgrade notes for front calls. | See Front calls changes. |
Overview | Reference |
---|---|
Support for Oracle®
database 18c and 19c with the dbmora_18 driver. |
See Database drivers changes. |
Using Oracle 18c private temporary tables to emulate Informix® temporary tables. | See Using the private temporary table emulation. |
Support for PostgreSQL 11, 12 and 13 with the dbmpgs_9
driver. |
See Database drivers changes, PostgreSQL 12 notes. |
Support for SQL Server 2019 (v15) with the |
|
New dbmmys_5_6 driver for MySQL 5.6 as replacement of
dbmmys_5_5 no longer available because of MySQL 5.5 desupport. |
See Database drivers changes. |
New ifxemul.datatype.serial.sqlerrd2 FGPROFILE entry to
disable automatic serial retrieval for sqlca.sqlerrd[2] . |
See FGLPROFILE entries for core language, Disabling automatic serial retrieval for sqlca.sqlerrd[2]. |
Utility function db_get_last_serial() to retrieve the last
generated serial, mandatory for BIGINT incremented columns. |
See db_get_last_serial(). |
FGLPROFILE entry
dbi.database.dbname.pgs.schema to define the schema search path
for PostgreSQL. |
See PostgreSQL specific FGLPROFILE parameters. |
FGLSQLDEBUG ouput enhancement to identify when SQL INTERRUPT
ON/OFF is used. |
See note in Performances with SQL interruption. |
Support for IBM® Informix trusted connections, with the new TRUSTED
keyword for CONNECT TO , and the new SET SESSION AUTHORIZATION
statement. |
See CONNECT TO, SET SESSION AUTHORIZATION. |
Informix SQL
SELECT statement row limiting clause SKIP n FIRST m can be
converted to native equivalent. |
See Row limiting clause (SELECT). |
With Microsoft®
SQL Server, in DDL statements such as CREATE TABLE , character data types can be
converted to the equivalent native national character types, with FGLPROFILE entry
dbi.database.dsname.ifxemul.nationalchars=true . |
See character types with SQL Server, ifxemul FGLPROFILE settings. |
To avoid Microsoft SQL Server 468 collation conflict errors with temporary tables, the ODI drivers for
SQL Server add now a COLLATE DATABASE_DEFAULT clause after character types in the
native statement generated from a CREATE TEMP TABLE . This is not needed for
SELECT INTO TEMP . |
See Temporary tables. |
Oracle database
rowid (in base 64 format) can be found in sqlca.sqlerrm . |
See ORACLE rowid in SQLCA.SQLERRM. |
Upgrade notes for database drivers. | See Database drivers changes. |
Overview | Reference |
---|---|
Source code formatting tool: fglcomp --format, including new command line tools fglgitformat, fglformatdiff. | See Source code beautifier, fglgitformat, fglformatdiff. |
Qualifying imported symbols: fglcomp --qualify-imports. | See Qualifying imports. |
Use lowercase keywords in VIM with
fgl_lowercase_keywords=1 . |
See Configure VIM for Genero BDL. |
fglrun/fgllink supports |
See Providing the files to link in an arguments file, Providing the files to link in an arguments file. |
fglcomp can now process several .4gl files on the command line. | See Compiling several .4gl sources in a single command, fglcomp. |
Commands accepting a list of files like fglcomp or fgllink, can do pathname expansion (fglcomp *.4gl), on Unix and Windows® platforms. | See Compiling several .4gl sources in a single command, fglcomp. |
To reduce compilation time of large projects, fglcomp supports the
|
See Compiling in make mode. |
The fglcomp |
See Producing make-style dependency rules. |
fglcomp supports |
See Providing the source files in an arguments file. |
fglcomp supports the value " |
See Preprocessing style option. |
fglrun provides the |
See Identifying modules to be imported. |
fglcomp supports the new warning argument -W
unused-parameter , that prints a message when a function parameter is not used. The negative
form -W no-unused-parameter can be combined with -W unused , to
ignore parameters that are unused. |
See fglcomp option -W option. |
Starting at 3.20.16 | |
The fglgar run command has a |
See options table for fglgar run. |
Overview | Reference |
---|---|
The Genero Web Service engine has been enhanced with a mechanism to provide a
high level REST web service. You can implement REST Web services using function attributes
(identified with WS* prefix) that you specify in ATTRIBUTES()
clauses of functions. |
See: |
The fglrestful tool takes an OpenAPI documentation file (JSON format) and generates the client stub to interact with the REST service. | See fglrestful. |
Descriptions using the WSDescription attribute are allowed in
input and output parameters. These descriptions can be generated in the REST stub file using the
fglrestful tool's --comment option. |
See fglrestful and WSDescription. |
com.WebServiceEngine option
server_restdefaultformat added to define runtime support for MIME types in REST
operations. |
See WebServiceEngine options. |
Method added to publish high-level RESTful Web services in the GWS engine. | See com.WebServiceEngine.RegisterRestService. |
Method added to provide error management in the high-level RESTful Web service. | See com.WebServiceEngine.SetRestError. |
Empty HTTP POST and PUT requests. | See Support for empty HTTP POST or PUT requests. |
The FGLPROFILE entry http.global.request.date can be set to
true , in order to force sending HTTP Date header for GET, HEAD and DELETE
requests. |
See Control HTTP Date header for GET, HEAD and DELETE requests. |
The com.HTTPRequest.setAuthentication has an enhancement to
support the NTLM authentication protocol of Windows server that requires the connection to be kept open. |
See com.HTTPRequest.setAuthentication or com.HTTPRequest.setKeepConnection. |
API added to provide management of OAuth authentication for RESTful Web service secured by OpenID Connect. | See OAuthAPI library. |
Starting at 3.20.13 | |
The WSHelper.WSServerCookiesType record has a member added
for setting the sameSite security value. The
com.HTTPServiceRequest.setResponseCookies() method, which uses the record, may
raise a runtime error if the SameSite attribute is not set correctly. |
See Changes to how GWS handles cookies, Single sign-on (OpenID Connect, SAML, and GIP) sameSite security. |
Starting at 3.20.14 | |
The fglwsdl -xmlname option is added to
generate variables named with XMLName attributes in stubs. |
See fglwsdl |
Starting at 3.20.15 | |
The REST engine WSAttachment attribute has been enhanced with
an optional regular expression (regex) type value to validate the names of incoming files. |
See WSAttachment |
Related upgrade notes | |
Upgrade notes for web services. | See Web Services changes. |
Overview | Reference |
---|---|
gmabuildtool option -bgr /
--build-gbc-runtime , to define the GBC to be used to build the app. |
See Building Android apps with Genero. |
gmibuildtool option --gbc , to define the
GBC to be used to build the app. |
See Building iOS apps with Genero. |
GMA supports now the alignment style attribute for
BUTTON . |
See Button.alignment style attribute (GMA), Button style attributes. |
Cordova plugin wrapper libraries now available on the FOURJS Cordova Github. | See Cordova plugins for GMA, Cordova plugins for GMI. |
New Cordova plugin front calls to get plugin information. | See New Cordova front calls in GMA, New Cordova front calls in GMI. |
GMA and GMI support standard.openFile/openFiles front
calls. |
See openFile, openFiles, File management. |
gmabuildtool produces Android App Bundle .aab packages. | See Android App Bundle (.aab) packages |
GMA build tool command updatesdk has a
--no-interaction option to handle user interaction during installation of extras.
It allows you to silently accept these installations during updates of Android SDK. |
See gmabuildtool updatesdk --no-interactions and Building Android apps with Genero. |
Related upgrade notes | |
Upgrade notes for GMA. | See Genero Mobile for Android (GMA) 1.40 changes. |
Upgrade notes for GMI. | See Genero Mobile for iOS (GMI) 1.40 changes. |
Overview | Reference |
---|---|
New parameter for monitor.update front call to control administrator permission elevation prompt. | See Front calls changes, monitor.update front call. |