BDL 3.10 new features
Features added in 3.10 releases of the Genero Business Development Language.
Overview | Reference |
---|---|
The DICTIONARY type, to define associative arrays /
hash-maps. |
See Dictionary, DICTIONARY as class. |
New FUNCTION definition syntax, to declare exact function
signature with parameter types in the parentheses, and return types in the RETURNS
clause. |
See FUNCTION definitions, Function parameters, Returning values. |
Function references, to call functions only know at runtime. | See Function references, FUNCTION func-spec. |
Invoking methods with an object reference returned from a method: LET
s = s.subString(1,10).toLowerCase() |
See Working with objects. |
Java SE 10 and 11 support. | See Java Inteface changes, Java software requirements. |
New DYNAMIC ARRAY methods copyTo() ,
search() , searchRange() . |
See DYNAMIC ARRAY.copyTo, DYNAMIC ARRAY.search, DYNAMIC ARRAY.searchRange. |
Defining the localized string lookup path when program starts. | See base.Application.reloadResources. |
Bit-wise operation and hexadecimal/binary string conversion on
INTEGER values. |
See The util.Integer class. |
Channel openFile() method can write to stderr. |
See base.Channel.openFile. |
Variable definition attributes for JSON serialization:
json_null , json_name . |
See JSON support. |
Resource files (.42f, etc) can now also be found in the
directory where the MAIN module resides. |
See Default resource file search path, FGLRESOURCEPATH. |
Base64 to/from Hexadecimal string conversion methods. | See util.Strings.base64DecodeToHexString, util.Strings.base64EncodeFromHexString. |
Source documentation enhancements, to describe module variables, constants and user defined types. | See Commenting a module constant, Commenting a module variable, Commenting a module type. |
fglform checks for unique TABINDEX
values. |
See Unique TABINDEXes in a form. |
Overview | Reference |
---|---|
Dynamic dialog creation (equivalents of INPUT ARRAY and
DIALOG blocks). |
See Dynamic Dialogs, ui.Dialog.createInputArrayFrom, ui.Dialog.createMultipleDialog. |
Click on cell in DISPLAY ARRAY with
FOCUSONFIELD attribute. |
See Field-level focus in DISPLAY ARRAY. |
Get user's preferred language defined on the front-end platform. | See User's preferred language. |
New "accordion" value for the position style
attribute of FOLDER containers, to render the children pages as a set of
collapsible group boxes. |
See Folder style attributes, FOLDER item type, Presentation styles changes. |
A set of ready-to-use web components are now provided in the Genero BDL package. | See Built-in Web Components, Web components changes. |
gICAPI Web Component onFlushData and
onStateChange methods to better control content change and form field
state. |
See gICAPI.onFlushData(), gICAPI.onStateChanged(). |
New dialog methods to set text, image and comment of default action views. | See Configuring default action views dynamically. |
Defining array cell attributes in dynamic dialogs with simple and two-dimensional dynamic arrays. | See ui.Dialog.setArrayAttributes. |
Display values to form fields or screen arrays that are only known at runtime. | See ui.Form.displayTo. |
NOTEDITABLE can be specified for TEXTEDIT
form fields. |
See NOTEDITABLE attribute. |
Use the DateEdit style attribute
calendarType to define the type of calendar. |
See DateEdit style attributes. |
GBC supports the buttonIcon style attribute for
DateEdit and DateTimeEdit classes. |
See DateEdit style attributes, DateTimeEdit style attributes. |
The UserInterface style attribute reverse
can be used for Arabic languages support. |
See Right-to-left languages support. |
localStorage front calls to store key/value pairs on the
front-end side. |
See Local storage front calls, New localStorage frontcalls. |
Style attribute rowActionTrigger (Table
class), to define the physical event to fire the row choice action. This allows you to define
simple-clicks to select a row in a table controlled by DISPLAY ARRAY . |
See Defining the action for a row choice. |
DOUBLECLICK attribute now supported for
SCROLLGRID lists, in .per file syntax and as DISPLAY
ARRAY attribute. |
See Defining the action for a row choice. |
ON CHANGE is now allowed in
CONSTRUCT . |
See ON CHANGE block. |
SCREEN can get a TAG attribute. |
See SCREEN section. |
bold attribute in table cell attributes. |
See ui.Dialog.setArrayAttributes. |
The Window style attribute
thinScrollbarDisplayTime accepts a negative value, to hide the scrollbar. |
See Window style attributes. |
Form item attribute INITIALPAGESIZE for
SCROLLGRID elements. |
See INITIALPAGESIZE attribute. |
The standard.openFiles frontcall can be used to let the user
select multiple files on the front-end platform. |
See The openFiles front call. |
The Window style attributes
actionPanelButtonSize and ringMenuButtonSize support the
em unit ("20em" ). |
See Presentation styles changes, Window style attributes. |
AGGREGATE fields can be used with any item type (was limited
to EDIT columns). |
See Summary lines in tables. |
GDC auto-update front call (monitor.update ) to install a new
GDC automatically from a Genero program. |
See monitor.update frontcall. |
Input field hint specification with the PLACEHOLDER attribute. |
See PLACEHOLDER attribute. |
Front call API allows RECORD and ARRAY
specification in input and output parameters. |
See ui.Interface.frontCall, webcomponent.call. |
The ui.Dialog.nextField() method accepts
"+NEXT" , "+PREV" and "+CURR" field
specification. |
See ui.Dialog.nextField. |
The ui.Dialog.cancel() method can be used to cancel a parent
DIALOG from the SUBDIALOG code. |
See ui.Dialog.cancel. |
New theme front calls allow the Genero application to set the
theme, retrieve the theme in use, or list all available themes for an application using the Genero
Browser Client. |
See Theme front calls. |
Better control of row / cell highlighting for TABLE and
SCROLLGRID containers. |
See Row and cell highlighting in TABLE, Row and cell highlighting in SCROLLGRID, Row highlighting in TREE. |
Set the Table style attribute tableType to
listView , to get Mobile list view rendering for tables. |
See Controlling table rendering, Table style attributes. |
Set the Scrollgrid style attribute
customWidget to pagedScrollGrid , to render the scrollgrid as a
responsive tile list. |
See SCROLLGRID item type, ScrollGrid style attributes, Scrollgrid views. |
Set the Checkbox style attribute
customWidget to toggleButton , to render the checkbox as a toggle
switch. |
See CHECKBOX item type, CheckBox style attributes. |
The Button style attribute alignment can be
used to define the content position in the widget. |
See Button style attributes. |
The Window style attribute windowState can
be set to fullscreen to display the window in fullscreen mode (GDC only). |
See Window style attributes. |
Overview | Reference |
---|---|
Support of Microsoft® ODBC v13 and v17 for SQL Server with dbmsnc_13 and
dbmsnc_17 ODI drivers. These drivers are available on Windows® and Linux®
64bits platforms, to connect to SQL Server 2016, 2017 and Azure SQL Database. |
See Microsoft ODBC Driver for SQL Server. |
Support for SAP HANA® 2.0 database
with the new ODI driver dbmhdb_2 . |
See SAP HANA. |
Support for IBM® DB2® LUW 11.x (with
dbmdb2_10 ). |
See Database driver specification (driver). |
Support for Oracle® 12c on macOS®. | See Mac OS X platform notes (Special consideration must be taken for libclntsh.so) |
Support for PostgreSQL 9.6 and 10. | See Database driver specification (driver). |
Support for Oracle
MySQL 5.7 (dbmmys_5_7 ) and MySQL 8.0 (dbmmys_8_0 ). |
See Oracle MySQL 5.7 and 8.0 support, Database driver specification (driver). |
Support for MariaDB 10.2 with the new ODI driver dbmmdb_10_2 . |
See Database driver specification (driver), Prepare the runtime environment - connecting to the database. |
Support for FreeTDS 1.00 (to connect to SQL Server up to version 2016) | See Prepare the runtime environment - connecting to the database. |
The SNC driver selects automatically the char mode
(snc.widechar FGLPROFILE parameter) depending on the application locale. |
See Wide Char mode of SNC driver. |
Special hints in C-style comments to control SQL statement execution. | See fglhint_* in SQL comments. |
Defining ODBC connection string parameters for SQL Server with the
"datasource?options" notation in the
"source" connection parameter. |
See Database source specification (source), SQL connection identifier. |
Specifying Oracle DB schema and tablespace in temporary table emulations. | See Temp table emulation with Oracle DB. |
Oracle DB proxy authentication. | See Oracle DB Proxy Authentication. |
Print SQL debug message only when SQL error occurs, and control SQL debug
level from programs with fgl_sqldebug() |
See Debugging SQL statements, fgl_sqldebug(). |
Converting MATCHES to PostgreSQL SIMILAR TO expressions. | See MATCHES and LIKE. |
Faster SQL execution with PostgreSQL driver and new pre-fetch row count parameter in FGLPROFILE. | See PostgreSQL specific FGLPROFILE parameters. |
SET LOCK MODE support with PostgreSQL driver. |
See Concurrency management. |
Overview | Reference |
---|---|
GUI log file name with process id
(--start-guilog="myfile-%p.log" ). |
See Front-end protocol logging. |
Source code coverage tool (FGLCOV / fglrun
--merge-cov ). |
See Source code coverage. |
Program execution trace (fglrun --trace ). |
See Execution trace. |
VIM plugins can be used directly from FGLDIR/vimfiles. | See Code completion and syntax highlighting with VIM. |
The fpi command line tool can be used to show Genero BDL version information. | See fpi. |
The fglgar command line tool is now delivered with the FGLGWS package. | See fglgar, Packaging web applications. |
fglcomp option -W to-err-file to write
warnings to the .err file. |
See fglcomp. |
fglcomp option
--tag=string to write a custom string to the
.42m pcode module. |
See fglcomp, 42m module information. |
Overview | Reference |
---|---|
Support of Message Transmission Optimization Mechanism (MTOM), a method of efficiently sending binary data to and from Web services. | See Message Transmission Optimization Mechanism (MTOM), XMLOptimizedContent, and fglwsdl (-hexb64AsString option) |
The swaRef feature optimizes file transfer when the files are attachments and located on disk. | See swaRef (SOAP with attachments using wsi:swaRef). |
Better support of Web Services on iOS mobile devices. | See Web Services on mobile devices. |
New methods clearHeaders() and
removeHeader() remove headers from an HTTP multipart object. |
See com.HttpPart methods. |
New XML serializer options xml_ignoreunknownelements and
xml_ignoreunknownattributes , to ignore unexpected elements or attributes. |
See Serialization option flags. |
The XMLElementNillable attribute provides an option to set
all XML elements explicitly to null and to serialize them with xsi:nil="true" , when
the BDL variable is NULL. |
See XMLElementNillable, Web Services changes. |
The XMLNillable attribute provides an option to set an XML
node explicitly to null and to serialize it with xsi:nil="true" , when the BDL
variable is NULL but not optional. |
See XMLNillable, Web Services changes. |
New built-in server-side methods for the com.HTTPServiceRequest class:
getURLHost() , getURLPort() , getURLPath() ,
getURLQuery() , findRequestCookie() , and
setResponseCookie() . |
See The HTTPServiceRequest class. |
Methods added to assist with cookie management. | See WebServiceEngine options, com.HTTPRequest.setAutoCookies and com.HTTPServiceRequest.setResponseCookies. |
New Genero BDL helper functions: SplitUrl() ,
FindQueryStringValue() , and SplitQueryString() . |
See WSHelper library. |
New methods for proxy management of the current HTTPRequest . |
See The HTTPRequest class. |
Genero Web Services accepts 2 new options to enable OCSP (Online Certificate Status Protocol). | See Enable OCSP. |
The xml.XSLTTransformer class provides methods for transforming XML
following the XSLT version 1.0 specification. |
See The XSLTtransformer class. |
New methods to generate a password of a given size and based on a human readable password using Password-Based Key Derivation Function 2 (PBKDF2). | See The PBKDF2 class. |
New methods allow you to save passwords as BCrypt results. | See The BCrypt class. |
A new REST demo has been added in $FGLDIR/demo/WebServices/forum. This demo uses REST services with JSON, text and binary data; manages authorization access via the new HTTP automatic cookie API; and uses the new BCrypt API to store a password in a database. | See the readme.txt provided with the demo. |
The enveloped-signature method has an optional parameter to specify
the node where the signature will be added. |
See Transformation identifier. |
FGLPROFILE entry to define regex-based URL specification for HTTP configuration. | See Web Services changes, Server configuration. |
New fglwsdl option -fRPCNamespace to produce BDL code
supporting the namespace attribute for RPC parameters. |
See Web Services changes, fglwsdl. |
New fglpass option -gid and
security.global.agent.gid=true FGLPROFILE entry, to allow agent authentication to
be performed with UNIX user group instead of user only. |
See Web Services changes, fglpass, Use the password agent. |
V3.10.24 MR | |
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. |
Upgrade notes for web services. | See Web Services changes. |
Overview | Reference |
---|---|
GMI and GMA include generic Cordova/PhoneGap plugin frontcalls to make use of the Cordova plugins. | See Cordova plugin front calls. |
GMI build tool options --install-plugins and
--list-plugins , to manage Cordova plugins. |
See gmibuildtool and Cordova plugins. |
GMA build tool option --build-cordova , to embed one or more
Cordova plugins. |
See gmabuildtool and Cordova plugins. |
GMA build tool command scaffold , to manage scaffold archives.
This new command comes with the --list-plugins and
--install-plugins options to handle plugins in the scaffold archive. |
See gmabuildtool and Building Android apps with Genero. |
Stretchable SCROLLGRID lists are supported on mobile
front-ends. |
See SCROLLGRID item type. |
Predefined actions enterbackground and s
enterforeground to detect app state change. |
See Background/foreground modes. |
The GMIDIR environment variable allows you to install the GMI archive in a different directory than FGLDIR. | See Building iOS apps with Genero. |
GMI build tool option --extensions-libs , to specify the
libraries to be used to build your iOS app. |
See Building iOS apps with Genero. |
GMA build tool options --build-status-icon-* allow you to
define the status notification bar icon. |
See Building Android apps with Genero, gmabuildtool. |
GMA build tool option --accept-licenses allows you to
silently accept Android SDK licenses
during updates of Android SDK. |
See gmabuildtool and Building Android apps with Genero. |
GMA supports now the alignment style attribute for
IMAGE . |
See Image style attributes. |
GMI build tool option --install provides a method
for installing without the need to snoop with instruments for the actual device
name. |
See gmibuildtool and Genero mobile development client for iOS. |
The style attribute reduceFilter controls the display of the
the listview reduce filter on GMA clients. |
See Table style attributes. |
GMA build tool option --build-force-scaffold-update , to
re-create the app project directory from a fresh GMA scaffold directory. |
See gmabuildtool and Genero Mobile for Android (GMA) 1.30 changes. |
GMA build tool option --build-quietly , to force yes for any
answer asked during the build process. |
See gmabuildtool and Genero Mobile for Android (GMA) 1.30 changes. |
The front call mobile.isForeground indicates if the app is in
foreground mode. |
See Front calls changes, isForeground. |