Upgrading / New features of Genero BDL |
This topic lists features added for the 2.21 release of the Genero Business Development Language.
Overview | Reference |
---|---|
Program module dependency specification with IMPORT FGL instruction. | See The IMPORT FGL instruction |
VALUEMIN/VALUEMAX attributes for the SPINEDIT widget. | See SPINEDIT |
New database drivers | List of new database drivers:
|
New Genero DB 3.81 database driver: dbmads381. This driver no longer scans SQL text for translation, as most common Informix® syntax is now supported in Genero db 3.81 when using COMPATIBILITY_MODE=INFORMIX. Skipping the SQL text scanning will improve the performance of your programs. | See SQL adaptation guide For Genero db 3.6x, 3.8x. |
New EasySoft driver to connect from UNIX™ to SQL Server. This driver is based on the EasySoft SQL Server ODBC client. | See SQL adaptation guide For SQL SERVER 2005, 2008, 2012. |
New PostgreSQL 8.4 driver with INTERVAL support: dbmpgs84x. This driver converts Informix-style INTERVALs to native PostgreSQL INTERVALs. | See SQL adaptation guide For PostgreSQL 8.x.y, 9.x.y. |
New presentation styles attributes for Window nodes. | See actionPanelButtonTextAlign, ringMenuButtonTextAlign |
New presentation styles attributes for Image nodes. | See alignment |
Numeric keypad decimal separator: The decimal separator defined by DBMONEY or DBFORMAT will be used when pressing the dot key of the numeric keypad. | See DBMONEY and DBFORMAT. |
Automatic display of BYTE images: Image data contained in a BYTE variable are now displayed automatically when using a simple DISPLAY BY NAME, DISPLAY TO or when the BYTE variable is used by a dialog instruction. The BYTE data must be located in a file (LOCATE IN FILE "path") or temp file (LOCATE IN FILE). | See IMAGE item type. |
Paged DISPLAY ARRAY supports undefined initial row count: With this feature, when using a Paged DISPLAY ARRAY, it was mandatory to provide the total number of rows in the result set, which required a SELECT COUNT(*) before executing the dialog instruction. The dialog now supports an undefined number of rows, with value -1 in the COUNT dialog attribute. | See Read-only record list. |
Static SQL column definition supports DEFAULT
clause: The syntax of the CREATE TABLE and ALTER
TABLE Static SQL statements allows the DEFAULT clause
in column definitions. CREATE TABLE item ( num SERIAL, name VARCHAR(50) DEFAULT '<undefined>' NOT NULL ) |
See Static SQL statements. |
PostgreSQL database driver supports now TEXT/BYTE. | See Very large data types. |
New ui.Interface.setSize() method to to let you define the initial size of the WCI container window. | See The Interface class. |
New Static SQL syntax for the INSERT statement,
which removes the record member defined as SERIAL, SERIAL8
or BIGSERIAL in the schema file:SCHEMA mydb ... DEFINE record RECORD LIKE table.* ... INSERT INTO table VALUES record.* |
See INSERT. |
Support for C1 Ming Guo date format modifier:
Enable the digit-based Ming Guo date format by adding
the C1 modifier at the end of the value set for
the DBDATE environment variable:$ DBDATE="Y3MD/C1" $ export DBDATE Note:
|
See DBDATE |
The LOAD can now raise error -846 when
the input file has a corrupted line (missing or invalid
field separator, invalid character set, UNIX/DOS line
terminators). You can now easily find the invalid line by setting
the FGLSQLDEBUG environment
variable. The runtime system will display such debug
messages with the line number: | DBI: LOAD: Corrupted data file, check line #12345. |
See LOAD. |
ODBC Character type control with SNC driver
is now possible by using simple char or wide-char character
strings for ODBC, with the following FGLPROFILE entry:
dbi.database.<dbname>.snc.widechar = true/false |
See SQL adaptation guide For SQL SERVER 2005, 2008, 2012. |
New formScroll presentation style attribute for windows. | See Window style attributes. |
Overview | Reference |
---|---|
The fglwsdl tool supports
HTTPS request to retrieve WSDL or XSD on the network. You must specify
the X509 certificate and private key using these options:
|
See fglwsdl. |
The fglwsdl tool allows http
authentication and proxy authentication when requesting a WSDL or
an XSD on the network, and supports basic and digest authentication.
Two options have been added for authentication.
|
See fglwsdl. |
The fglwsdl tool provides a new option that generates:
This option is especially useful when you have to communicate with another web service that requires additional information on the XML request, or when it returns additional information that was not specified in the WSDL. For instance, this is the case if you have to communicate with web services using WS-Security. You can manipulate the XML document in the generated client stub using the XML-Signature or XML-Encryption API to perform the security part by hand before it is sent on the network. The following option has been added for that purpose:
|
See Client stub and handlers. |
The COM library is enhanced by a new function called HandleRequest to allow low-level and high-level web services on the same server. | See com.WebServiceEngine.HandleRequest |
The COM library is enhanced to perform automatic reply on HTTP GET request when the server requires HTTP authentication, proxy authentication, or returns an HTTP redirect. | |
The XML library supports a new option, xml_useutctime, to serialize any BDL DATE and DATETIME using the UTC format requested in most WS-Security exchanges. | See Serialization option flags. |
The XML library has been enhanced with two APIs
in the CryptoKey class. Due to security issues, the
usage of a direct shared symmetric or HMAC key is not recommended;
most secured operations should use a key derived from a common shared
key instead. The XML library has been enhanced with two APIs in the
CryptoKey class:
|
See Derived keys. |
The COM library has been enhanced with two helper
APIs in a new Util class. In most Web Service security
exchanges, the application must be able to compute digest passwords
and use random binary data to detect reply attacks (for instance).
The COM library has therefore been enhanced with two helper APIs in
a new Util class:
|
See The Util class. |
The StAX reader and writer classes have been enhanced with two new methods to set up the XML stream on a TEXT lob. It enables parsing of an XML document in StAX directly from a TEXT with the readFromText() method, and creating a new XML document saved directly as TEXT with the writeToText() method. | See The StaxWriter class and The StaxReader class. |
The Genero Web Services library has been enhanced
to support XML wildcard attributes. Such wildcard attribute can be set in a XML schema or in a WSDL via the anyAttribute tag. It allows additional attributes belonging to other XML schemas in a main XML schema. The additional attributes are not necessarily known by the main schema. The fglwsdl tool has been enhanced to recognize the additional attribute and to generate a one-dimensional dynamic array with a new XMLAnyAttribute attribute, and the XML Serializer has been enhanced to handle the new XMLAnyAttribute during the serialization and deserialization process. A new option called xs_processcontents is supported by the XML Serializer to generate the XML schema of such wildcard attributes with a processContents tag that defines the way a validator will handle them. |
See Attributes to customize XML serialization and The Serializer class. |
The package contains a new demo called SimplePKI
that demonstrates the usage of XML-Encryption in Genero. It allows several clients to register to a centralized PKI (Public Key Infrastructure) service that generates a unique RSA key-pair per user. The private key is returned to the user during the registration or login, using a derived symmetric key based on the user's password to make it secure. Then any client is able to retrieve the public key of the registered users, and to encrypt XML data only readable by that user. Note: This demo could easily be adapted in a real-world application
if (for instance) all key-pair are stored in a database for persistence.
You can find the demo in the demo/WebServices/simplepki subdirectory or by running the demo application in your installation directory. |
N/A. |