Page Properties |
---|
Status | status | colour | Yellow |
title | PROGRESS |
Priority | Product Version | 2.4 |
---|
Report Note | presentable |
---|
Assignee | Antje, Nils |
---|
RessourcesResources & Remarks RemarksConcept article linking to the respecive tutorials Modification History Name | Date | Product Version | Action |
---|
Antje | 08 FEB 2021 | 2.4 | New page properties macro. | Antje | 05 MAR 2021 | 2020 Winter | New interceptor type added. |
|
Excerpt |
---|
Intervening a running process at a certain position and redirecting the process flow in order to include project-specific processing steps. |
...
Section |
---|
|
Column |
---|
Table of Contents Table of Contents |
---|
exclude | (Table of Contents|Read on|Another Tutorial|Another Concept Article|Another interesting System Hooks|Preprocessing Metadata using Webhooks|Interceptor Example Tutorial) |
---|
|
|
|
Introduction
The interceptors allow for project-specific extensions of the yuuvis® Momentum standard process flows. The running process flow can be intervened in redirected by a condition set on the processed object , that has to be specified in the interceptor definition. Whenever the process flow satisfies meets the condition, the project-specific process extension is included for the currently processed object at this position of the process flow. The standard process is resumed subsequently.
Main part(s)
Subsection(s)
Code Block |
---|
language | java |
---|
title | For Loop in Java (brief, concise title) |
---|
linenumbers | true |
---|
|
for (int i = 0; i < 10; i++)
{
System.out.println("Hello World " + i);
} |
Summary
Thus, the alternative process can entirely replace the standard one from this position on or resume the standard process at a specified position.
Interceptor Configuration
The condition for the intervention of the process flow is defined in the interceptor configuration file \system\interceptorConfiguration.json
.
Parameters
The following parameters are available for the interceptor configuration:
Parameter | Type | Required | Description |
---|
type | String | yes | The type of the interceptor. It defines the position in the process flow where the interceptor can step in. |
predicate | String | yes | The condition that triggers the redirection of the process flow in order to include the project-specific process extension. The string can provide the condition either in Spring Expression Language (SpEL) or Javascript. Thus, the string always has to start with a prefix spel: for SpEL or js: for Javascript. |
url | String | yes | HTTP address of an external endpoint defining the project-specific process extension. Dynamic components (properties of the processed object) can be included in curly brackets. |
useDiscovery | Boolean | no | Decides whether to resolve the url string at the Discovery-Service or not. If not specified, a default value is set. |
Interceptor Types
There are different types of interceptors available that interrupt the process flow at different positions.
Interceptor type | Evaluation target of the predicate | Interceptor input data | Description |
---|
getContent | API DMS object in JSON format derived from given objectId | objectId | Manipulation of the binary content of the return statement by a project-specific service |
search | Structure of the specific class SearchInterceptorObject | Search query object | Manipulation of the search query parameter and the search result. |
updateDmsObject | First API DMS object in the list in JSON format that is passed to the corresponding update endpoint | Updated metadata and metadata of current version | Manipulation of the update properties that will be applied to a DMS object. |
dms.request.objects.upsert.database-before | All objects of the objects list in the data part of the multipart body after enrichment. | a multipart request body | The take-off point of the interceptor is after the REPOSITORY service. The initial request body is already normalized, validated and enriched with content stream properties. |
Interceptor Configuration Example
The following example configures an interceptor that will be trigger by every update of a content (action code 301
). At the take-off point after the REPOSITORY service, the enriched request body is passed to the external endpoint specified by url
.
To activate this configuration, the REPOSITORY service needs to be restarted.
Code Block |
---|
language | yml |
---|
title | Example interceptorConfiguration.json. |
---|
linenumbers | true |
---|
|
{
"interceptors": [
{
"type": "dms.request.objects.upsert.database-before",
"predicate": "spel:options['action']==301",
"url": "http://exampleinterceptorcontentupdate/api/dms/objects/upsert",
"useDiscovery": true
}
]
}
|
Summary
This article gave an overview of the interceptors in yuuvis® Momentum. If you want to extend the functionality of your system, system hooks also might be an interesting topic for you.
Another Tutorial
...
Insert excerpt |
---|
| Interceptor Example Tutorial |
---|
| Interceptor Example Tutorial |
---|
nopanel | true |
---|
| Keep on reading
|
|
|
...
Another Concept Article
...
Another interesting Tutorial
...
Insert excerpt |
---|
| Preprocessing Metadata using Webhooks |
---|
| Preprocessing Metadata using Webhooks |
---|
nopanel | true |
---|
| Keep on reading |
|
|