This section explains all the changes and improvements done in GeneXus
9.0 Development Environment.
We have classified all the improvements in the following groups:
In some cases you may find links to other documents with more detailed information.
If you will convert your Knowledge Base to Genexus 9.0, check the Compatibility section
and the Propierties section
For detailed information about the Development Environment improvements click here
Check the requirements
of the version.
- The Check specification option now checks for used SDT changes.
- SAC# 18995 Code optimization when only one record is retrieved (Select Top).
- SAC# 18908 The specification process of subtype group has been improved, specifying only those groups where the related tables changed.
- SAC# 17866 Avoid inferred conditions in nested For Eachs.
- SAC# 16434 It is possible to define a Subtype (Primary) in several groups.
- New subtype group controls: spc0118 Subtype group %1 overlaps %2. You should consider joining them into %1. The following attribute(s) may be reported as not instantiated when referenced: %3.
- spc087:%1 language statements are used in this object. This warning is added when an object is using language specific code like dBase, Java, VB, etc.
The following changes were done to the specification report diagram:
- The implicit For eachs associated to Grids are not shown. in Previous versions (up to GeneXus 8.0) was not clear if a For each was implicit or there was a For each in the Load event. Now, this navigation is shown under the title Event Load in the associated report.
- Whenever the The Load method or command is used, the report details if it was added automatically by GeneXus
- It details when a grid is associated to a Collection.
- SAC # 18996 Better Parameter Control when using Extended Data Types, BC or SDT.
- SAC # 14647 Better Parameter Control when using UDP function.
- SAC# 17915 How to change the button fonts?
- SAC# 14470 Support of the IN operator with enumerated domains, for instance: &var IN ( Domain.A , Domain.B, Domain.C)
- SAC # 17271 New approaches for filters inference in nested for eachs.
- SAC # 15740 Inferred join is not performed in nested For Eachs in some cases.
- SAC # 17404 Nested navigations with subtype and supertype in the extended table of the nested table were fixed.
Now, it is possible to call a Web Object
from a Procedure
. When using the Expand dynamic calls
property, the Web object with the matching parameters associated to the Call statemant will be included.
An Input Method Editor (IME) allows users to enter and edit Chinese, Japanese, and Korean characters. The IME is an essential component for writing Chinese, Japanese, and Korean scripts.
New Data Area Web
is now available for Web panels styles and Web transactions styles.
To be able to translate the applications to different languages, the Language Object
has been created. It contains all the GeneXus
predefined texts plus the ones which are needed to be translated.
- New methods are available for attributes and variables. More information...
- Function Char(<numeric>) is declared as standard function.
- Method Sort() is declared as standard function.
- New Function/Method RoundToEven()
- The CDOW() and CMonth() functions support the second parameter (Idiom) variable.
- Function MOD() is declared as standard function.
- The NoCheck Transaction Rule is declared deprecated.
- Function UDF() is declared deprecated.
- SAC# 17825 New ByteCount function to count bytes instead of characters in a string.
- New Methods for data types
- The JSEvent method now applies to Edit controls in Grids and Bitmap variables.
- The RefMsg Rule now supports an expression as a parameter.
- Function to create character expression with parameters markers.
- The and Directory have been implemented to handle the machine's File System.
- LDAP is a new GeneXus data type that allows connecting to LDAP servers. It can be used to authenticate users or retrieve attributes under a specified context.
The behaviour of the Form creation (Create Default
option in the Edit
Menu) has been modified when using attributes configured as Dynamic ComboList boxes. Now, when the attribute is Primary key, it is generated as an Edit Control
, not taking into account it's Control Info
definition. It is used when the attribute is not part of the Transaction's Primary Key.
- This dialog added the option to filter by Business Component
- The Add Callers button is added (when specifying and distributing) to retrieve the objects that directly call those included in the current list.
Automatic rules are generated for Date and Datetime attributes accepted in a Transaction to disable the possibility of inserting invalid values. The following error message is displayed: Field <Att_Date> is out of range
For instance, in SQL Server the date cannot be less than 01/01/1753.
SAC # 17684
- SDT elements can be used in Web forms. More information...
- SAC# 18111 SDT elements definition, inheritance and based on attribute.
- SAC# 17864 The default name of controls associated to SDT items was changed.
A new [BC]
environment attribute has been added to group specific Business Components
sections. It can be used in rules, events and subroutines.
- Multilanguaje Help More Information...
- Object, Attribute and Variable support help for each language.
- You can select the language to edit the help by the language combo in the GeneXus Toolbar
- The Tools options of the GeneXus Development Environment menu bar added the following options to export and import translations. More Information...
- Export Translation File.
- Import Translation File.
- New Empty as null attribute control property Empty as null
- SAC# 17863 Disable Warnings property at Object level.
- The Disabled warning Model property added the value spc0096 as default.
- The InternalName property is declared as standard property for Grids and Free Style Grids.
The Wizard for creating models added the National Language Support
property when using Japanese or Chinese KB languages.
options of the GeneXus
Development Environment menu bar changed the Data View Generator
tool for the new Database Reverse Engineering
one. More Infofmation...
Tools Menu adds a link to GeneXus Patterns
- SAC# 18945 Error message related to GeneXus grammar has been improved, adding context information.
- SAC# 17398 Better control of conflicts in expressions.
- The Select Model dialog shows the Model's Id, is resizable and can be sorted by columns.
- The Select Control dialog of Web Forms (Edit/Select Control or Ctrl-L) is resizable and can be sorted by columns.
- The Insert Variable dialog added the description column.
- The Execution dialog added the refresh column.
- The Specify dialog is resizable, can be sorted by columns and added the icon of each object type.
- The Select variable dialog is resizable and can be sorted by columns.
- The Select event dialog in transactions is resizable.
- The Define Variable and Attribute dialog now does an incremental search to select it's data type.
The Select Attribute
dialog added the "Subtype group" Type option in the associated Combo Box to enable the selection of attributes of a specific subtype group, for instante *None.
Now, when listing attributes the "pattern" applies to the attribute name and description.
- Subtype group analysis report.
Until now, this report only appeared in the first specification after an update to the database structure or in the Impact Analysis Report, provided there existed a warning in group definition. Now it is possible to call this report at any time from the Build/Subtype Group Analysis menu option, or by right-clicking the Subtype Group folder.
- Not infered attribute's control in Transactions.
If an attributes cannot be infered in Transaction now it is noticed by an spc0043 warning message.
CustomerCod* subtype of PerCod
CustomerName subtype of PerName
CustomerName //CustomerCod is not present in the Invoice structure.
In previous versions you could see, in both examples, that the attribute CustomerName was not infered by reading the Invoice navigation. Now this report shows the spc0043: CustomerName is not instantiated
The maximum quantity of attributes in a Primary Key definition changed from 20 to 32.
For more information click here
Each transaction's level can be named. This names will be used by Business Components Patterns (GX 9.0)
and GXquery. More Information...
A Transaction can have a Description Attribute
This attribute is used in PatternsWorkWith
If you want to delete many objects at once
now it is possible if all selected objects are only called from others included in that list.
Compare the incoming distribution file before actually consolidating it using the new Comparison Tool
The Update Rule
allows editing/updating attributes that are not stored in any of the base tables of a transaction.
The function After(Attribute)
has been replaced by the dependencies clause
In order to define explicitly the table when inserting a record, use this new clause
It is possible to make reference an array/matrix variable without parenthesis.
For example, in previous versions you must use it as follows, otherwise, this error appeared:
Error: '&array' invalid array expression, expecting parameter expression after array name.
For &Var in &array()
Now, you can avoid the parenthesis:
For &Var in &array
The rule Noaccept() and Color() allows: SDTs BCs
New options in the contextual menu to define variables in a easy way while is writing the code: "Define..." and "Defined based on". The last one appears when the variable name finish with the name of a domain or is the same as attribute name. If the variable is already created, the option "Edit..." appears in the contextual menu as a shortcut to edit the variable.
An insert event option (Ctrl E) is added in Transaction rules, to insert events such as AfterXXX and BeforeXXX.
New Contextual Menu options have been added:
- Define... enables you to define a variable while coding.
- Define Based On is shown when a variable ends with a Domain name or matches an attribute.
- Edit. for existing variables.
Important improvements in the generation of Dynamic Combo Boxes
have been achieved, click here
for more information.
- SAC# 18824 Multiple sessions of GeneXus can be open from the same PC, using the same network license.
- SAC# 18835 It is possible to get the Development environment license from one PC and the generators license from another.
- SAC# 18031 The license expiration reminder windows now closes automatically after some seconds and does not interrupt the generation process.