Inbound API

Inbound API

Basisinformationen

In diesem Thema findest du allgemeine Informationen zur Inbound API.


Über Inbound API

In dieser Dokumentation erfährst du, wie du die Programmierschnittstelle der Inbound-App für eigene Entwicklungen nutzen kannst. Die Inbound-App stellt Funktionalitäten rund um die Themen Import, Aufbereitung und Weiterverarbeitung von digitalen Seiten bereit.

Funktionsumfang der Inbound-App

Die Inbound-App umfasst die Verwaltung digitaler Sammlungen von Seiten, den sogenannten Stapeln. Folgende Funktionen sind enthalten:

  • Import von Seiten aus externen Systemen (etwa von der Scan-App)
  • Export der Stapelseiten an Drittsysteme
  • Bearbeitung des Stapels und seiner Seiten
  • Einfaches Berechtigungskonzept


Verwenden der API-Funktionen

Im Folgenden lernst du die unterschiedlichen Möglichkeiten kennen, die Schnittstellen der Inbound-App für deine Anforderungen zu verwenden.

Allgemeines

In diesem Kapitel findest du allgemeine Informationen zur Verwendung der API.

Format der Antwort bei Fehlern

In diesem Kapitel erfährst du, in welchem Format Fehler ausgegeben werden. Abhängig vom Verarbeitungsergebnis des Vorgangs wird die HTTP-Anforderung mit verschiedenen HTTP-Statuscodes beantwortet. Optional werden beschreibende Informationen zurückgeliefert.

Beispielantwort für eine fehlgeschlagene Anforderung (Request):

Response
   HTTP/1.1 400 BadRequest
   
{
	"reason": "AuthorizedGroups and AuthorizedUsers are empty. At least one must be set. Parametername: authorization",
	"details": "Exception type: System.ArgumentException",
	"severity": 3,
	"errorCode": 0
}


Beschreibung der Parameter zu der Antwort

reason: Ein optionaler kurzer Text zur Beschreibung, weshalb der Fehler aufgetreten ist. Dieser Text wird als Titel der Fehlermeldung verwendet.

hint: Ein optionaler Hinweistext für den Anwender mit Tipps für die Fehlerbehebung.

details: Optionale Detailinformationen zum Fehler.

severity: Optionaler Schweregrad des Fehlers. Folgende Werte sind möglich: Success = 0, Information = 1, Warning = 2, Error = 3

errorCode: Ein optionaler Fehlercode zur internen Identifizierung.

Erstellen eines Stapels

Du kannst einen neuen Stapel automatisiert in der Inbound-App erstellen, ohne dass ein Anwender eine Aktion durchführen muss.

Um einen neuen Stapel zu erstellen, musst du folgende Schritte durchführen:

  • Ermitteln der Linkrelation für die Erstellung eines neuen Stapels
  • Aufrufen der URL zur Erstellung eines neuen Stapels


Ermitteln der Linkrelation zum Erstellen eines Stapels

Rufe die Root-URL der Inbound-App wie folgt auf:

Request
   GET /inbound
Accept: application/hal+json

Das JSON-Objekt der Inbound-App enthält die Linkrelation importProcessTarget, mit der das Erstellen eines Stapels durchgeführt wird.

Response
   {
    _links: {
        importProcessTarget: {
            href: "inbound/importprocess",
            templated: false
        }
    }
}


Aufrufen der URL zur Erstellung eines Stapels

Führe eine HTTP POST-Anforderung mit den benötigten Eigenschaften als Body an diese URL aus.

Request
   POST /inbound/importprocess
Origin: https://baseuri
Accept: application/hal+json
Content-Type: application/hal+json
 
{
    "name": "my batch 1",
	"properties": {
		"sa.propertyKey1": "value"
	}
}

Das Feld name ist optional und muss nicht übergeben werden. Wenn das Feld name nicht übergeben wird, wird der Name des Stapels automatisch vergeben.

