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

sources

-

The source system can deliver multiple sources in this array (e.g. e-mail, attachments, etc.) in order to distinguish between different mapping types.

id

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. /myapp/sources/mysource).

displayName

Indicates the display name as displayed in the Source field in the Mappings administrator interface.

For internationalization purposes, DMSApp works with the HTTP header Accept-Language. This HTTP header must be evaluated by the source system, and the display name for the source must be displayed in the corresponding language.

categories

Indicates the array of the categories for the source that are provided for managing and processing mapping.

properties

Indicates the array of the properties for the source that are provided for managing and processing mapping.

Structure of a source category

Property

Description

key

Indicates the unique identifier of the source category.

displayName

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 Accept-Language. This HTTP header must be evaluated by the source system, and the display name for the category must be displayed in the corresponding language.

Structure of a source property

Property

Description

key

Indicates the unique identifier of the source property.

displayName

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 Accept-Language. This HTTP header must be evaluated by the source system, and the display name for the property must be displayed in the corresponding language.

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.