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

# Uso de bases de datos de proveedores y unidades de negocio

> Conecte bases de datos de proveedores y unidades de negocio a conjuntos de datos en ABBYY FlexiCapture, asigne columnas, configure la normalización y administre registros de conjuntos de datos.

Al procesar una factura, ABBYY FlexiCapture primero busca el proveedor (la empresa que emitió la factura) y la unidad de negocio (la empresa o el departamento que recibió la factura).

En la mayoría de los casos, el proveedor determina el idioma de la factura y el formato de sus números, fechas e importes. La unidad de negocio determina las tasas impositivas y los requisitos normativos aplicables. ABBYY FlexiCapture utiliza toda esta información al capturar los datos de la factura y aplicar reglas de validación.

Para ayudar al programa a localizar los campos de proveedor y unidad de negocio, puede usar bases de datos de proveedores y unidades de negocio. Estas deben estar conectadas a los conjuntos de datos de su Definición de Document.

Un conjunto de datos es una copia local de una tabla de una base de datos externa que almacena información sobre proveedores o unidades de negocio. A sus valores se les puede asignar un tipo y normalizarlos, y el conjunto puede actualizarse periódicamente para mantenerse sincronizado con la base de datos externa. Para obtener más información, consulte [Preparación de bases de datos de proveedores y unidades de negocio](/es/flexi-capture/invoice-reader/ir-preparing-db).

Las bases de datos de proveedores y unidades de negocio también pueden usarse para comprobaciones automáticas y manuales de datos.

No tiene que usar bases de datos de proveedores y unidades de negocio, pero tenga en cuenta lo siguiente:

