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

# Configure una aplicación personalizada de Appian para trabajar con ABBYY FlexiCapture Connector for Appian

> Configure una aplicación personalizada de Appian para el conector de FlexiCapture creando las reglas AFC y los métodos de Web API UploadDocument y CreateRecord.

Para permitir que una aplicación personalizada de Appian interactúe con ABBYY FlexiCapture Connector for Appian, cree varias entidades. En esta página se describen las dos reglas de expresión AFC y los dos métodos de Web API que requiere el conector. Para las entidades restantes, consulte [Modificar la aplicación ABBYYFlexiCapture](/es/flexi-capture/connectors/appian/appian-fc-app-modify).

<Info>
  Antes de crear estas entidades, asegúrese de que el complemento `ABBYYFlexiCapturePlugin.jar` esté instalado en el servidor de Appian. Para instalarlo, copie el complemento del paquete de distribución del conector en la carpeta `APPIAN_INSTALL/_admin/plugins/`.
</Info>

Cree las siguientes entidades en este orden:

1. [Cree un tipo de datos](/es/flexi-capture/connectors/appian/appian-fc-app-modify#datatype).
2. [Cree un origen de datos](/es/flexi-capture/connectors/appian/appian-fc-app-modify#datasource).
3. [Cree un Data Store](/es/flexi-capture/connectors/appian/appian-fc-app-modify#datastore).
4. [Cree un tipo de registro](/es/flexi-capture/connectors/appian/appian-fc-app-modify#recordtype).
5. [Cree una constante de tipo Data Store Entity](/es/flexi-capture/connectors/appian/appian-fc-app-modify#datastoreentity) para vincular el Data Store al tipo de datos.
6. [Cree una regla AFC\_GetConstantDSEByRecordTypeName](#getconstantdsebyrecordtypename) que devuelva una constante de tipo **Data Store Entity**.
7. [Cree una regla AFC\_GetDataTypeByRecordTypeName](#getdatatypebyrecordtypename) que devuelva el nombre completo del tipo de datos.
8. [Cree una carpeta de tipo Knowledge Center](/es/flexi-capture/connectors/appian/appian-fc-app-modify#knowledgecenter) para almacenar los archivos procesados recibidos de ABBYY FlexiCapture.
9. [Cree el método de Web API UploadDocument](#webapikc) para agregar un nuevo documento al knowledge center.
10. [Cree el método de Web API CreateRecord](#webapidt) para rellenar la tabla de la base de datos.

## <a id="getconstantdsebyrecordtypename" />Crear una regla AFC\_GetConstantDSEByRecordTypeName

El método `CreateRecord` de la Web API requiere una regla que devuelva una constante de tipo **Data Store Entity**. Esta regla determina el almacén de datos y el tipo de datos en los que se crea un registro.

<Steps>
  <Step title="Crear una nueva regla de expresión">
    En Appian Designer, abra la aplicación y haga clic en **New → Expression Rule**.
  </Step>

  <Step title="Asignar un nombre y guardar la regla">
    Seleccione **crear desde cero**, complete los campos **Name** y **Save In**, y haga clic en **crear y editar**.
  </Step>

  <Step title="Agregar la entrada RecordTypeName">
    En el cuadro de diálogo **Entradas de regla**, haga clic en el icono **+** y agregue una variable de entrada de tipo **Text** llamada `RecordTypeName`.
  </Step>

  <Step title="Pegar la expresión">
    En el editor de código de la izquierda, pegue la siguiente expresión:

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* En el parámetro RecordTypeName, especifique el nombre del nuevo tipo de registro en plural.  */
        cons!New_Constant, /* Después de cons!, especifique el nombre de la constante del tipo de registro. */
        null /* Si hay más de un tipo de registro en la aplicación, reemplace "null" por la misma condición "if" anterior, especificando el nombre del segundo tipo de registro y el nombre de su constante. */
    )
    ```
  </Step>
</Steps>

Si la entrada `RecordTypeName` coincide con el nombre de un tipo de registro almacenado (en plural), la regla devuelve la constante **Data Store Entity** que vincula el almacén de datos y el tipo de datos.

## <a id="getdatatypebyrecordtypename" />Crear una regla AFC\_GetDataTypeByRecordTypeName

El método `CreateRecord` de la Web API requiere una regla que devuelva el nombre completo del tipo de datos.

<Steps>
  <Step title="Crear una nueva regla de expresión">
    En Appian Designer, abra la aplicación y haga clic en **New → Expression Rule**.
  </Step>

  <Step title="Asignar nombre y guardar la regla">
    Seleccione **crear desde cero**, complete los campos **Name** y **Save In**, y haga clic en **crear y editar**.
  </Step>

  <Step title="Agregar la entrada RecordTypeName">
    En el cuadro de diálogo **Entradas de regla**, haga clic en el icono **+** y agregue una variable de entrada de tipo **Text** llamada `RecordTypeName`.
  </Step>

  <Step title="Pegar la expresión">
    En el editor de código de la izquierda, pegue la siguiente expresión:

    ```text theme={null}
    if(ri!RecordTypeName == "New Records", /* En el parámetro RecordTypeName, especifique el nombre del nuevo tipo de registro en plural, el nombre completo del tipo de datos y el namespace del tipo de registro. */
        'type!{urn:com:appian:types}NewDataType',
        null
        /* Si hay más de un tipo de registro en la aplicación, reemplace "null" por la misma condición "if" anterior, especificando el nombre del segundo tipo de registro, el nombre completo del tipo de datos y el namespace del tipo de registro. */
    )
    ```
  </Step>
</Steps>

Si la entrada `RecordTypeName` coincide con el nombre de un tipo de registro guardado (en plural), la regla devuelve una cadena con el nombre completo del tipo de datos. De lo contrario, devuelve `null`. Para encontrar el namespace, abra el tipo de datos en la aplicación ABBYYFlexiCapture y, a continuación, haga clic en el nombre del tipo de datos en la esquina superior izquierda para abrir la ventana **Data Type Properties**.

## <a id="webapikc" />Crear el método Web API UploadDocument

<Steps>
  <Step title="Crear una nueva Web API">
    En Appian Designer, abra la aplicación y haga clic en **Nuevo → Web API**.
  </Step>

  <Step title="Asignar un nombre a la Web API">
    Escriba `UploadDocument` en los campos **Name** y **Endpoint**, cambie **HTTP Method** a **POST** y haga clic en **crear y editar**.
  </Step>

  <Step title="Pegar el código">
    Cierre el cuadro de diálogo de selección de plantillas y, a continuación, pegue el siguiente código en el editor de código:

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

<Note>
  El método `uploaddocument(String query)` aparece en el editor de código solo si el archivo `ABBYYFlexiCapturePlugin.jar` está en la carpeta `APPIAN_INSTALL/_admin/plugins/`. Este método envía una cadena JSON con el contenido del archivo directamente al método Java que creó y devuelve una cadena JSON con el ID de la carpeta en la que se colocó el documento.
</Note>

## <a id="webapidt" />Crear el método Web API CreateRecord

<Steps>
  <Step title="Crear una nueva Web API">
    En Appian Designer, abra la aplicación y haga clic en **New → Web API**.
  </Step>

  <Step title="Asignar un nombre a la Web API">
    Introduzca `CreateRecord` en los campos **Name** y **Endpoint**, cambie **HTTP Method** a **POST** y haga clic en **crear y editar**.
  </Step>

  <Step title="Pegar el código">
    Cierre el cuadro de diálogo de selección de plantillas y, a continuación, pegue el siguiente código en el editor de código:

    ```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)` acepta un parámetro con el nombre del tipo de registro (recibido por el método Web API desde ABBYY FlexiCapture Connector for Appian) y devuelve el nombre completo del tipo de datos.
    * `rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName)` devuelve la constante **Data Store Entity**.
  </Step>

  <Step title="Agregar el parámetro de consulta">
    1. En el panel derecho, haga clic en el botón **New Query Parameter** y agregue un parámetro llamado `RecordTypeName` a la cadena de consulta.
    2. Seleccione la opción **Set as default test value** y haga clic en **Save**.
  </Step>
</Steps>
