Unofficial Content

Development Environment Specific Section


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:
Development Environment
Knowledge Manager
Other Improvements

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 and activation of the version.




  • The Check specification option now checks for used Structured Data Type 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.

Specification Report

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)

Nested Navigations

  • 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.

Calling Web Objects

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.



Improvements in the Theme Editor

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.

Data Area in Web Objects Styles

New Data Area Web is now available for Web panels styles and Web transactions styles.

Development Environment


New Objects

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.
More Information...

Methods and Functions

  • 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.

New Data Types

  • 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.

Web Form Default

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.

Select object

  • 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 date/datetime validation for each DBMS

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.


  • 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.

Environment attributes [Win], [Web], [BC]

SAC # 17684 A new [BC] environment attribute has been added to group specific Business Components sections. It can be used in rules, events and subroutines.

Help Improvements

  • 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.

Wizard New Model

The Wizard for creating models added the National Language Support property when using Japanese or Chinese KB languages.

New Database Reverse Engineering Tool

The Tools options of the GeneXus Development Environment menu bar changed the Data View Generator tool for the new Database Reverse Engineering one. More Infofmation...

New GeneXus Patterns Tool

The GeneXus Tools Menu adds a link to GeneXus Patterns

Grammar Control

  • 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.



Select/List attributes of a subtypes group

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.

Select/List attributes

Now, when listing attributes the "pattern" applies to the attribute name and description.

Improvements in Navigation Reports

  • 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.

Example 1
PERSON Transaction

CUSTOMER Transaction
CustomerCod*      subtype of PerCod
CustomerName     subtype of PerName

INVOICE Transaction
CustomerName     //CustomerCod is not present in the Invoice structure.

Example 2
CUSTOMER Transaction

INVOICE Transaction


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 warning message.




Transaction Limits

The maximum quantity of attributes in a Primary Key definition changed from 20 to 32.
For more information click here.

Transaction Levels Name

Each transaction's level can be named. This names will be used by Business Components Patterns (GX 9.0) and GXquery. More Information...

Description Attribute for Transactions.

A Transaction can have a Description Attribute This attribute is used in PatternsWorkWith and GXplorer.

Delete a referenced list of objects

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.


Knowledge Manager


Object Comparison.

Compare the incoming distribution file before actually consolidating it using the new Comparison Tool


Other Features


Update Rule

The Update Rule allows editing/updating attributes that are not stored in any of the base tables of a transaction.

New Clauses


The function After(Attribute) has been replaced by the dependencies clause

Defined By in New Command

In order to define explicitly the table when inserting a record, use this new clause

New syntax for array/matrix

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

NoAccept and Color Rule

The rule Noaccept() and Color() allows: Structured Data Type BCs and Arrays.

Variables Properties

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.

Insert Event

An insert event option (Ctrl E) is added in Transaction rules, to insert events such as AfterXXX and BeforeXXX.
More Information...

Contextual Menu

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.

Dynamic Combo Boxes definition

Important improvements in the generation of Dynamic Combo Boxes have been achieved, click here for more information.

Using GeneXus and licenses

  • 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.