Skip to main content
Skip table of contents

Welche Daten werden an meinen Webhook zum Ändern von Werten für ECM-Zieleigenschaften vor dem Archivieren übermittelt und als Antwort erwartet?

Um Webhooks zu verwenden, müssen Sie zuerst in einer anderen Anwendung als edoc archive service einen Webhook bereitstellen, z.B. in edoc automate.

Der Webhook muss für folgende Funktionen Informationen entgegennehmen und eine entsprechende Antwort zurückgeben:

  • Verbindungstest

  • Funktion des konfigurierten Verwendungszwecks

Definieren von Verbindungstests in Webhooks

Alle Arten von Webhooks verwenden bei einem Verbindungstest dieselben Details.

Im Header befindet sich neben den Standardheadern der Authorization-Header, wenn ein API-Schlüssel für den Endpunkt konfiguriert wurde:

JSON
{
  "Authorization": "Bearer <API Key>"
}

Für den Verbindungstest wird eine POST-Anforderung an den Endpunkt mit folgendem Body gesendet:

JSON
{
  "type": "PING"
}

Als Antwort wird der Statuscode 200 erwartet.

Definieren des Webhooks zum Ändern von Werten für ECM-Zieleigenschaften während des Archivierens

Für Vorgänge, bei deren Vorgangsarten ein Endpunkt für den Webhook ausgewählt wurde, gilt Folgendes:

Zum Ändern von Werten für ECM-Zieleigenschaften während der Archivierung wird von edoc archive service bei jedem Vorgang die Feldzuordnung von ERP-Feldern zu ECM-Feldern vorgenommen. Anschließend werden die daraus entstehenden Werte für die ECM-Zieleigenschaften zusammen mit Informationen zum Vorgang an den Webhook mittels einer POST-Anforderung gesendet.

Im Header der Anforderung befindet sich neben den Standardheadern der Authorization-Header, wenn ein API-Schlüssel für den Endpunkt konfiguriert wurde:

JSON
{
  "Authorization": "Bearer <API Key>"
}

Folgende Daten werden im Body der Anforderung gesendet:

  • Typ after-attribute-matching

  • Ein Array mit Daten zum Vorgang:

    • ID und der Name des konfigurierten Endpunkts für den Webhook.

    • Alle Daten zum Vorgang, die auch in der edoc archive service-Cockpittabelle angezeigt werden.

    • Konfigurierte Vorgangsart zum Vorgang.

    • Werte für ECM-Zieleigenschaften, die durch die Feldzuordnung von ERP-Feldern zu ECM-Feldern entstanden sind.

    • Alle Daten des Vorgangs im ERP-System.

Beispiel für den Body einer Anforderung an einen Webhook

Bei einer Anbindung an Microsoft Dynamics 365 Business Central oder Microsoft Dynamics NAV kann der Body folgendermaßen aussehen:

JSON
{
	"type": "after-attribute-matching",
    "data": {
		"webhookEndpoint": {
            "id": "123456789-123456789-123456789-123456",
            "name": "After attribute modification webhook for Sales Orders"
        },
		"archiving_process": {
            "data_status": 1,
            "document_status": 1,
            "document_type": 2,
            "ecm_id": "A000000001",
            "ecm_keys": [
            ],
            "erp_entry_number": "123456789-123456789-123456789-123456",
            "erp_system_id": "123456789-123456789-123456789-123456",
            "error_code": "Error 400 - Some error occurred when ...",
            "error_count": 1,
            "file_extension": "PDF",
            "file_name": "SalesOrderConfirmationXYZ",
            "index_sub_table": 37,
            "index_table": 36,
            "index_table_key": "Field1=0(1),Field3=0(101003)",
            "integration_page": 0,
            "linking_instance_id": "123456789-123456789-123456789-123456",
            "process_status": 1,
            "process_type": 1,
            "process_type_id": "123456789-123456789-123456789-123456",
            "process_version": 1,
            "report": 1305
        },
        "process_type": {
            "active": 1,
            "archiving_process": 1,
            "description": "Sales Orders - Confirmations",
            "document_type": 2,
            "id": "123456789-123456789-123456789-123456",
            "index_sub_table": 37,
            "index_table": 36,
            "integration_page": 0,
            "linking_instance_id": "123456789-123456789-123456789-123456",
            "name": "Sales Orders",
            "process_type": 1,
            "reindexing": 0,
            "report": 1305,
            "table_link": "Field(1)=Field(1),Field(3)=Field(3)",
            "versioning": 1
        },
        "attributes": {
            "doc_field[1]": [
                "someFieldContent1.1",
                "someFieldContent1.2"
            ],
            "doc_field[2]": [
                "someFieldContent2"
            ]
        },
        "erp_data": {
            "header": {
                "company": "Company Name",
                "fields": [
                    {
                        "id": 1,
                        "name": "DocumentType",
                        "type": "Option",
                        "value": "Order"
                    },
                    {
                        "id": 3,
                        "name": "No",
                        "type": "Code",
                        "value": "101003"
                    },
                    ...
                ],
                "id": 36,
                "name": "SalesHeader",
                "position": "Document Type=CONST(Order),No.=CONST(101003)",
                "primaryKey": {
                    "fieldCount": 2,
                    "fields": [
                        {
                            "id": 1,
                            "name": "DocumentType",
                            "type": "Option",
                            "value": "Order"
                        },
                        {
                            "id": 3,
                            "name": "No",
                            "type": "Code",
                            "value": "101003"
                        }
                    ]
                },
                "recordId": "Sales Header: Order,101003"
            },
            "id": 1,
            "positions": [
                {
                    "company": "Company name",
                    "fields": [
                        {
                            "id": 1,
                            "name": "DocumentType",
                            "type": "Option",
                            "value": "Order"
                        },
                        {
                            "id": 3,
                            "name": "DocumentNo",
                            "type": "Code",
                            "value": "101003"
                        },
                        {
                            "id": 4,
                            "name": "LineNo",
                            "type": "Integer",
                            "value": 10000
                        },
                        ...
                    ],
                    "id": 37,
                    "name": "SalesLine",
                    "position": "Document Type=CONST(Order),Document No.=CONST(101003),Line No.=CONST(10000)",
                    "primaryKey": {
                        "fieldCount": 3,
                        "fields": [
                            {
                                "id": 1,
                                "name": "DocumentType",
                                "type": "Option",
                                "value": "Order"
                            },
                            {
                                "id": 3,
                                "name": "DocumentNo",
                                "type": "Code",
                                "value": "101003"
                            },
                            {
                                "id": 4,
                                "name": "LineNo",
                                "type": "Integer",
                                "value": 10000
                            }
                        ]
                    },
                    "recordId": "Sales Line: Order,101003,10000"
                }
            ]
        }
    }
}

Bei Datensynchronisierungen werden die Werte für die ECM-Eigenschaften anders generiert, da keine Mehrfachfelder unterstützt werden. Es werden Werte vom Typ String anstatt vom Typ Array erwartet:

JSON
{
    "attributes": {
        "doc_field[1]": "someFieldContent1.1, someFieldContent1.2",
        "doc_field[2]": "someFieldContent2"
    }
}

Erwartete Antwort des Webhooks

Als Antwort wird der Status 200 erwartet. Im Body der Antwort werden die überarbeiteten ECM-Eigenschaften im selben Format als nicht leeres Array erwartet:

JSON
{
    "type": "after-attribute-matching",
    "data": {
        ...
        "attributes": {
            ...
        }
    }
}

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.