Zusätzlich kannst du über das Feld properties weitere Eigenschaften übergeben. Dieses Feld ist optional und muss nicht übergeben werden. Die Schlüssel der Eigenschaften solltest du mit einem eindeutigen Präfix versehen, um Namenskonflikte mit anderen Apps zu vermeiden. Bei der Abfrage der Eigenschaften und Nachbearbeitungsoptionen werden diese Schlüssel wieder zurückgegeben.
Die weiteren Eigenschaften des Stapels können nicht bei der Erstellung mitgegeben werden. Fülle die weiteren Eigenschaften beim Erstellen eines Stapels nicht aus.

Ist der Aufruf erfolgreich, werden die URL zum erstellten Stapel im Header Location und die Eigenschaften des Stapels im Body zurückgegeben.

Response
   HTTP/1.1 201 Created
Location: /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb
 
{
    "id": "0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb"
}

Informationen zu den Parametern des JSON-Objektes findest du unter Abrufen eines Stapels.
Schlägt das Erstellen des Stapels fehl, wird eine entsprechende Antwort (Response) zurückgegeben. Weitere Informationen findest du unter Format der Antwort bei Fehlern.

Abrufen eines Stapels

Du kannst die Details und Eigenschaften zu einem Stapel als JSON-Repräsentation abrufen oder die Detailansicht zu einem Stapel anzeigen. Dazu muss dir die ID des Stapels bekannt sein.

Um einen Stapel abzurufen, musst du folgende Schritte durchführen:

  • Ermitteln der Linkrelation für das Abrufen des Stapels
  • Aufrufen der URL zum Abrufen des Stapels

Ermitteln der Linkrelation zum Abrufen des Stapels

Rufe die Root-URL der Inbound-App wie folgt auf:

Request
   GET /inbound
Accept: application/hal+json

Das JSON-Objekt der Inbound-App enthält die Linkrelation importProcess, mit der das Abrufen eines Stapels durchgeführt wird.

Response
   {
    _links: {
        importProcess: {
            href: "inbound/importprocess/{id}",
            templated: true
        }
    }
}


Parameter beim Abrufen des Stapels

Das Abrufen oder Anzeigen von Details eines Stapels kannst du mit folgenden Parametern beeinflussen:

id: Gibt die ID des Stapels an, dessen Details abgerufen werden sollen.


Aufrufen der URL zum Abfragen der Eigenschaften des Stapels

Wenn du eine URL erzeugt hast, kannst du die Details des Stapels wie folgt abrufen:

Request
   Get /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb
Accept: application/hal+json

Ist der Aufruf erfolgreich, werden im Body die Eigenschaften des Stapels als JSON zurückgegeben:

Response
   HTTP/1.1 200 Ok
  
{
    "id": "0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb",
    "name": "my batch 1",
    "importDateTime": "2019-01-28T10:46:25.0131376Z",
    "creatorId":"4a0df94e-da62-4f84-823b-2cc97b16341e",
    "creatorName":"John Doe",
    "pageCount": 0,
    "binaries": [],
    _links{
        "self": {
            "href":"/inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb",
            "templated":false
        },
        "fileUpload":{
            "href":"/inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb/blob",
            "templated":false
        },
		"authorization": {
            "href":"/inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb/authorization",
            "templated":false
        }
	}
}

Beschreibung der Eigenschaften

id: Gibt die ID des Stapels an.

name: Gibt den Anzeigenamen des Stapels an.

importDateTime: Gibt das Datum und die Uhrzeit an, zu welcher der Stapel erstellt wurde. Der Zeitpunkt wird in der koordinierten Weltzeit (UTC) angegeben.

creatorId: Die ID des Identityprovider-Benutzers, der den Stapel erstellt hat.

creatorName: Der aktuelle Anzeigename des Identityprovider-Benutzers, der den Stapel erstellt hat. Wird der Benutzer in der Identityprovider-App gelöscht, wird hier der Name des Benutzers zum Erstellungszeitpunkt des Stapels zurückgegeben.

pageCount: Die aktuelle Anzahl an Seiten im Stapel. Für die Anzahl werden nur aktuell im Stapel sichtbare Seiten berücksichtigt.

binaries: Gibt ein Array mit allen Seiten des Stapels an. Auch gelöschte Seiten werden hier aufgeführt.

_links: Enthält die Linkrelationen zum Stapel.

self: Self-Link.

