 | Extensions are available in Professional Edition or higher. |

Extensions allow you to define certain configuration settings within your Process such as Connection information to be specified at "deploy-time" instead of "build-time". With Extensions, you can develop and maintain a single Process but be able to specify different settings for each location when deploying that Process to multiple Atoms or Environments. Extensions are also fundamental to building Widgets.
The definition and setting of Extensions are indicated throughout the application by the blue puzzle piece icon (
).
Working with Extensions
Extensions are defined within the Process component. You can define Extensions for a number of types of settings:
- Connection Settings
- Schedules
- Process Properties
- Object Definitions (Widgets only)
- Data Maps (Widgets only)
- Cross Reference Tables (Widgets only)
See Defining Process Extensions for how to define each of these types.
If your Process contains one or more child Processes, the Extensions for all of the Connections, Process Properties, and Maps from the child Processes must be defined in the parent Process to be available.
Once the Extensions are defined, you will need to set values for those Extensions. You will set values during Atom or Environment deployment but you can also set Extension values for Test Mode.
When a Process is executed with Extension values set, those values will extend or override any values that may be configured in the underlying components.
See Setting Extension Values for how to set values for each Extension type.
Use Cases
Multiple Environments
The most common use case involves Connection information and multiple Environments. In more formal development cycles, there will often be multiple instances of the applications to which you are connecting, such as "Test" and "Production" instances. For example, assume you have a Process that connects to database server. The "Test" and "Production" instances of that database server will probably have different Host Names, User Names, Passwords, and maybe even Ports. Within the Process, you can define these settings that will vary per Environment as Extensions, and then provide the "Test" credentials when deploying to the "Test" Environment and the "Production" credentials when deploying to the "Production" Environment.
Widgets
Widgets are a special way of deploying Processes. Each Widget instance will need to have its own Connection information and Process Property values. The various Extensions defined in the underlying Process are included in the Widget wizard and exposed to Widget end users to provide their specific settings.