> ## 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.

# Configurer une application Appian personnalisée pour fonctionner avec ABBYY FlexiCapture Connector for Appian

> Configurez une application Appian personnalisée pour le connecteur FlexiCapture en créant les règles AFC ainsi que les méthodes API Web UploadDocument et CreateRecord.

Pour permettre à une application Appian personnalisée d’interagir avec ABBYY FlexiCapture Connector for Appian, créez plusieurs entités. Cette page décrit les deux règles d’expression AFC et les deux méthodes API Web requises par le connecteur. Pour les autres entités, voir [Modifier l’application ABBYYFlexiCapture](/fr/flexi-capture/connectors/appian/appian-fc-app-modify).

<Info>
  Avant de créer ces entités, assurez-vous que le plugin `ABBYYFlexiCapturePlugin.jar` est installé sur le serveur Appian. Pour l’installer, copiez le plugin depuis le package de distribution du connecteur dans le dossier `APPIAN_INSTALL/_admin/plugins/`.
</Info>

Créez les entités suivantes dans l’ordre :

1. [Créer un type de données](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#datatype).
2. [Créer une source de données](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#datasource).
3. [Créer un magasin de données](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#datastore).
4. [Créer un type d’enregistrement](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#recordtype).
5. [Créer une constante de type Data Store Entity](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#datastoreentity) pour lier le magasin de données au type de données.
6. [Créer une règle AFC\_GetConstantDSEByRecordTypeName](#getconstantdsebyrecordtypename) qui renvoie une constante de type **Data Store Entity**.
7. [Créer une règle AFC\_GetDataTypeByRecordTypeName](#getdatatypebyrecordtypename) qui renvoie le nom complet du type de données.
8. [Créer un dossier de type Knowledge Center](/fr/flexi-capture/connectors/appian/appian-fc-app-modify#knowledgecenter) pour stocker les fichiers traités reçus depuis ABBYY FlexiCapture.
9. [Créer la méthode API Web UploadDocument](#webapikc) pour ajouter un nouveau document au Knowledge Center.
10. [Créer la méthode API Web CreateRecord](#webapidt) pour alimenter la table de base de données.

## <a id="getconstantdsebyrecordtypename" />Créer une règle AFC\_GetConstantDSEByRecordTypeName

La méthode `CreateRecord` de API Web nécessite une règle qui renvoie une constante de type **Data Store Entity**. Cette règle détermine le magasin de données et le type de données dans lesquels un record est créé.

<Steps>
  <Step title="Créer une nouvelle règle d'expression">
    Dans Appian Designer, ouvrez l'application et cliquez sur **New → Expression Rule**.
  </Step>

  <Step title="Nommer et enregistrer la règle">
    Sélectionnez **Create from scratch**, renseignez les champs **Name** et **Save In**, puis cliquez sur **Create & Edit**.
  </Step>

  <Step title="Ajouter l'input RecordTypeName">
    Dans la boîte de dialogue **Rule Inputs**, cliquez sur l'icône **+** et ajoutez une variable d'entrée de type **Text** nommée `RecordTypeName`.
  </Step>

  <Step title="Coller l'expression">
    Dans l'éditeur de code à gauche, collez l'expression suivante :

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* Dans le paramètre RecordTypeName, indiquez le nom du nouveau type d’enregistrement au pluriel.  */
        cons!New_Constant, /* Après cons!, indiquez le nom de la constante du type d’enregistrement. */
        null /* S'il y a plusieurs types d’enregistrement dans l'application, remplacez "null" par la même condition "if" que ci-dessus, en indiquant le nom du deuxième type d’enregistrement et le nom de sa constante. */
    )
    ```
  </Step>
</Steps>

Si l'input `RecordTypeName` correspond au nom d'un type d’enregistrement stocké (au pluriel), la règle renvoie la constante **Data Store Entity** qui relie le magasin de données au type de données.

## <a id="getdatatypebyrecordtypename" />Créer une règle AFC\_GetDataTypeByRecordTypeName

La méthode `CreateRecord` de la API Web nécessite une règle qui renvoie le nom complet du type de données.

<Steps>
  <Step title="Créer une nouvelle règle d'expression">
    Dans Appian Designer, ouvrez l'application et cliquez sur **New → Expression Rule**.
  </Step>

  <Step title="Nommer et enregistrer la règle">
    Sélectionnez **Create from scratch**, renseignez les champs **Name** et **Save In**, puis cliquez sur **Create & Edit**.
  </Step>

  <Step title="Ajouter l'entrée RecordTypeName">
    Dans la boîte de dialogue **Rule Inputs**, cliquez sur l'icône **+** et ajoutez une variable d'entrée de type **Text** nommée `RecordTypeName`.
  </Step>

  <Step title="Coller l'expression">
    Dans l'éditeur de code à gauche, collez l'expression suivante :

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* Dans le paramètre RecordTypeName, indiquez le nom du nouveau type d’enregistrement au pluriel, le nom complet du type de données et l’espace de noms du type d’enregistrement. */
        'type!{urn:com:appian:types}NewDataType',
        null
        /* S’il existe plusieurs types d’enregistrement dans l’application, remplacez "null" par la même condition "if" que ci-dessus, en indiquant le nom du deuxième type d’enregistrement, le nom complet du type de données et l’espace de noms du type d’enregistrement. */
    )
    ```
  </Step>
</Steps>

Si l'entrée `RecordTypeName` correspond au nom d'un type d’enregistrement stocké (au pluriel), la règle renvoie une string contenant le nom complet du type de données. Sinon, elle renvoie `null`. Pour trouver l’espace de noms, ouvrez le type de données dans l’application ABBYYFlexiCapture, puis cliquez sur le nom du type de données dans l’angle supérieur gauche pour ouvrir la fenêtre **Data Type Properties**.

## <a id="webapikc" />Créer la méthode d’API Web UploadDocument

<Steps>
  <Step title="Créer une API Web">
    Dans Appian Designer, ouvrez l’application et cliquez sur **New → Web API**.
  </Step>

  <Step title="Nommer l’API Web">
    Saisissez `UploadDocument` dans les champs **Name** et **Endpoint**, remplacez **HTTP Method** par **POST**, puis cliquez sur **Create & Edit**.
  </Step>

  <Step title="Coller le code">
    Fermez la boîte de dialogue de sélection du modèle, puis collez le code suivant dans l’éditeur de code :

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

<Note>
  La méthode `uploaddocument(String query)` n’apparaît dans l’éditeur de code que si le fichier `ABBYYFlexiCapturePlugin.jar` se trouve dans le dossier `APPIAN_INSTALL/_admin/plugins/`. Cette méthode envoie directement à la méthode Java que vous avez créée une chaîne JSON contenant le contenu du fichier, puis renvoie une chaîne JSON avec l’ID du dossier dans lequel le document a été placé.
</Note>

## <a id="webapidt" />Créer la méthode d’API Web CreateRecord

<Steps>
  <Step title="Créer une nouvelle API Web">
    Dans Appian Designer, ouvrez l’application et cliquez sur **New → Web API**.
  </Step>

  <Step title="Nommer l’API Web">
    Saisissez `CreateRecord` dans les champs **Name** et **Endpoint**, définissez **HTTP Method** sur **POST**, puis cliquez sur **Create & Edit**.
  </Step>

  <Step title="Coller le code">
    Fermez la boîte de dialogue de sélection de modèle, puis collez le code suivant dans l’éditeur de code :

    ```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)` prend en paramètre le nom du type d’enregistrement (reçu par la méthode d’API Web depuis ABBYY FlexiCapture Connector for Appian) et renvoie le nom complet du type de données.
    * `rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName)` renvoie la constante **Data Store Entity**.
  </Step>

  <Step title="Ajouter le paramètre de requête">
    1. Dans le volet de droite, cliquez sur le bouton **New Query Parameter** et ajoutez un paramètre nommé `RecordTypeName` à la chaîne de requête.
    2. Sélectionnez l’option **Set as default test value** et cliquez sur **Save**.
  </Step>
</Steps>