fileUpload: URL zum Hinzufügen von Dateien zu einem Stapel. Informationen zum Vorgehen, um dem Stapel Dateien hinzuzufügen, findest du unter Hinzufügen von Seiten zu einem Stapel.

authorization: URL zum Setzen der Berechtigungen auf den Stapel.


Schlägt das Abrufen des Stapels fehl, wird eine entsprechende Antwort (Response) zurückgegeben. Weitere Informationen findest du unter Format der Antwort bei Fehlern.


Aufrufen der URL für die Details des Stapels (HTML-Seite)

Wenn du die HTML-Darstellung des Stapels aufrufen möchtest, erzeuge die URL in derselben Weise, wie beim Abfragen der JSON-Repräsentation beschrieben. Gib die URL im Browser ein, um die HTML-Seite anzuzeigen.

Beispiel:

Request
   Get /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb
Accept: text/html

Vergeben von Stapelberechtigungen für Benutzer oder Gruppen

Du kannst anderen Benutzern oder Benutzergruppen die Berechtigungen zum Sehen und Bearbeiten eines Stapels erteilen. Dazu muss dir die ID des Stapels bekannt sein und der Request im Kontext eines Benutzers durchgeführt werden, der bereits Berechtigungen auf den Stapel hat.

Um eine oder mehrere Berechtigungen auf einen Stapel zu setzen, führe folgende Schritte durch:

  • Ermittle die Linkrelation für das Abrufen eines Stapels.
  • Rufe die URL zum Abrufen eines Stapels auf.
  • Ermittle die Linkrelation zum Setzen von Berechtigungen.
  • Rufe die URL zum Setzen von Berechtigungen des Stapels auf.

Ermitteln und Aufrufen der Linkrelation für das Abrufen eines Stapels

Zum Ermitteln der Linkrelation des Stapels und zum Aufrufen dieser gehe wie in Abrufen eines Stapels beschrieben vor.

Ermitteln der Linkrelation zum Setzen von Berechtigungen

Das JSON-Objekt des Stapels enthält die Linkrelation authorization, mit der das Setzen von Berechtigungen auf einen Stapel durchgeführt wird.

Aufrufen der URL zum Setzen von Berechtigungen auf den Stapel

Führe eine HTTP POST-Anforderung mit den benötigten Eigenschaften als Body auf diese URL aus.

Request
   POST /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb/authorization
Origin: https://baseuri
Accept: application/hal+json
Content-Type: application/hal+json
  
{
    "authorizedUsers":["UserId1","UserId2"],
    "authorizedGroups":["GroupId1","GroupId2"]
}

Beschreibung der Eigenschaften

authorizedUsers: Gibt das Array mit den Identityprovider-Benutzer-IDs an, die Zugriff auf den Stapel erhalten sollen.

authorizedGroups: Gibt das Array mit den Identityprovider-Gruppen-IDs an, die Zugriff auf den Stapel erhalten sollen.

Es können beliebig viele Benutzer oder Gruppen oder eine Kombination aus beiden angegeben werden. Mindestens eines der beiden Arrays muss einen Wert enthalten. Benutzer und Gruppen, die bereits Zugriff auf den Stapel haben, werden nicht erneut hinzugefügt. Bei der Übergabe einer Gruppen-ID wird nur die Gruppe und nicht die aktuell darin befindlichen Mitglieder der Gruppe gespeichert. Sollten sich also nachträglich die Mitglieder der Gruppe ändern, so hat dies auch Auswirkungen auf die Zugriffsberechtigungen des Stapels. In der Anfrage nicht aufgeführte Benutzer oder Gruppen, die bereits Zugriff auf den Stapel haben, wird die Berechtigung auf den Stapel nicht durch die Anfrage entzogen.

Ist der Aufruf erfolgreich, wird der HTTP-Statuscode 200 zurückgegeben. Schlägt das Konfigurieren der Berechtigungen fehl, wird eine entsprechende Antwort (Response) zurückgegeben. Weitere Informationen findest du unter Format der Antwort bei Fehlern.

Hinzufügen von Seiten zu einem Stapel

