> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Konfigurieren einer benutzerdefinierten Appian-Anwendung für die Interaktion mit dem ABBYY FlexiCapture Connector for Appian

> Konfigurieren Sie eine benutzerdefinierte Appian-Anwendung für den FlexiCapture-Connector, indem Sie die AFC-Regeln sowie die Web-API-Methoden UploadDocument und CreateRecord erstellen.

Um einer benutzerdefinierten Appian-Anwendung die Interaktion mit dem ABBYY FlexiCapture Connector for Appian zu ermöglichen, erstellen Sie mehrere Entitäten. Diese Seite beschreibt die beiden AFC-Ausdrucksregeln und die beiden Web-API-Methoden, die der Connector benötigt. Informationen zu den übrigen Entitäten finden Sie unter [Ändern der ABBYYFlexiCapture-Anwendung](/de/flexi-capture/connectors/appian/appian-fc-app-modify).

<Info>
  Bevor Sie diese Entitäten erstellen, stellen Sie sicher, dass das Plugin `ABBYYFlexiCapturePlugin.jar` auf dem Appian-Server installiert ist. Kopieren Sie es zur Installation aus dem Connector-Distributionspaket in den Ordner `APPIAN_INSTALL/_admin/plugins/`.
</Info>

Erstellen Sie die folgenden Entitäten in der angegebenen Reihenfolge:

