Reserved words in GeneXus have a special meaning in the target languages, SQL statements, DBMS, or Windows environment. These words are essential for the underlying systems to work correctly, and therefore if you use them as object names, attribute names, table names, index names, module names, etc., you might encounter unexpected errors during code generation or at runtime.
GeneXus also has some keywords that cannot be used as object names, attribute names, table names, index names, variable names, etc. These keywords are specific to GeneXus and are used to define the structure and behavior of your applications.
The reserved words in GeneXus can be categorized as follows:
- Target Language Reserved Words: These words have a special meaning in the programming language you are targeting (e.g., .NET, .NET Framework, Java).
- DBMS Reserved Words: These words have a special meaning in the database management system (DBMS) you are using (e.g., SQL Server, MySQL, PostgreSQL, Oracle).
- Windows Reserved Words: These words have a special meaning in the Windows operating system, particularly when naming files or folders.
Avoid using the following patterns:
- GX: Do not use "GX" at the beginning (prefix) of your object names, attribute names, table names, index names, etc. For example, you cannot name a Transaction object "GXCustomer" or an attribute "gxCustomerId".
- _BC: Do not use the suffix "_BC" to name your objects, attributes, tables, or indexes.
- Database: Do not name a Transaction object "Database".
- Event: Do not name a Transaction "Event".
- modified, calendar, gxgral, gxwebsocket, static: Do not use these words to name your objects, attributes, tables, or indexes.
- _impl: Do not use the suffix "_impl" to name your Procedure object in Java.
- GAM: Do not use "GAM" as the name of your Knowledge Base (KB) when GeneXus Access Manager (GAM) is activated.
Avoid Using the Following Prefixes:
You should be aware of reserved words when working with Structured Data Types (SDT) and Business Components (BC). For example:
- &SDT.Imageuri (or &BC).
- &SDT.Audiouri (or &BC).
- &SDT.Videouri (or &BC).
- &SDT.Fileuri (or &BC).
The words Imageuri, Audiouri, Videouri, and Fileuri are reserved. Their use as attribute names within an SDT or BC can cause problems when trying to assign a value to them.
Avoid declaring objects (located inside the Root module) whose names:
- Are JavaScript reserved words. Refer to the JavaScript reserved words for a complete list.
- Collide with Window object properties. Avoid using names that conflict with properties of the Window object.
- Are not supported in the DOM. Avoid using names that are not supported by the Document Object Model (DOM).
Take this into account also when developing Web User Controls or User Control objects.
- Do not use the "Scripts" value for property values on a User Control, as this is internally used to load Scripts dependencies.
- SQL Server: Refer to SQL Server for a complete list.
- MySQL: Refer to MySQL for a complete list.
- PostgreSQL: Refer to PostgreSQL for a complete list.
- Oracle: Refer to Oracle for a complete list.
- Windows (reserved words for filenames): Refer to Windows for a complete list.
- Environment - Transaction Naming: Avoid using "con" as a Transaction name. If you do, you will encounter a generation error. This error message might look something like: "Waiting for 1 generator to finish their work..."
- Front End - Web Object Naming: Do not use "Location" as the name of Web Objects. For more information, read SAC #47209.
- IDE - Transaction Naming: Do not use "Order" as the name of a Transaction. For more information, read SAC #47215.