Du kannst einem Stapel automatisiert Seiten hinzufügen. Dazu muss dir die ID des Stapels bekannt sein und der Request im Kontext eines Benutzers durchgeführt werden, der Berechtigungen auf den Stapel hat.

Um eine oder mehrere Seiten zu einem Stapel hinzuzufügen, führe folgende Schritte durch:

  • Ermittle die Linkrelation für das Abrufen eines Stapels.
  • Rufe die URL zum Abrufen eines Stapels auf.
  • Ermittle die Linkrelation zum Hinzufügen von Seiten.
  • Rufe die URL zum Hinzufügen von Seiten auf.

Du kannst Seiten auf zwei verschiedene Weisen hinzufügen:

  • Eine Datei wird beim Aufruf der URL zum Hinzufügen von Seiten im Body mitgesendet.
  • Beim Aufruf der URL zum Hinzufügen von Seiten wird ein Verweis auf eine Datei im Body mitgesendet.

Folgende Dateitypen werden unterstützt:

  • application/pdf
  • image/tiff
  • image/jpeg
  • image/gif
  • image/bmp
  • image/png

Ermitteln und Aufrufen der Linkrelation für das Abrufen eines Stapels

Zum Ermitteln und Aufrufen der Linkrelation des Stapels gehe wie in Abrufen eines Stapels beschrieben vor.

Ermitteln der Linkrelation zum Hinzufügen von Seiten

Das JSON-Objekt des Stapels enthält die Linkrelation fileUpload, mit der Seiten zu einem Stapel hinzugefügt werden können.

Aufrufen der URL zum Hinzufügen von Seiten

Wenn du die Datei im Body mitsenden möchtest, führe eine HTTP POST-Anforderung mit der Datei im Body auf diese URL aus. Zusätzlich muss der Header-Wert Content-Type entsprechend gefüllt sein.

Wenn du alternativ einen Verweis auf die Datei angeben möchten, führe eine HTTP POST-Anforderung mit den benötigten Eigenschaften als Body an diese URL aus.

Request
   POST /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb/blob
Origin: https://baseuri
Accept: application/hal+json
Content-Type: application/json
 
{
    "contentUri": "/myApp/files/6979814d-8dbe-4998-adc0-cc570a42fa92"
}

Der Paramter contentUri ist ein Pflichtparamter. Die Uri kann relativ zur Basisadresse oder absolut sein. Wenn die Uri relativ zur Basisadresse ist, werden die Authentifizierungsinformationen des aktuellen Benutzers weitergegeben.

Ist der Aufruf erfolgreich, werden die URL zur hinzugefügten Datei im Header Location zurückgegeben.

Response
   HTTP/1.1 201 Created
Location: /inbound/importprocess/0f6f3e65-4dc4-4956-a3b6-0c6dd79017cb/blob/294c0d89-1e3f-4917-9b8e-32a42afa2954

Schlägt das Hinzufügen von Seiten fehl, wird eine entsprechende Antwort (Response) zurückgegeben. Weitere Informationen findest du unter Format der Antwort bei Fehlern.


Anbinden von externen Systemen

In diesem Kapitel erfährst du, wie du externe Systeme (Drittanbieteranwendungen) an die Inbound-App anbinden kannst, um weitere Zielsysteme zu integrieren. 

Verwenden von Erweiterungspunkten

Mit Erweiterungspunkten hast du die Möglichkeit, die Inbound-App um deine eigenen Funktionen zu erweitern.

Vorbereiten deiner App

Damit Erweiterungen von der Inbound-App gefunden werden, muss deine App diese Schnittstelle bereitstellen. Die Inbound-App nutzt zum Auffinden von Apps, die Erweiterungen bereitstellen, das Konzept einer HTTP GET-Anforderung für die Root-Ressource (systemBaseUri-Pfad mit dem App-Namen) der Apps. Es werden alle Apps abgefragt, die am HTTP-Gateway registriert sind. Stelle sicher, dass der Administrator deine App nicht aktiv ausgeschlossen hat.

Bereitstellen der URL zu den Erweiterungspunkten

