Functionality Extension Points

There are several ways you can extend the capabilities of your EnterWorks implementation. Extension points to EnterWorks functionality allow you to directly access the database, execute custom code, configure and trigger business processes, or connect to external applications.

For specific information about each of the extension points, see:

Summaries of these extension points are given below.

  • Data Model Elements: The ability to add custom data model elements allows you to configure the storage, validation, and access to your data.

  • Validation Callouts: A validation callout is a Java-based process that performs a specific validation on an assigned attribute. The available types of callouts are:

    • Validation PreSave Callouts provide the ability to inject Java code to examine and possibly alter records before they are created or updated through the UI, API, or imported files.

    • Validation Bulk Callouts provide the ability to inject a SQL query to determine which records out of a specified set of records fail to meet the requirements defined by the rule specified in the query. This may involve accessing data in other records in the repository, records in other repositories, or other tables in the database.

    • Custom callouts provide the ability to inject Java code to perform any needed specialized validation on a repository record when the record is validated. These callouts must follow the prescribed interface in the form of a Java class. Examples of callout rules are:

      • Inheritance: The outcome of the validation is dependent upon the content of a linked parent record according to configured inheritance rules.

      • Comparison to data outside of EnterWorks, such as using an API to access a web service.

        Note: While it is possible to use a custom callout to access data outside EnterWorks, it can be very expensive in terms of impacting system performance.
      • Complex logic that cannot be expressed in SQL (a bulk callout) or in a simple validation rule.

  • Export/Syndication Advanced Callouts provide the ability to inject Java code to potentially alter the contents of a export in its staging table before a file is generated or into an XML publication file after it has been generated but before it is made available to its intended targets.

  • VTL PreSave Callouts update records using the VTL script defined in the callout properties. They are custom business rules that are managed with the Validation rules. They are applied when records are created or updated (similar to Validation Pre-Save callouts). They can only access data in the repository record being created or updated and they update a single attribute in that record.

  • Syndication Template mapping allows you to specify VTL scripts to transform attribute data prior to export. The mapping can only access data in the record. The target of the transformations are the output columns.

  • Scheduled Import Preprocessing and Scheduled Export Post-processing: The Scheduled Imports feature provides the option to inject Java code to preprocess files before they are imported. The Scheduled Exports feature provides the option to inject Java code to post-process files after they have been exported.

  • Event Handler: Triggers can be placed such that when a repository record is created, updated, or deleted, custom Java code can be invoked to create, update, or delete other repository records.

  • Change Notification: The Change Notification module is a type of event handler. It provides the ability to track changes made to designated attributes in designated repositories and take actions specific to those changes. Change notification is configured through the UI. It does not require writing Java code, compiling or linking files, or for services to be restarted. It does allow the option of using SQL to directly access the database.

    The notification actions available are:

    • Update designated attributes with the specified values in the changed record.

    • Log change details to the Change Notification Log.

    • Send e-mail to the designated addressee(s).

    • Facilitate sending Language Translation Requests to an external language translating service.

    • Update designated attributes with the specified values in target repository records associated with the changed record.

    • Facilitate transformations to designated attributes based on values and conditions defined in a Change Notification Transformations repository.

    For more information, see the Change Notification Guide..

  • Shortcuts: The Shortcuts widget (in the New UI) or dropdown (in the Classic UI) can be configured to access a custom JSP page. Shortcuts can also be configured to perform a specific operation. The most commonly performed operations are:

    • Opening a repository with a preselected user preference and a predefined search.

    • Creating a new record in a designated repository.

    • Generating a blank import template for a designated repository.

  • Custom Widgets allow you to define a custom JSP page (for the Classic UI) or a custom HTML page (for the New UI) that can query the EnterWorks database, use the EnterWorks APIs, or connect to external applications.

  • Custom Actions allow you to define an interactive JSP page (for the Classic UI) or a custom HTML page (for the New UI) that will be invoked by the Detail Editor when the assigned attribute is opened for editing. For example, for an attribute that stores addresses, you could create a page that connects to an external application that verifies the address.

  • Custom Microservices: EnterWorks uses RabbitMQ as a message broker between services. Executables can be created that are driven by messages from RabbitMQ. These executables can access the EnterWorks database, use the EnterWorks APIs, or connect to external applications. The ability to create custom microservices also gives you the ability to create custom APIs to provide external users a select set of functionality provided by the EnterWorks API or a higher-level of EnterWorks API functionality, or to throttle API requests.

  • Workflow: Custom functionality can be implemented by creating workflows that use the existing EnterWorks activities. Some of these activities support injecting custom Java, JavaScript, or DOS Command Line code.

  • Workflow Custom BICs: In addition to using the existing EnterWorks workflow activities, you can also create your own custom activities. Custom activities can be used to create specialized processing within the context of the workflow to access the EnterWorks database, use the EnterWorks APIs, or connect to external applications.