Updated to GeneXus 9.0 Upgrade #1 or higher version.
Knowledge Bases created with previous versions need conversion. More information...
If you are converting a KB from GeneXus 7.5 or prior, see also previous versions compatibilities issues.
If a Structured Data Type named 'Messages' exists in the Knowledge base, it will be renamed to 'Messages1' and an new one will be created. This new one will be a system SDT and cannot be deleted. This new SDT will be used by Business Component - Publication as an Enterprise Java Bean If this happens, while opening the KB, the user is adviced and a dialog with details is displayed.
Message Types Domain
If a Domain named 'MessageTypes' exists in the Knowledge base, it will be renamed to 'MessagesTypes' and a new one will be created. This new one cannot be deleted (since it is used by a field defined in the Messages SDT). If this happens, while opening the KB, the user is adviced and a dialog with details is displayed.
Consolidating distribution file (xpz) from previous versions
Attribute Null behavior has changed in this version: See NullsProperty and Empty as Null Property for details.
As it is mentioned in these documents, if you are going to consolidate a xpz distributed from previous version in a new GeneXus 9.0 Knowledge Base, and you want to maintain the previous behavior for Referential Integrity Controls, joins and nulls, you must set the Design Property "Nulls Behavior" and "Empty as Nulls Behavior" as "Version 8.0 or Prior (deprecated)". Then you can change the Compatible value of the attribute property to one of the Yes/No values in a gradual migration process.
Changes in properties
In this version, the default values of some model properties have changed. For a detailed information click here
Also, some properties have been added. For a detailed information click here
New approaches for inference of filters has been defined to improve the navigation between nested For Eachs. More Information in SAC 17271
Order clause changes
As of GeneXus 9.0 Development Environment Upgrade 4, important enhancements in specification inference capacity have been added. These include arrangements in the management of implicit search conditions, which in some cases were wrongly considered, as well as improvements in the Order clause determination for optimizing generated statements.
Because of these changes, if you are coming from previous versions, we recommend that you read the SACs listed under the compatibility section of Development Environment Upgrade 4 Release Notes. Some of these include their own “compatibility” section.
The Navigation Comparer is quite useful for detecting changes in your KB as a result of these arrangements.
One important change that should be noted in particular is that in previous versions when the user did not specify the Order clause the attributes of the primary key were considered as the Order. After the upgrade, that does not necessary happen.
Nulls vs. Empties
Sometimes when a null value was expected to be saved for an attribute, the empty was saved instead. This version fixed many of these unexpected behaviors. In Handling Nulls with GeneXus (9.0) document you could see the correct way to work with Null and empties in GeneXus and the list of fixed issues.
Web Client Side Validation
Web applications automatically will trigger client side code. More Information
Web applications generate automatically relative URLs. In previous versions the absolute URLs were generated. This change affects the output of link() function. More Information in SAC 16667
New URL Access Property for web objects
A new property for objects defined as Components is defined. The default value may cause specification errors on objets with calls to webcomponents. See the documentation here and specially the Compatibility Section for more details.
Programs with no defined variables in parm may not compile
If the variable is not defined in the object, the object exposes the variable as N(10.2) even if in specification time another type is assumed (i.e the specification warning spc0046 is triggered in the called object). The caller may also trigger a warning in specification time: spc0023.
This may cause compilation errors in Java, .NET and .NET Mobile.
More Information in SAC 19581
When reading the value of an attribute (ie att) of the database , the LEN(att) returned the size of the attribute. For example att is C(30), the LEN(att) is always 30. Since the 9.0 version, the value returned is corrected to len(rtrim(att)). More Information in SAC 18581
The trim function when it is evaluated in the server, in the 8.0 version, works as a RTRIM.
Since 9.0 version, it works as ltrim(rtrim). More Information in SAC 18587
IsValid event triggering
Since GeneXus 9.0, Win applications have a different moment in which the IsValid event is triggered, depending on the control. For the Edit controls the IsValid event is triggered when exiting de field (as in GeneXus 8.0 and previous versions). For checkboxs, listboxs, combos and radiobuttons, this event is triggered when a value is selected in the control. More information in SAC 22416
In GeneXus 9.0 this property name is changed to EnableHistory . To program assignments to this property in web objects, you should change the code. More Information in SAC 20147
Default Join Type changed
Up to GeneXus 9.0 the Default Join Type is Outer join in all dbmses. In prior versions the Default Join Type in DB2 UDB for Iseries, DB2 UDB and Informix is Natural join. To keep the prior behaviour just change the Model Property Join Type to "Natural join". For more information in property changhes click here
Default Form Generation
The default control size for long character controls have changed, in order to improve the default form generation. For a detailed information click here
Descendent indexes in Oracle
From now on, descendent indexes are defined for Oracle Version 8.1.5 or higer.
In existing KB with descendent indexes you need to re-create the indexes to really use them. More Information in SAC 19777
C/SQL Generator support
GeneXus 9.0 doesn't include the C/SQL Generator. The last version of the GeneXus C/SQL Generator was version 8.0 U3. Artech's customers will continue receiving support related to this generator but it will not be developed any more. For more information click here.
Read more about compatibility in the specific sections of each generator:
Java Generator Section
.NET Generator Section
ISeries Generator Section
After converting the Knowledge Base to GeneXus 9.0 could be useful to detect early any change in the object behaviors that could lead compatibility problems.
This can be achieved by comparing the objects navigation between the previous and GeneXus 9.0 version. This document explains the methodology and the tool needed to carry out the comparison.