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:
{
"Authorization": "Bearer <API Key>"
}
Für den Verbindungstest wird eine POST-Anforderung an den Endpunkt mit folgendem Body gesendet:
{
"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:
{
"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:
{
"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:
{
"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:
{
"type": "after-attribute-matching",
"data": {
...
"attributes": {
...
}
}
}