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:
Specifier
Development Environment
Objects
Editors
Lists
Properties
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.
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.
More Information...
- 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.
- 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.
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.
- 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.
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...
The
GeneXus 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.
Example 1
PERSON Transaction
Structure:
PerCod*
PerName
CUSTOMER Transaction
Structure:
CustomerCod* subtype of PerCod
CustomerName subtype of PerName
INVOICE Transaction
Structure:
InvCod*
CustomerName //CustomerCod is not present in the Invoice structure.
Example 2
CUSTOMER Transaction
Structure:
CustomerCod*
CustomerName
INVOICE Transaction
Structure:
InvCod*
CustomerCod
CustomerName
Rules:
nocheck(CustomerCod);
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.
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 and
GXplorer.
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()
....
Endfor
Now, you can avoid the parenthesis:
For &Var in &array
....
Endfor
The rule Noaccept() and Color() allows: Structured Data Type
BCs and Arrays.
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.
More Information...
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.