Defining a source system
Released: Extension point
If you have an system that provides output data (e.g. an e-mail application or an ERP system), you must prepare the items of the d.3 repository source system for the creation of mapping. An item in a source system is referred to as a source. A source contains source properties and source categories. By defining a source, you give DMSApp the opportunity to connect the identifier for the source metadata to the identifiers for the d.3 repository metadata.
Preparing your app
To ensure that DMSApp can find source systems, your app must provide this user interface. To find apps that act as source systems, DMSApp uses the concept of an HTTP GET
request for the root resource (systemBaseUri
path with the app name) for the apps. All apps registered to the d.ecs http gateway will be requested. Make sure that the administrator did not actively exclude your app.
Providing the URL for the sources
The root resources for the apps are requested cyclically. The response of an app is then checked to determine whether a link relation with the name sources
is included. This link relation serves as the signal that the app, acting as the source system, offers at least one source for DMSApp. DMSApp executes an HTTP GET
request to the specified link and waits for a standardized JSON object with the HTTP status code 200 from the responding app.
Request
GET https://host/myapp/ HTTP/1.1 Accept: application/hal+json
Response
HTTP/1.1 200 OK Content-Type: application/hal+json { "_links" : { "sources" : { "href" : "/myapp/sources" } } }
Note
The root resources are queried anonymously (without authentication) and this process is executed as an asynchronous background process within DMSApp.
Providing sources
Once the URLs of the sources (sources
) have been determined, DMSApp opens the sources of the apps using HTTP GET
.
The example shows how to arrange the HTTP response of the sources
link relation in order to identify sources for DMSApp.
Request
GET https://host/myapp/sources HTTP/1.1 Accept: application/hal+json
Response
HTTP/1.1 200 OK Content-Type: application/hal+json { "sources" : [{ "id" : "/myapp/sources/mysource", "displayName" : "My Source", "categories": [{ "key": "mycategory1_ID", "displayName": "My category 1" }, { "key": "mycategory2_ID", "displayName": "My category 2" }], "properties" : [{ "key" : "myprop1_ID", "displayName" : "My property 1" }, { "key" : "myprop2_ID", "displayName" : "My property 2" }, { "key" : "myprop3_ID", "displayName" : "My property 3" }] }] }
Structure of a source
Property | Property of a contained object | Description |
---|---|---|
| - | The source system can deliver multiple sources in this array (e.g. e-mail, attachments, etc.) in order to distinguish between different mapping types. |
| Indicates the unique identifier of the source. The ID must be a relative URI. The relative URI should start with the name of the app that provides the source system in order to ensure uniqueness (e.g. | |
| Indicates the display name as displayed in the Source field in the Mappings administrator interface. For internationalization purposes, DMSApp works with the HTTP header | |
| Indicates the array of the categories for the source that are provided for managing and processing mapping. | |
| Indicates the array of the properties for the source that are provided for managing and processing mapping. |
Structure of a source category
Property | Description |
---|---|
| Indicates the unique identifier of the source category. |
| Indicates the display name as displayed in the Source field in the Categories area on the Mappings administration user interface. For internationalization purposes, DMSApp works with the HTTP header |
Structure of a source property
Property | Description |
---|---|
| Indicates the unique identifier of the source property. |
| Indicates the display name as displayed in the Source field in the Source area on the Mappings administration user interface. For internationalization, DMSApp works with the HTTP header |
Note
Make sure that: The sources must be returned quickly in order to ensure that the response time of the Mappings feature is not negatively affected.