* Si se utilizan bases de datos de proveedores y unidades de negocio, ABBYY FlexiCapture puede detectar empresas con mayor fiabilidad al buscar información adicional sobre ellas en las imágenes de las facturas. También puede confirmar que un proveedor detectado es un proveedor "conocido". Además, si se utiliza una base de datos de proveedores, puede [entrenar campos](/es/flexi-capture/invoice-reader/ir-operator-training).
* Si no se utilizan bases de datos de proveedores ni de unidades de negocio, ABBYY FlexiCapture usa redes neuronales para buscar nombres y direcciones de proveedores y unidades de negocio en las imágenes de las facturas. Para obtener más información, consulte [Detección de los campos principales](/es/flexi-capture/invoice-reader/ir-search-fields#neuralnetwork). Tampoco puede [entrenar campos](/es/flexi-capture/invoice-reader/ir-operator-training), porque ABBYY FlexiCapture no puede identificar proveedores con fiabilidad sin una base de datos de proveedores.
* Si no tiene bases de datos de proveedores, pero aun así desea usar el entrenamiento de campos, puede ir acumulando información de empresas agregando registros a sus conjuntos de datos mientras captura facturas. Para obtener más información, consulte [Búsqueda de proveedores y unidades de negocio en la base de datos](/es/flexi-capture/invoice-reader/ir-data-set-using#addnew).

<div id="connect-a-vendor-or-business-unit-database">
  ## Conectar una base de datos de proveedor o unidad de negocio
</div>

Las bases de datos de proveedores y de unidades de negocio se conectan de la misma forma:

<Steps>
  <Step title="Abra el cuadro de diálogo Document Definitions">
    Abra el menú **Project** y haga clic en **Document Definitions...**.
  </Step>

  <Step title="Edite la Definición de Document">
    Haga clic en el botón **Edit...** en el cuadro de diálogo que se abre.
  </Step>

  <Step title="Abra las Propiedades de Definición de Document">
    Abra el menú **Document Definition** y haga clic en **Document Definition Properties...**.
  </Step>

  <Step title="Abra la pestaña Conjuntos de datos">
    Abra la pestaña **Conjuntos de datos** en el cuadro de diálogo que se abre.
  </Step>

  <Step title="Abra el conjunto de datos">
    Haga doble clic en la fila **BusinessUnits** (o **Vendors**), o haga clic en el botón **Set Up...**. Se abrirá el cuadro de diálogo **Data Set**.

    Un conjunto de datos es, básicamente, una tabla de datos con un conjunto fijo de columnas y tipos que no puede cambiar. Debe hacer coincidir cada columna del conjunto de datos con una columna de una base de datos externa. Si la base de datos no contiene una tabla con los datos necesarios, cree una vista con esos datos y especifique esa vista como tabla.
  </Step>

  <Step title="Seleccione el origen">
    Seleccione **Database** en la lista desplegable **Source**.

    <Note>
      Seleccione el tipo de origen **Script** solo si tiene previsto usar un script para actualizar el conjunto de datos. Para obtener más información, consulte [Updating data sets](/es/flexi-capture/invoice-reader/ir-data-set-update).
    </Note>
  </Step>

  <Step title="Especifique la cadena de conexión">
    Especifique la cadena de conexión de la base de datos. Puede seleccionar una de las variables de entorno existentes del proyecto o definir una nueva cadena haciendo clic en el botón **Specify...**. Usar una variable de entorno del proyecto le permite mover el proyecto y conectarlo a bases de datos con la misma estructura sin editar la Definición de Document.
  </Step>

  <Step title="Seleccione el esquema y la tabla">
    Seleccione **Data schema** y **Database table**.
  </Step>

  <Step title="Haga coincidir las columnas">
    Haga coincidir las columnas del conjunto de datos con las columnas correspondientes de la base de datos externa. Para cada columna del conjunto de datos, puede especificar la columna correspondiente de la base de datos externa o un valor.

    La lista **Match fields** contiene:

    * Los nombres de las columnas del conjunto de datos.
    * Las columnas correspondientes de la base de datos externa.
    * La columna **Found**, que contiene una marca de verificación cuando se ha establecido una coincidencia entre el campo del conjunto de datos y una columna de la base de datos.
    * La columna **Normalization**, que muestra el tipo de normalización usado para el valor.

    De forma predeterminada, cada campo de la columna **External Database** del conjunto de datos contiene el valor, lo que significa que no se ha especificado ninguna columna de la base de datos externa. La normalización permite tratar como idénticos varios valores ligeramente distintos. Para obtener más información, consulte [Normalization of values in data sets](/es/flexi-capture/invoice-reader/ir-normalization).

    Para asignar cada columna, selecciónela en la tabla y haga clic en el botón **Edit...**. Para obtener más información, consulte [Map a data set column to a database column](#map-a-data-set-column-to-a-database-column).
  </Step>

  <Step title="Agregue columnas personalizadas (opcional)">
    Use el botón **Add...** para agregar columnas personalizadas a un conjunto de datos y especificar las columnas correspondientes en una base de datos externa.

    <Note>
      Use los botones **Edit...** y **Delete** para administrar columnas complejas. Las columnas predefinidas (indicadas por el icono de bloqueo) no se pueden eliminar.
    </Note>
  </Step>

  <Step title="Establezca un período de actualización">
    Especifique un período de actualización de la base de datos en el conjunto de datos si se requieren actualizaciones automáticas.
  </Step>

  <Step title="Habilite la validación mediante script (opcional)">
    Para validar registros mediante un script, habilite la opción **Check records using scripts**. Para obtener más información, consulte [Data set validation scripts](/es/flexi-capture/appendix/scripts/script-validation).
  </Step>

  <Step title="Guarde los cambios">
    Guarde los cambios.
  </Step>
</Steps>

<div id="map-a-data-set-column-to-a-database-column">
  ### Asignar una columna de un conjunto de datos a una columna de la base de datos
</div>

Para cada columna, selecciónela en la lista **Match fields**, haga clic en el botón **Editar...** y configure la asignación en el cuadro de diálogo **Asignación de columnas del conjunto de datos**:

<Steps>
  <Step title="Seleccione la columna de la base de datos">
    Seleccione la columna correspondiente de la base de datos en la lista **Database columns**.

    Las facturas del mismo proveedor pueden contener distintos nombres y direcciones de empresa. Cuando varios valores corresponden al mismo proveedor (el mismo VATID), colóquelos en distintas columnas de la tabla o vista de la base de datos externa, como **Name1**, **Name2**, **Address1**, ..., **AddressN**. Después, puede seleccionar **Several columns...** en la lista y especificar cualquier número de columnas de la base de datos como coincidencias para la columna del conjunto de datos.

    <Note>
      La base de datos externa puede contener un solo valor para el nombre de la empresa o la calle, pero estos campos pueden presentar varias variantes habituales en las facturas. Para lograr la mejor calidad de detección, el texto de estos campos en una factura debe ser lo más similar posible al texto correspondiente en el conjunto de datos. Para obtener más información, consulte [Columnas con varios valores en un conjunto de datos](/es/flexi-capture/invoice-reader/ir-preparing-db#complexcolumns).
    </Note>

    Para crear más de una columna, especifique el número de columnas permitidas para un campo en el cuadro **Max variant count**. Los operadores pueden agregar valores a estas columnas más adelante.

    <Note>
      Si especifica un número menor que el número real de columnas, este aumentará automáticamente cuando se actualice el conjunto de datos. Si especifica un número mayor que el número real de columnas, se agregarán columnas vacías.
    </Note>

    Si su base de datos no tiene una columna correspondiente para una columna del conjunto de datos, consulte las secciones [conjunto de datos Vendors](/es/flexi-capture/invoice-reader/ir-columns-vendors) y [conjunto de datos BusinessUnits](/es/flexi-capture/invoice-reader/ir-columns-bu).
  </Step>

  <Step title="Seleccione el tipo de normalización">
    Seleccione una opción de la lista **Normalization** que mejor se ajuste al tipo de datos de la columna. Para obtener más información, consulte [Normalización de valores en conjuntos de datos](/es/flexi-capture/invoice-reader/ir-normalization). Si es necesario, habilite la opción **Store normalized value**.
  </Step>

  <Step title="Configure la opción Cannot be empty">
    Habilite la opción **Cannot be empty** si es necesario.

    <Note>
      Cuando está habilitada, la opción **Cannot be empty** indica al programa que una columna debe contener valores. Si resulta que no contiene ninguno, el registro se marca como no válido.
    </Note>

    <Info>
      Si su Definición de Document contiene un conjunto de datos **Vendors** que usa una base de datos externa como origen, y el valor del campo **Proveedor** depende del valor del campo **unidad de negocio**, la opción **Cannot be empty** está habilitada para la columna **BusinessUnitId** de forma predeterminada. Si el conjunto de datos **Vendors** usa otro origen, habilite esta opción manualmente.
    </Info>
  </Step>

  <Step title="Guarde la asignación">
    Guarde los cambios en el cuadro de diálogo **Asignación de columnas del conjunto de datos**.
  </Step>
</Steps>

<div id="the-data-sets-tab">
  ## La pestaña Conjuntos de datos
</div>

Todos los conjuntos de datos se muestran en la pestaña **Conjuntos de datos**. Esta lista incluye información adicional:

* El nombre del conjunto de datos en la columna **Name**.
* El tipo del origen seleccionado en la columna **Source**.
* El número total de registros en la columna **Record count**.
* El estado del conjunto de datos (si está habilitado) en la columna **Connected**.

<Note>
  El número total de registros se muestra solo si la opción **Cache data** está habilitada en las propiedades del conjunto de datos.
</Note>

Puede administrar los conjuntos de datos mediante los botones situados a la derecha de la lista:

* **Set Up...** abre el cuadro de diálogo de propiedades del conjunto de datos seleccionado.
* **Update** actualiza el conjunto de datos seleccionado.
* **Check...** comprueba el conjunto de datos (los datos se muestran en una ventana independiente).
* **Add...** crea un nuevo conjunto de datos.
* **Rename...** cambia el nombre del conjunto de datos seleccionado.
* **Delete** elimina el conjunto de datos seleccionado.
* **View\...** abre un cuadro de diálogo que le permite ver y editar los datos del conjunto de datos seleccionado.
* **Clean Up** elimina todos los registros del conjunto de datos.

Los conjuntos de datos **Vendors** y **BusinessUnits** se almacenan dentro del proyecto y deben sincronizarse con una base de datos externa, cuyos datos pueden cambiar con el tiempo. La sincronización se realiza cuando se abre el proyecto, pero solo si el tiempo transcurrido desde la sincronización anterior supera el período de actualización especificado. Para obtener más información, consulte [Actualización de conjuntos de datos](/es/flexi-capture/invoice-reader/ir-data-set-update).

## <a id="viewing" />Ver y editar registros de conjuntos de datos

Para ver o editar un conjunto de datos, selecciónelo en la pestaña **Conjuntos de datos** del cuadro de diálogo Propiedades de Definición de Document y haga clic en el botón **Ver...**.

Todos los registros pertenecen a uno de tres grupos de registros. Puede seleccionar en la lista desplegable **Grupo de registros** el grupo de registros que desea ver.

* **General** contiene solo registros válidos.
* **Eliminados** contiene registros eliminados por un usuario. Estos registros no se usan durante el reconocimiento ni se muestran como resultados de una [búsqueda en base de datos](/es/flexi-capture/invoice-reader/ir-data-set-using). Si se actualiza el conjunto de datos, estos registros no se restauran.
* **Inválidos** contiene registros inválidos.

Haga clic en el botón **Configurar...** para ordenar y filtrar registros por sus valores en una de las columnas de la lista. El botón **Restablecer** desactiva el filtro.

Hay distintas operaciones disponibles para cada uno de los grupos de registros:

| Operación      | General                                                           | Eliminados                                     | Inválidos                                                         |
| -------------- | ----------------------------------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------- |
| **Editar** \*  | Edita un registro. Los registros editados permanecen en la lista. | —                                              | Edita un registro. Los registros editados permanecen en la lista. |
| **Agregar** \* | Agrega un registro a la lista.                                    | —                                              | —                                                                 |
| **Eliminar**   | Mueve el registro a **Eliminados**.                               | —                                              | Mueve un registro a **Eliminados**.                               |
| **Restaurar**  | —                                                                 | Restaura el registro (lo mueve a **General**). | Valida el registro (lo mueve a **General**).                      |

* Solo es posible agregar y editar registros si la opción **Clave principal** está habilitada. Los registros de los conjuntos de datos predeterminados **PurchaseOrders** y **PurchaseOrderItems** no pueden agregarse ni editarse.

<Note>
  Al agregar o editar registros, la cantidad de valores que puede especificar para un campo no puede superar el **Número máximo de variantes** establecido para ese campo en el cuadro de diálogo **Asignación de columnas del conjunto de datos**. Puede usar los botones <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Add_to_DB.png?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=716437d729d5ff1658d99b6123c1c8aa" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="26" height="22" data-path="images/flexi-capture/Add_to_DB.png" /> y <img src="https://mintcdn.com/abbyy/mpS3pcxC_lkohQUS/images/flexi-capture/Remove_from_DB.png?fit=max&auto=format&n=mpS3pcxC_lkohQUS&q=85&s=af76788e1141f33096557389df7b704c" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="26" height="22" data-path="images/flexi-capture/Remove_from_DB.png" /> en los cuadros de diálogo **Agregar registro** y **Editar registro** para gestionar registros.
</Note>

<Note>
  Para aplicar la ordenación y el filtrado a los registros recién agregados o editados, vuelva a establecer el filtro.
</Note>

<div id="database-check-rules">
  ### Reglas de comprobación de base de datos
</div>

La Definición de Document de Invoice contiene reglas que se utilizan para comprobar los datos de los grupos de campos **Proveedor** y **Business Unit** con la base de datos. Estas son reglas estándar del tipo Database Check, denominadas **(Rejected) Vendor should be found in the database** y **(Rejected) Business Unit should be found in the database**. Para saber cómo encontrar reglas en la lista, consulte [Rules](/es/flexi-capture/invoice-reader/ir-setting-rules).

Puede ver las propiedades de estas reglas para averiguar cómo se comprueba cada campo de los grupos **Proveedor** y **Business Unit**:

* Qué campos deben coincidir exactamente con los registros del conjunto de datos (y, por extensión, de la base de datos).
* Qué campos no tienen que coincidir perfectamente.
* Qué campos simplemente se copian de la base de datos.

También puede especificar un campo para usarlo como clave principal al seleccionar un registro del conjunto de datos.

Para obtener más información, consulte [regla de comprobación de base de datos](/es/flexi-capture/templates/rule-bd).

Las reglas de comprobación de base de datos se aplican automáticamente cuando se reconoce la factura y, después, cada vez que un Operador cambia campos del grupo durante la verificación.

<div id="look-up-records-while-processing-invoices">
  ### Buscar registros durante el procesamiento de facturas
</div>

Si un proveedor o una unidad de negocio no se ha determinado automáticamente, el Operador puede seleccionar el registro adecuado de la base de datos (es decir, del conjunto de datos).

Para obtener más información, consulte [Búsqueda de proveedores y unidades de negocio en la base de datos](/es/flexi-capture/invoice-reader/ir-data-set-using).

<div id="modify-and-add-vendor-and-business-unit-records">
  ### Modificar registros de proveedores y unidades de negocio y agregar nuevos
</div>

Puede permitir que los Operadores agreguen nuevos registros de proveedores y unidades de negocio (si no se encuentran en la base de datos) a los conjuntos de datos durante la verificación y editen entradas existentes. Estos datos no se almacenan en bases de datos externas de proveedores y unidades de negocio, pero se usan durante el procesamiento de facturas y en las comprobaciones de reglas. Para obtener más información, consulte [Habilitación de funciones adicionales del programa para Operadores](/es/flexi-capture/invoice-reader/ir-advanced-options-activation).

Para obtener más información sobre las búsquedas en la base de datos, consulte [Búsqueda de proveedores y unidades de negocio en la base de datos](/es/flexi-capture/invoice-reader/ir-data-set-using).
