This article describes compatibility issues when converting your Knowledge Base from previous versions.
If you are planning to convert your KB to GeneXus X, please start with Converting Knowledge Bases to GeneXus X
New methods are also available for SDT members: Isnull() and SetNull().
Note: If you define an 'Employee' SDT with a 'Manager' member of 'Employee' type, you have to program &Person.Manager.SetNull() if you want to stop recursion.
Before referring to the manager, ask if &Employee.Manager.Isnull(). If you do not program this line, the Manager is automatically initialized.
&Employee.Id = 99
&Employee.Name = 'Mary Shelley'
&Employee.Manager.Id = 69
&Employee.Manager.Name = 'Er'
&Employee.Manager.Manager.SetNull()
&Employee.ToXML()
Programming is the same as in previous versions, plus IsNull() and SetNull() handling.
&Employee.ToXML() produces something like this in GeneXus 9.0 (if &Employee is empty):
<Employee>
<Id></Id>
<Name></Name>
<Manager></Manager>
</Employee>
In GeneXus X it produces the following:
<Employee>
</Employee>
This section describes the process followed by GeneXus X to transform each object's image reference (image path) to an internal object (Image object), when importing a previous version xpz o during conversion process.
See more...
In previous versions the effect of pressing the enter key when the enter event was defined, but wasn´t associated to any web control of the form, was that a refresh of the form was executed. Now, in that case enter event is executed.
See more information here
Since now on, it´s possible to have the grids load automatically after entering the grid filters (without pressiong any "search" key). This is activated through the Automatic refresh object property, which takes the following values:
- When variables in conditions change (default value)
- No
Although the default value is "When variables in conditions change" when importing from previous versions, the value of the property is set to No.
Related to that, when the Automatic Refresh is off, and the grid has no base table, the "search" event has to load the filtered records. This can be achieved by associating it to the Refresh event if necessary. Note that it isn´t necessary if it already executes on the server side (see here..).
Besides, when the Automatic Refresh is set to No, and the grid has base table, changes in the filters of the grid are detected automatically, so just by pressing enter key, the grid will be loaded, without the need of having defined the Enter Event. That doesn´t happen in previous versions. If the Enter Event is defined, pressing Enter key will cause the grid to load (as in previous versions), the difference is that in GeneXus X the Enter Event will not be executed in this opportunity (after entering filters for grids with base table).
See more information here
In previous versions, if A calls B, and B calls C, a return command in C returns to B, and a return command in B returns to C, not to A. Now, the behavior is that B returns to A, which is its actual caller.
See here for more information
In previous GeneXus versions when you insert a Free Style Grid in the form GeneXus automatically creates a table control that contains it.
Now that additional table control is no longer created and its properties are merged with the Free Style Grid ones.
The datatype generated for dates in Informix has been changed in GeneXus X. The actual datatype generated is "DateTime Year to Day". In previous Genexus versions the datatype used is "Date"
This change does not give compatibility problems. The insert and reads of this new datatype is done in the same way.
In GeneXus X it's neccessary to execute F5 in order to update CSS changes (when the user updates a Theme). When updating a Theme and executing F5 GeneXus generates only the neccessary files (the only files updated are CSS per language and images).
Read more about compatibility in the specific sections of each Generator
Ruby Generator
Java Generator
.NET Generator