BDL 4.01 new features
Features added in 4.01 releases of the Genero Business Development Language.
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 4.01 upgrade guide.
Previous new features page: BDL 4.00 new features.
Overview | Reference |
---|---|
The ARRAY[n] , DYNAMIC ARRAY and
DICTIONARY definitions accept now another array or dictionary, as type for the
OF clause. |
See ARRAY syntax
and DICTIONARY syntax. |
Starting at 4.01.02 | |
Module aliases with IMPORT FGL path AS
alias-name |
See IMPORT FGL. |
Starting at 4.01.03 | |
New os.Path methods
getAccessTime()/setAccessTime() ,
getModificationTime()/setModificationTime() , isSameFile() ,
describeLastError() |
See os.Path methods. |
New ARRAY method
sortByComparisonFunction() . |
See ARRAY.sortByComparisonFunction() . |
New util.String methods to compare strings. |
See util.Strings.collate() , util.Strings.collateNumeric() . |
LOAD/UNLOAD and base.Channel support
semicolon separator with "DSV=;" |
See LOAD , UNLOAD , base.Channel.setDelimiter. |
util.Channels utility class to wait for activity on a set of
TCP sockets from base.Channel objects. |
See util.Channels methods. |
The STRING.getMultibyteLength() method counts the number of
bytes of a string. |
See STRING.getMultibyteLength. |
The STRING.expandTabs() method converts TAB characters to
spaces. |
See STRING.expandTabs. |
Starting at 4.01.06 | |
util.Channels.selectWithTimeout method to wait for activity
on a set of TCP sockets from base.Channel objects, with timeout option. |
See util.Channels.selectWithTimeout |
Support for BYTE.getLength() method like for
TEXT type. |
See BYTE.getLength |
Starting at 4.01.08 | |
The reflect.Value.hasKey and
reflect.Value.removeDictionaryElement methods. |
See reflect.Value.hasKey, reflect.Value.removeDictionaryElement |
The base.Channel.closeOut() method, to close then writing
stream of the channel (EOF equivalent) |
See base.Channel.closeOut. |
Related upgrade notes |
Overview | Reference |
---|---|
The KEYBOARDHINT form item attribute gets new options
DECIMAL , NUMERIC , TEXT , SEARCH
and NONE , for better control of the virtual keyboard on mobile devices. |
See KEYBOARDHINT attribute. |
New rendering for ROWBOUND actions with three-dots button in
TABLE , TREE and SCROLLGRID . |
See Actions bound to the current row, Binding action views to a table row, Binding action views to a treeview row, Binding action views to a scrollgrid row. |
Starting at 4.01.03 | |
New ui.Dialog method
setColumnComparisonFunction() to implement custom sort in list dialogs. |
See ui.Dialog.setColumnComparisonFunction . |
New ui.Dialog method setGroupBy() to define
the grouping column in list dialogs. |
See ui.Dialog.setGroupBy . |
STRING -typed parameters in fglsvgcanvas API. |
See fglsvgcanvas: STRING-typed parameters. |
New fglsvgcanvas API function to define symbols. | See symbol(). |
New fglsvgcanvas API function for @media styling. | See mediaQuery(). |
Form and combobox default initializer as function reference. | See ui.Form.setDefaultInitializerFunction, ui.ComboBox.setDefaultInitializerFunction. |
Related upgrade notes | |
Upgrade notes for presentation style. | See Presentation styles changes. |
Overview | Reference |
---|---|
The standard.playSound front call gets a new
"wait" option, to define if the front call must immediately return while the
sound continues playing. |
See standard.playSound. |
New presentation style attributes topmenuDesktopRendering and
topmenuMobileRendering for Window. |
See New Window.topmenuDesktopRendering and Window.topmenuMobileRendering style attributes |
The defaultTTFColor style attribute applies to any kind of
form element. |
See defaultTTFColor applies to any type of form element |
The packed style attribute for HBOX and
VBOX . |
See packed attribute for HBOX and VBOX. |
The modalOnLargeScreen value for the
windowType style. |
See New windowType value modalOnLargeScreen. |
The standard.feInfo front call supports a new property
"colorScheme" to get the brightness mode. |
See Front calls changes, standard.feInfo: colorScheme . |
The predefined actions enterforeground /
enterbackground are triggered when using GBC front end in a browser (GAS) |
See Foreground and background modes. |
The rowAspect style attribute for flipped
TABLE and resizable SCROLLGRID . |
See New rowAspect attribute. |
The position style attribute for ToolBar elements. |
See New position attribute for ToolBars. |
New front calls in "standard" module. |
See New front calls. |
Related upgrade notes | |
Upgrade notes for presentation style. | See Presentation styles changes. |
Overview | Reference |
---|---|
Support for Microsoft® ODBC driver 18 for SQL Server with
dbmsnc_18 ODI driver. |
See Database driver specification (driver). |
Starting at 4.01.02 | |
The fgldbsch tool can extract PostgreSQL OID columns as BIGINT. | See fgldbsch type conversion option. |
Starting at 4.01.03 | |
Support for Microsoft SQL Server 2022. | See Microsoft SQL Server. |
Support for PostgreSQL 15. | See Database drivers changes, PostgreSQL. |
Starting at 4.01.06 | |
Support for PostgreSQL 16. | See Database drivers changes, PostgreSQL. |
Support for MySQL 8.2 Innovation Release (with new dbmmys_8_2
driver) |
See Database drivers changes, Oracle MySQL / MariaDB. |
Starting at 4.01.07 | |
New FGLPROFILE entry to define PostgreSQL client trace file. | See dbi.database.dsname.pgs.trace.file. |
Related upgrade notes | |
Upgrade notes for database drivers. | See Database drivers changes. |
Overview | Reference |
---|---|
fglcomp -W unused option warns for PREPARE and DECLARE
CURSOR statements with no corresponding usage, and for unused imported modules. |
See fglcomp -W option. |
fglform -k / --keep-going option continues compilation of forms after error. | See fglform -k option. |
fglcomp -k / --keep-going option continues compilation of sources after error. | See fglcomp -k option. |
fglcomp -W form-field-name option to produce warnings for
invalid field names in INPUT BY NAME and CONSTRUCT BY NAME
dialogs. |
See fglcomp -W option. |
Starting at 4.01.02 | |
Code completer can find modules from FGLLDPATH, to complete IMPORT
FGL . |
See Source code completion. |
Starting at 4.01.03 | |
Microsoft Visual Studio Code extension for Genero BDL. | See Visual Studio Code extension. |
Command-line debugger improvements (expression evaluation, in-line editing, completion, command history, list range of lines on stop) | See Understanding the debugger, Expressions in debugger commands. |
VIM edition enhancements: Go to definition (gd ) and BDL
language tags (CTRL-] ). |
See Configure VIM for Genero BDL. |
fglgar run --pid-file option writes fglgar process-ids to file. |
See fglgar. |
Related upgrade notes |
Overview | Reference |
---|---|
There is support for the HTTP specification allowing a message body with the HTTP verb DELETE. A message body is supported on client and server Web services using the REST low-level framework. | See com.HttpRequest methods and com.HttpServiceRequest methods |
For REST Web services using the high-level REST framework, the
WSParam and WSQuery attributes support complex types, such as
records and arrays in operation parameters. This enhancement is based on the OpenAPI specification
for serialization. It supports default methods for delimiting values and handling items of arrays or
records in paths and queries. |
See WSParam and WSQuery |
The fglrestful tool has options to allow HTTP and proxy
authentication when requesting OpenAPI documentation. |
See fglrestful |
The fglwsdl -xmlname option is added to generate variables
named with XMLName attributes in stubs. |
See fglwsdl |
The REST engine WSContext variable has a
RequestURL entry that you can use to get the URL (base URL, resource path, and
query) from the client app. |
See WSContext |
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 |
Starting at 4.01.02 | |
The GWS OpenID Connect service has enhancements to how scopes are exchanged. The Genero Identity Provider (GIP) follows the standard RFC 8693 as the default method when creating OAuth ID and access tokens with the scope parameter. |
See Support for RFC 8693 in the Genero Identity Provider (GIP) creation of OAuth ID and access tokens with scopes |
Starting at 4.01.04 | |
The GWS OpenID Connect service configuration has a new entry
(oidc.accesstoken.decode ) added to decode roles and scopes in the access
token. |
See New option oidc.accesstoken.decode for decoding access tokens with roles and scopes |
Starting at 4.01.06 | |
The FGLPROFILE has a new entry, security.global.options ,
added to allow legacy OpenSSL 1 options. |
See New security.global.option in FGLPROFILE to allow legacy OpenSSL 1 options |
New fglwsdl option -SSLOptions added to support legacy
OpenSSL 1 options. |
See fglwsdl option -SSLOptions to support legacy OpenSSL 1 options and fglwsdl. |
STRING -typed return parameter in OAUTH API function. |
See Change to OAuthAPI.GetIDSubject returns. |
Starting at 4.01.07 | |
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 |
Related upgrade notes | |
Upgrade notes for web services. | See Web Services changes |
This version of Genero Mobile (GMA/GMI) is desupported, use latest version of the product.
Overview | Reference |
---|---|
Starting at GMA-4.01.02 | |
New gmabuildtool option to enable data collection for analytics, when using Firebase Cloud Messaging. | See Controlling Firebase data collection for analytics |
The standard.playSound front call supports http/https
URLs. |
See GMA 4.01 changes topic. |
Starting at GMA-4.01.04 | |
Default keystore type generated by gmabuildtool is now of type PKCS12. | See GMA 4.01 changes topic. |
New mobile.isEmulator front call. |
See New front calls. |
Support GBC theming for app colors. | See Using GBC theme to define app colors. |
Starting at GMA-4.01.06 | |
Local notification management. | See mobile.createNotification. |
New gmabuildtool options to control the manifest file. | See The app manifest file. |
New gmabuildtool options to set the path to the program
files: --main-app-path and --root-path . |
See Changes to gmabuildtool command arguments |
gmabuildtool supports @argfile syntax to
specify a list of options in one or several files. |
See Changes to gmabuildtool command arguments |
Permissions summary in gmabuildtool output. | See Permissions summary in gmabuildtool output |
Starting at GMA-4.01.07 | |
Support for Firebase Cloud Messaging API V1. | See Push notifications using FCM API V1, JSON data from mobile.getRemoteNotifications. |
Starting at GMA-4.01.08 | |
New gmabuildtool option to define the type of package (AAB or APK), to speed the build. | See Controlling the production of AAB/APK package files. |
Starting at GMI-4.01.04 | |
New gmibuildtool option to update the app installed on a simulator. | See New option --update for gmibuildtool. |
Local notification management. | See mobile.createNotification. |
New mobile.isEmulator front call. |
See New front calls. |
Starting at GMI-4.01.05 | |
Notification IDs for remote notifications. | See JSON data from mobile.getRemoteNotifications. |
Starting at GBC-4.01.20 | |
Mobile front calls implemented in GBC JavaScript code. | See GBC supports mobile front calls. |
Related upgrade notes | |
Upgrade notes for GMA. | See Genero Mobile for Android (GMA) 4.01 changes. |
Upgrade notes for GMI. | See Genero Mobile for iOS (GMI) 4.01 changes. |