1. [Erstellen Sie einen Datentyp](/de/flexi-capture/connectors/appian/appian-fc-app-modify#datatype).
2. [Erstellen Sie eine Datenquelle](/de/flexi-capture/connectors/appian/appian-fc-app-modify#datasource).
3. [Erstellen Sie einen Data Store](/de/flexi-capture/connectors/appian/appian-fc-app-modify#datastore).
4. [Erstellen Sie einen Record-Typ](/de/flexi-capture/connectors/appian/appian-fc-app-modify#recordtype).
5. [Erstellen Sie eine Konstante vom Typ Data Store Entity](/de/flexi-capture/connectors/appian/appian-fc-app-modify#datastoreentity), um den Data Store mit dem Datentyp zu verknüpfen.
6. [Erstellen Sie eine Regel AFC\_GetConstantDSEByRecordTypeName](#getconstantdsebyrecordtypename), die eine Konstante vom Typ **Data Store Entity** zurückgibt.
7. [Erstellen Sie eine Regel AFC\_GetDataTypeByRecordTypeName](#getdatatypebyrecordtypename), die den vollständigen Namen des Datentyps zurückgibt.
8. [Erstellen Sie einen Ordner vom Typ Knowledge Center](/de/flexi-capture/connectors/appian/appian-fc-app-modify#knowledgecenter), um die von ABBYY FlexiCapture empfangenen, verarbeiteten Dateien zu speichern.
9. [Erstellen Sie die Web-API-Methode UploadDocument](#webapikc), um dem Knowledge Center ein neues Dokument hinzuzufügen.
10. [Erstellen Sie die Web-API-Methode CreateRecord](#webapidt), um die Datenbanktabelle zu befüllen.

## <a id="getconstantdsebyrecordtypename" />Eine AFC\_GetConstantDSEByRecordTypeName-Regel erstellen

Die `CreateRecord`-Methode der Web-API erfordert eine Regel, die eine Konstante vom Typ **Data Store Entity** zurückgibt. Diese Regel legt fest, in welchem Data Store und mit welchem Datentyp ein Datensatz erstellt wird.

<Steps>
  <Step title="Eine neue Ausdrucksregel erstellen">
    Öffnen Sie in Appian Designer die Anwendung und klicken Sie auf **New → Expression Rule**.
  </Step>

  <Step title="Die Regel benennen und speichern">
    Wählen Sie **Create from scratch**, füllen Sie die Felder **Name** und **Save In** aus, und klicken Sie auf **Create & Edit**.
  </Step>

  <Step title="Die Eingabe RecordTypeName hinzufügen">
    Klicken Sie im Dialogfeld **Rule Inputs** auf das Symbol **+** und fügen Sie eine Eingabevariable vom Typ **Text** mit dem Namen `RecordTypeName` hinzu.
  </Step>

  <Step title="Den Ausdruck einfügen">
    Fügen Sie im Code-Editor auf der linken Seite den folgenden Ausdruck ein:

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* Geben Sie im Parameter RecordTypeName den Namen des neuen Record-Typs im Plural an.  */
        cons!New_Constant, /* Geben Sie nach cons! den Namen der Konstante des Record-Typs an. */
        null /* Wenn die Anwendung mehr als einen Record-Typ enthält, ersetzen Sie "null" durch dieselbe "if"-Bedingung wie oben und geben Sie den Namen des zweiten Record-Typs sowie den Namen seiner Konstante an. */
    )
    ```
  </Step>
</Steps>

Wenn die Eingabe `RecordTypeName` mit dem Namen eines gespeicherten Record-Typs übereinstimmt (im Plural), gibt die Regel die Konstante **Data Store Entity** zurück, die den Data Store mit dem Datentyp verknüpft.

## <a id="getdatatypebyrecordtypename" />Eine AFC\_GetDataTypeByRecordTypeName-Regel erstellen

Die `CreateRecord`-Methode der Web-API erfordert eine Regel, die den vollständigen Namen des Datentyps zurückgibt.

<Steps>
  <Step title="Eine neue Ausdrucksregel erstellen">
    Öffnen Sie in Appian Designer die Anwendung und klicken Sie auf **New → Expression Rule**.
  </Step>

  <Step title="Die Regel benennen und speichern">
    Wählen Sie **Create from scratch**, füllen Sie die Felder **Name** und **Save In** aus und klicken Sie auf **Create & Edit**.
  </Step>

  <Step title="Die Eingabe RecordTypeName hinzufügen">
    Klicken Sie im Dialogfeld **Rule Inputs** auf das Symbol **+** und fügen Sie eine Eingabevariable vom Typ **Text** mit dem Namen `RecordTypeName` hinzu.
  </Step>

  <Step title="Den Ausdruck einfügen">
    Fügen Sie im Code-Editor auf der linken Seite den folgenden Ausdruck ein:

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* Geben Sie im Parameter RecordTypeName den Namen des neuen Record-Typs im Plural, den vollständigen Namen des Datentyps und den Namespace des Record-Typs an. */
        'type!{urn:com:appian:types}NewDataType',
        null
        /* Wenn die Anwendung mehr als einen Record-Typ enthält, ersetzen Sie "null" durch dieselbe "if"-Bedingung wie oben und geben Sie den Namen des zweiten Record-Typs, den vollständigen Namen des Datentyps und den Namespace des Record-Typs an. */
    )
    ```
  </Step>
</Steps>

Wenn die Eingabe `RecordTypeName` dem Namen eines gespeicherten Record-Typs (im Plural) entspricht, gibt die Regel einen string mit dem vollständigen Namen des Datentyps zurück. Andernfalls gibt sie `null` zurück. Um den Namespace zu ermitteln, öffnen Sie den Datentyp in der ABBYYFlexiCapture-Anwendung und klicken dann oben links auf den Namen des Datentyps, um das Fenster **Data Type Properties** zu öffnen.

## <a id="webapikc" />Die UploadDocument-Web-API-Methode erstellen

<Steps>
  <Step title="Eine neue Web-API erstellen">
    Öffnen Sie in Appian Designer die Anwendung und klicken Sie auf **New → Web API**.
  </Step>

  <Step title="Die Web-API benennen">
    Geben Sie `UploadDocument` in die Felder **Name** und **Endpoint** ein, ändern Sie **HTTP Method** in **POST** und klicken Sie auf **Create & Edit**.
  </Step>

  <Step title="Den Code einfügen">
    Schließen Sie das Dialogfeld für die Vorlagenauswahl und fügen Sie dann den folgenden Code in den Code-Editor ein:

    ```text theme={null}
    with(
        local!value: http!request.body,
        a!httpResponse(
            statusCode: 200,
            headers: {},
            body: uploaddocument(local!value)
        )
    )
    ```
  </Step>
</Steps>

<Note>
  Die Methode `uploaddocument(String query)` wird im Code-Editor nur angezeigt, wenn sich die Datei `ABBYYFlexiCapturePlugin.jar` im Ordner `APPIAN_INSTALL/_admin/plugins/` befindet. Diese Methode sendet einen JSON-String mit dem Dateiinhalt direkt an die von Ihnen erstellte Java-Methode und gibt einen JSON-String mit der ID des Ordners zurück, in dem das Dokument abgelegt wurde.
</Note>

## <a id="webapidt" />CreateRecord-Web-API-Methode erstellen

<Steps>
  <Step title="Eine neue Web-API erstellen">
    Öffnen Sie in Appian Designer die Anwendung und klicken Sie auf **New → Web API**.
  </Step>

  <Step title="Die Web-API benennen">
    Geben Sie `CreateRecord` in die Felder **Name** und **Endpoint** ein, ändern Sie **HTTP Method** in **POST** und klicken Sie auf **Create & Edit**.
  </Step>

  <Step title="Den Code einfügen">
    Schließen Sie das Dialogfeld zur Vorlagenauswahl und fügen Sie dann den folgenden Code in den Code-Editor ein:

    ```text theme={null}
    with(
        local!value: cast(
            rule!AFC_GetDataTypeByRecordTypeName(http!request.queryParameters.RecordTypeName),
            a!fromJson(http!request.body)
        ),
        a!writeToDataStoreEntity(
            dataStoreEntity: rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName),
            valueToStore: local!value,
            onSuccess: a!httpResponse(
                statusCode: 200,
                headers: {
                    a!httpHeader(name: "Content-Type", value: "application/json")
                },
                body: a!toJson(
                    fv!storedValues
                )
            ),
            onError: a!httpResponse(
                statusCode: 500,
                headers: {
                    a!httpHeader(name: "Content-Type", value: "application/json")
                },
                body: a!toJson(
                    {
                        error: "There was an error writing to the data store"
                    }
                )
            )
        )
    )
    ```

    * `rule!AFC_GetDataTypeByRecordTypeName(http!request.queryParameters.RecordTypeName)` nimmt einen Parameter mit dem Namen des Record-Typs entgegen (den die Web-API-Methode vom ABBYY FlexiCapture Connector for Appian erhält) und gibt den vollständigen Namen des Datentyps zurück.
    * `rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName)` gibt die Konstante **Data Store Entity** zurück.
  </Step>

  <Step title="Den Abfrageparameter hinzufügen">
    1. Klicken Sie im rechten Bereich auf die Schaltfläche **New Query Parameter** und fügen Sie dem Query-String einen Parameter mit dem Namen `RecordTypeName` hinzu.
    2. Wählen Sie die Option **Set as default test value** aus und klicken Sie auf **Save**.
  </Step>
</Steps>
