Skip to main content
Matrix42 Self-Service Help Center

Extending ESM Platform Capabilities: Customization Options and Best Practices

Scenarios supported by the ESM Platform where custom coding can extend functionality when configuration alone isn’t sufficient

Overview

The ESM Platform offers powerful tools for creating business applications through low-code practices like Layout Designer and Workflow Studio, allowing organizations to develop solutions rapidly and with minimal programming. This article explores scenarios supported by the ESM Platform where custom coding can extend functionality when configuration alone isn’t sufficient. These options apply to various deployment models, including on-premises, cloud virtual machines, and containers.

Use Cases for Extensibility in the ESM Platform

Implementing Custom Web Services

The ESM Platform enables business logic integration through workflows, allowing seamless integration into the UUX interface. However, workflows are asynchronous, which may not be ideal when immediate results are needed—such as retrieving data to display in a grid. For these synchronous needs, a custom Web Service can be implemented and integrated with the UUX using the "External Service" feature.

Implementation Options:

  • Workflows: Define logic within a workflow and trigger it with the "Start Workflow" API. Suitable for asynchronous operations but lacks immediate response.
  • Integrated Micro-Service: Host a custom service on an external server, integrating it with the UUX via "External Service." This requires additional effort for hosting and maintenance.
  • In-App Custom Service: Develop a web service hosted directly within the ESM Server for seamless integration with UUX, though this approach requires coding.

For a step-by-step guide on building an in-app web service, refer to the Fleet Management Tutorial: Car Tracking Web Service.

Customizing Configuration Item Behaviors

By default, objects in Solution Builder follow a standard mechanism for CRUD (Create, Read, Update, Delete) operations. Custom Configuration Item (CI) behaviors allow for the injection of specialized logic into these operations, enabling tasks like data validation or transformation before committing changes.

Alternatives:

  • Layout Designer Adjustments: Modify data using layout controls before submission. This approach is easy to implement but lacks secure validation.
  • Compliance Rules: Adjust data according to predefined rules. However, this method operates outside the change transaction, offering limited capabilities.
  • Custom CI Behaviors: Inject custom logic directly into CRUD operations for specific items, ideal for secure and complex validations, though it requires coding.

For more details, see Data Object CRUD operations Middleware.

Custom Workflow Activities

The Workflow Studio includes a library of pre-built activities for a wide range of business processes. Additionally, new Workflow Activities are available as packages in the Extension Gallery. If these don’t meet specific needs, you can develop custom Workflow Activities either as PowerShell scripts executed by the "Invoke PowerShell" activity or through coded custom activities.

Options:

  • Invoke PowerShell Activity: Execute custom logic within PowerShell scripts. This method provides flexibility but has limited debugging capabilities and lacks property editor options.
  • Custom Workflow Activities: Code and register new activities tailored to your needs. This option allows greater customization but requires development effort.

Learn more in the Workflow Activities Migration Guide.

Custom Delete Behaviors

Default delete operations in ESM only reset relations with deleted objects, which can lead to "orphan" objects. Custom Delete Behaviors allow you to define relationships between objects and specify actions on deletion, such as cascading deletes or updating related objects.

For more guidance, refer to the [Custom Delete Behavior Guide]

Custom Control Descriptors in Layout Designer

The Layout Designer allows creating layouts in the UUX console with a variety of built-in controls. For scenarios requiring unique functionality, you can create custom control descriptors to introduce new controls, including third-party integrations.

Alternatives:

  • Composite Control: Create controls using a combination of available layout designer controls. This approach is suitable for reusability but does not support third-party controls.
  • Custom Control Descriptor: Develop and integrate any frontend control, providing unlimited customization. This option requires coding.

For more details, see Control Descriptor and How to Add new Control to Layout Designer.

Out-of-Support Use Cases

Engines

In the Legacy Console, Engines were used for background tasks in dedicated Windows services. Although still available, Engines are gradually being replaced by Workers, which support horizontal scaling for better performance. For new background processes, consider using the Workflow Engine.

Learn more about the Engines.

Compliance Rule Custom Actions

The Legacy Console allowed coded actions triggered by Compliance Rules, a feature not supported in UUX. To implement similar functionality, use the “Start Workflow” action instead.

WCF Web Services

In the legacy console, the WCF Service Layer was widely used to expose ESM functionality as SOAP and REST services for cross-process communication and third-party integrations. However, starting with version 12.1.1, the WCF Service Layer is no longer supported. Please use the WebAPI Service Layer instead to host custom web services.

Conclusion

The ESM Platform offers a robust set of customization options, balancing low-code and pro-code approaches to meet diverse business requirements. By understanding the strengths and limitations of each extensibility method, developers can choose the most effective tools for their applications, ensuring both flexibility and maintainability.

  • Was this article helpful?