External Objects (EO) of Native Object type store all the information (name, properties, methods, and parameters) about how to access a defined class in a Java class, .NET assembly, or Javascript source.
Each EO corresponds exactly to a class of the external resource.
Once the EO is defined in GeneXus (and the methods and properties exposed by the external resource are properly mapped), you can manage these methods and properties inside the GeneXus source.

Note: For .NET and Java, there are tools to help define the EO structure:
- .NET Assembly Import Wizard and
- Java Class Import Wizard
The tools can be accessed from the Tools option in the GeneXus menu (under the Application Integration option).

Name: name of the EO.
Description: description.
Type: EO type (Native Object).
Namespace: class namespace.
Module/Folder: folder where the EO is located.
Object Visibility: accessibility from other objects in different Modules.
.NET/.NET Framework Information
.NET/.NET Framework External Name: name of the external class (.dll).
.NET/.NET Framework Assembly Name: name of the assembly associated with the EO.
.NET/.NET Framework Constructor Parameters: list -separated by commas- of parameters to be passed to the assembly constructor. The constructor parameters are always constants.
.NET Package ID: it uniquely identifies the EO.
Java Information
Java External Name: name of the external class (.class).
External Package Name: name of the package where the class associated with the EO is located.
Java Constructor Parameters: list -separated by commas- of parameters to be passed to the external class constructor. The class constructor parameters are always constants.

Property Type: it indicates whether it is a read-only, read/write, or member type property.
Internal Name: internal name to be given to the property.
Description: description.
Type: type of data that the property will have in GeneXus.
IsStatic: determines if it is static or not (True, false).
Control Type: type of control to be shown.
.NET/.NET Framework Information
.NET/.NET FrameworkInternal Name: external name of the property in the .Net class.
.NET/.NET FrameworkExternal Type: external data type of the property.
Java Information
Java External Name: external name of the property in the Java class.
Java External Type: external data type of the property.

Internal Name: internal name of the method.
Description: description.
Type: data type of the returned value, if any.
Based on: determine if is based on any other data type.
XML Name: exposed Name of the method.
Is static: determines if it is static or not (True, false).
External Member Type: Three possible values are Default, Static, Instance.
.NET/.NET Framework Information
.NET/.NET Framework External Name: external name of the method in the .NET class.
.NET/.NET Framework External Type: external data type of the returned value.
Java Information
Java External Name: external name of the method in the Java class.
Java External Type: external data type of the returned value.
Java Method Throws Exceptions: it indicates whether the method in the external class sends an exception; the default value is No.

Access Type: it indicates whether the parameter is an input-only, output-only, or input/output parameter.
Internal Name: internal name of the parameter.
Description: description.
Type: data type that the parameter will have in GeneXus.
External Type: external data type of the parameter.
The events should always be defined as static in GeneXus.
Suppose that you create a Native Object type EO called "Maths". Then you define a Maths variable called &Maths.
The code looks as follows:
Event enter
&res = &Maths.Sum(&parm1,&parm2)
EndEvent
The method returns the sum of both values. The first and second parameters are the values that will be added.
.NET: In the case of using EOs to access assemblies, the assembly or assemblies should be copied to the bin directory of the work environment. When the application is deployed, the assemblies must be taken to production.
Java: In the case of Java classes, take the jar/zip containing the external classes that have to be included in the classpath.
JavaScript: The JavaScript resources have to be located within the rest of the static resources of the web application. It needs to be referenced in the GeneXus code.
- Vector and matrix values are not supported; only scalar variables are supported.
- Array data types such as String[], Date[] and so on are not supported.
- Enum data types are not supported.
- If there is an EO method called Initialized, or another reserved word, it must be defined with another name but keeping the External Name property.
External Object for Android
External Object for iOS Devices
External Objects for Javascript