Die Root-Ressourcen dieser Apps werden zyklisch abgefragt (Request). Die Antwort (Response) einer App wird daraufhin geprüft, ob eine Linkrelation namens inboundExtensions enthalten ist. Diese Linkrelation gilt als Signal, dass die App Erweiterungen für die Inbound-App anbietet. Die Inbound-App führt eine HTTP GET-Anforderung auf den angegeben Link aus und erwartet von der antwortenden App ein genormtes JSON-Objekt mit dem HTTP-Statuscode 200. 

   GET https://host/myapp/ HTTP/1.1
Accept: application/hal+json
   HTTP/1.1 200 OK
Content-Type: application/hal+json
 
{
    "_links" : {
        "inboundExtensions" : {
            "href" : "/myapp/inboundExtensions"
        }
    }
}

Hinweis

Die Abfrage der Root-Ressourcen erfolgt anonym (ohne Authentifizierung).


Hinzufügen von Exportsystemen

Wenn du ein Exportsystem hinzufügst, wird dieses im Exportassistenten als weitere Option angeboten.

Beispiel

Das Beispiel zeigt, wie du die HTTP-Antwort der Linkrelation inboundExtensions gestaltest, um mithilfe des Erweiterungspunkts ein Exportsystem hinzuzufügen.

Response
   {  
   "extensions":[        
      {  
         "id":"myapp.FileDownload",
         "caption":"Download file",
         "context":"ExportImportProcess",
         "uriTemplate":"/myapp/export"
      }
   ]
}

id: Legt den eindeutigen technischen Namen fest, der verwendet wird, um die Erweiterung von anderen Erweiterungen zu unterscheiden.

caption: Anzeigetext der Erweiterung im Exportassistenten.

context: Gibt den Kontext an, dem die Erweiterung hinzugefügt werden soll. Gib für ein Exportsystem den Wert ExportImportProcess an.

uriTemplate: Definiert die URL, die von der Inbound-App mit dem unten beschriebenen JSON-Objekt aufgerufen werden soll. Hierbei werden keine URL-Parameter unterstützt.

Anzeigen des Exportdialogs

Die Inbound-App führt eine HTTP POST-Anforderung an die als Eigenschaft uriTemplate angegebene URL aus. Die benötigten Eigenschaften werden als Body gesendet.

Request
   POST /myapp/export
Origin: https://baseuri
Accept: application/hal+json
Content-Type: application/hal+json

{  
   "documents":[  
      {  
         "propertiesUri":"/inbound/importprocess/fcc8c956-bfcb-4b30-bc09-9161f6f16eb2/document/6f53d725-f4f5-442e-a058-a01eaf05cbf5/properties",
         "successCallbackUri":"/inbound/importprocess/fcc8c956-bfcb-4b30-bc09-9161f6f16eb2/stored/505d86b1-0a21-45f3-8b1f-80112138b497",
         "exportFiles":[  
            {  
               "downloadUrl":"/inbound/importprocess/fcc8c956-bfcb-4b30-bc09-9161f6f16eb2/blob/faf1de7e-467b-4c5f-9f33-1ab0fcc45013?ImportProcessId=fcc8c956-bfcb-4b30-bc09-9161f6f16eb2",
               "mimeType":"application/pdf"
            }
         ]
      }
   ]
}


Über die HTTP POST-Anfrage wird eine Liste von Dokumenten an das Exportsystem übergeben. Die Eigenschaften des JSON-Objekts sind wie folgt beschrieben:

propertiesUri: Über die URL der Eigenschaft propertiesUri kannst du die Eigenschaften und Nachbearbeitungsoptionen des Dokuments abfragen. Die Abfrage, ob ein Dokument nach dem erfolgreichen Export gelöscht werden soll, ist eine mögliche Nachbearbeitungsoption, welche die Inbound-App übermittelt.

successCallbackUri: Über die URL der Eigenschaft successCallbackUri musst du der Inbound-App mitteilen, wenn das Dokument vom Exportsystem erfolgreich gespeichert wurde. Der Aufruf muss für jedes Dokument erfolgen. Wird dieser Schritt nicht durchgeführt, kann die Inbound-App die Nachbearbeitungsoptionen nicht auswerten und die Benutzererfahrung wird gemindert.

