Tips for deploying an application that references External Objects

Official Content
This documentation is valid for:

When an application uses some features of an External object (distributed in a Module), we generally need the implementation (and all dependencies of that external object) to make the application run.

This document explains some details on how to take those dependencies to runtime, including at the deploy time using the Application Deployment tool.


When working with the .NET Generator, External Objects (EO) provide the Assembly Name property where the implementation of the EO is declared. Sometimes, it may happen that this assembly has other dependencies which are not specified in the EO.

To avoid prototyping errors, take into account the following:

  1. The assembly that implements the External Object (and all the dependencies) must be created as a File object in the KB.
  2. Extract the file to the current directory; that is, you should not set anything in the .NET Generator Extraction Directory property (or set the bin directory). That way, the file stays in the bin directory and it will works at runtime, as it is looked for in that place.

When making the deployment using the Application deployment tool, it will include all the depencies in the package, as it checks at the EO Assembly implementation and the module dependencies.


In the Java Generator, at development time consider the following:

  1. The JAR file containing the External Object implementation must be in the KB as a File object.
  2. The JAR file must be extracted in the drivers directory; that is, you have to set the Java Generator Extraction Directory property to "drivers". That is because there exists a .bat file that copies all the contents of the drivers directory to the lib directory.

When you make the deployment, all the JAR files which are dependencies of the module, are copied to the lib directory of the WAR automatically (and to the root directory in case of command line applications). For more information see SAC #51230