How user exits in services and adapters work

User exits are a set of predefined points you can use to implement customized functions. You implement them by adding custom code to perform a particular operation, thus extending the functions of the adapter.

Custom user exits are available for the following service sand adapters:
  • FTP Server adapter (V5.2.2 and higher)
  • SFTP Server adapter (V5.2.5 and higher)
  • Mailbox Add service (V5.2.5 and higher)
The User Exit framework consists of the following components, plus a handler that interacts with all the components to perform the particular task:
  • Adapter or service that needs to use the execution framework
  • User exit registry that can be queried for all user exits configured for a particular adapter instance. All user exits are registered and maintained in this registry.
  • User exit framework that you use to obtain the references to the user exit implementation and to run the user exit

The handler’s reference is maintained by the adapter, which refers to the registry and the execution framework.

The following figure shows the user exit architecture:

User Exit Architecture
The following table provides the generic properties that are defined for a user exit:




Contains the list of custom code implementation classes that must be called when a user exit is run.

The implementation classes are called in the order they were added. If a user exit implementation fails, the next user exit implementation in the chain is not called.


Determines the result if an exception occurs when a user exit is run.

Set the value to false only if the user exit is critical and displays a failure.

execution.threshold.time (integer value 1 - 600,000) in milliseconds.

Generates a log statement if total run time of the implementation chain takes more time than allowed by the threshold value.

pool.size (integer value 1 - 10)

These properties are used to manage thread pools for running the user exits.

maximum.queue.length (integer value 1 – 100)

wait.time (integer value 1 - 600) in seconds