exportFiles: Für jedes generierte Dokument teilt die Anwendung mit, unter welcher URL dieses abgerufen werden kann. Die Eigenschaft downloadUrl enthält die URL auf das erstellte Dokument. Die Eigenschaft mimeType beschreibt den Internet Media Type des erstellten Dokuments.

Die erfolgreiche Antwort des Exportsystems auf die HTTP POST-Anforderung muss eine URL zum Exportdialog des Exportsystems als Location-Header zurückgeben:

Response
   HTTP/1.1 201 Created
Location: /myapp/downloadpage


Abfrage der Eigenschaften und Nachbearbeitungsoptionen

Um die Eigenschaften und Nachbearbeitungsoptionen eines Dokuments abzufragen, führe eine HTTP GET-Anforderung auf die als propertiesUri hinterlegte URL aus. Nachbearbeitungsoptionen müssen über die URL der Eigenschaft successCallbackUri übergeben werden. Hier werden auch Eigenschaften aufgelistet, die bei der Erstellung des Stapels angegeben werden.

Request
   GET /inbound/importprocess/fcc8c956-bfcb-4b30-bc09-9161f6f16eb2/document/6f53d725-f4f5-442e-a058-a01eaf05cbf5/properties
Accept: application/hal+json

Das JSON-Objekt enthält folgende Informationen.

Response
   {  
   "properties":[  
      {  
         "key":"creatorName",
         "values":[  
            "Andrew Administrator"
         ],
         "type":"String"
      },
      {  
         "key":"importProcessname",
         "values":[  
            "Batch name"
         ],
         "type":"String"
      },
      {  
         "key":"importDateTime",
         "values":[  
            "2019-01-01T12:00:00+02:00"
         ],
         "type":"Datetime"
      },
      {  
         "key":"documentName",
         "values":[  
            "6f53d725-f4f5-442e-a058-a01eaf05cbf5"
         ],
         "type":"String"
      },
	  {
	     "key": "documentCategoryId",
         "values":[
            "cb2ea8f9-9980-4ac7-9777-025173b2a5f1"
         ],
         "type": "String"
      },
      {
         "key": "documentCategoryName",
         "values":[
            "E-Mail"
         ],
         "type": "String"
      }
   ],
   "userData":[  
      {  
         "key":"deleteBatchUserData",
         "display":"Delete document after successful storage?",
         "values":[  
            {  
               "value":"delete",
               "display":"Delete document",
               "default":"false"
            },
            {  
               "value":"notDelete",
               "display":"Keep document",
               "default":"true"
            }
         ]
      }
   ]
}

properties: Liste der Eigenschaften

key: Schlüssel der Eigenschaft

values: Liste der Werte

type: Datentyp, der die Eigenschaft beschreibt.

userData: Liste der Nachbearbeitungsoptionen

key: Schlüssel der Eigenschaft

display: Anzeigetext

values: Liste der Werte

value: Wert der Eigenschaft

display: Anzeigetext

default: Definition des Standardwerts


Verfügbare Datentypen für die Eigenschaft properties:

String: Datentyp für Zeichenketten.

Datetime: Datentyp für Zeitangaben im ISO 8601-Format.

Number: Datentyp für Ganzzahlen und Gleitkommazahlen.


Folgende Eigenschaften sind bei einem Dokument vorhanden:

creatorName: Name des Stapelerstellers

importProcessname: Name des Stapels

importDateTime: Erstellungszeitpunkt des Stapels

documentName: Name des Dokuments

documentCategoryId: ID der Dokumentkategorie

documentCategoryName: Name der Dokumentkategorie


Übergabe der Nachbearbeitungsoptionen

Um die Nachbearbeitungsoptionen an die Inbound-App zu übertragen, führe eine HTTP POST-Anfrage an die URL der Eigenschaft successCallbackUri aus.

Request
   POST /inbound/importprocess/fcc8c956-bfcb-4b30-bc09-9161f6f16eb2/stored/505d86b1-0a21-45f3-8b1f-80112138b497
Origin: https://baseuri
Content-Type: application/json

{
    "userData": [
        {
            "key": "deleteBatchUserData",
            "values": [
                "notDelete"
            ]
        }
    ]
}

key: Schlüssel der Nachbearbeitungsoption

values: Liste der ausgewählten Werte