Saltar al contenido principal
Una comprobación en base de datos de los valores de campo consiste en comparar un valor de campo reconocido con los valores de una tabla de base de datos. Si un valor de campo capturado se encuentra entre los valores de la base de datos, la comprobación se considera correcta. De lo contrario, la regla devuelve un error. Puede usar esta regla para comprobar si existe una entrada para un valor capturado en su base de datos, realizar búsquedas difusas en su base de datos aunque haya erratas o errores en los campos, sustituir un valor de campo por su Record correspondiente de la base de datos y copiar determinados valores de la base de datos en campos del documento.

Crear una regla de comprobación de base de datos

Para crear una regla de comprobación de base de datos:
  1. Abra el cuadro de diálogo de propiedades del campo (haga clic con el botón derecho en el campo para abrir su menú contextual y seleccione Propiedades…) o el cuadro de diálogo Propiedades de Definición de Document (en el menú del editor de Definición de Document, seleccione Document Definition → Propiedades de Definición de Document…).
  2. Vaya a la pestaña Rules.
  3. Haga clic en el botón New Rule…
  4. En la lista de tipos de regla, seleccione Database Check y haga clic en OK.
  5. Escriba el nombre de la regla.
  6. Desactive la opción Show rule name in message to verifier si es necesario. Si esta opción está desactivada, el mensaje de error se mostrará como “mensaje de error” en lugar de “nombre de la regla: mensaje de error”.
  7. Especifique la gravedad de la regla.
  8. Si es necesario, especifique las condiciones en las que debe aplicarse la regla (de forma predeterminada, una regla se aplica incondicionalmente). Consulte Conditions for applying rules para obtener más información.
  9. Especifique etiquetas para la regla.
  10. Desactive la opción Enabled rule si es necesario. La regla se creará, pero no se aplicará hasta que un usuario habilite esta opción.
  11. Haga clic en Next >.
  12. Configure una conexión al origen de datos especificando su tipo y sus parámetros de conexión. Se admiten los siguientes orígenes de datos:
  • External Database (Simple) La conexión a la base de datos externa se configura para cada regla en la Definición de Document.
    • External Database (Variable) La conexión a la base de datos externa se configura solo en las propiedades del proyecto (Propiedades del proyecto → Variables de entorno). Este tipo de origen de datos puede usarse simultáneamente para varias reglas. Si usa una base de datos distinta para el proyecto, solo tendrá que modificar la configuración de conexión en las propiedades del proyecto.
    • data set La conexión al conjunto de datos la configura el usuario en las propiedades de la Definición de Document (Propiedades de Definición de Document → Conjuntos de datos). Tip. Recomendamos seleccionar lo siguiente como OLE DB Provider:
    • Al exportar a SQL, use preferiblemente OLE DB Provider for ODBC Drivers
    • Al exportar a Oracle, use preferiblemente Oracle Provider for OLE DB (para obtener más información, consulte Exporting to an Oracle database) Nota: Para evitar tener que introducir la contraseña cada vez que se conecte a la base de datos, seleccione la opción Allow saving password o configure la base de datos para que no requiera contraseña para conectarse a ella (por ejemplo, puede usar la autenticación de Windows).
  1. Seleccione el esquema y la tabla de base de datos requeridos en las listas desplegables, o especifique el conjunto de datos requerido si está configurando una conexión a un origen de tipo data set. Nota: Si Find in all schemas está seleccionado como esquema y la tabla especificada no está incluida en el esquema predeterminado, puede aparecer el siguiente mensaje de error: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name K1. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. Si aparece este mensaje de error, debe especificarse explícitamente el nombre del esquema que contiene la tabla.
  2. Seleccione la opción Don’t check if all fields are empty para omitir las comprobaciones de regla si no hay valores en los campos implicados en la comparación. Esto acelerará la validación de la regla.
  3. Establezca vínculos entre los campos de la Definición de Document y los campos de la base de datos (consulte Especificar campos para comparar más abajo).
  4. Use los botones Add…, Edit… y Delete para agregar, editar o eliminar vínculos entre campos.
  5. Si seleccionó un Data Set como origen, ahora puede seleccionar el campo que actuará como clave principal en la lista desplegable Field where to save record ID.
Se puede acceder directamente a un conjunto de datos desde el formulario de datos mediante un control de tipo “Button”. Para agregar un botón al formulario de datos, seleccione Form → Insert Control → Button en el editor de Definición de Document. Cuando agregue un botón al formulario de datos, se abrirá el cuadro de diálogo Propiedades. Haga clic en la pestaña Format, seleccione Database Lookup en la lista desplegable Type y, a continuación, seleccione una regla de comprobación de base de datos creada previamente.

Especificación de campos para comparar

En el grupo Vínculos de campos de la pestaña Configuración de reglas, puede ver las comparaciones de campos ya especificadas. Puede configurar una regla de comprobación de base de datos para un solo campo o para un conjunto de campos. Cuando agregue o modifique campos para comparar, debe especificar lo siguiente:
  • Campo del documento El campo de la Definición de Document que se comparará con un campo de la base de datos
  • Campo de la base de datos El campo de la base de datos que se comparará con el campo del documento
  • Búsqueda Especifica el tipo de comparación:
    • Exacta El valor del campo del documento debe coincidir exactamente con el valor del campo de la base de datos (tenga en cuenta, sin embargo, que las búsquedas no distinguen entre mayúsculas y minúsculas)
    • Difusa El valor del campo del documento puede coincidir solo parcialmente con el valor de la base de datos. Solo los campos de texto pueden utilizarse en este tipo de comparación.
Las búsquedas difusas encontrarán las coincidencias más cercanas, es decir, palabras para las que es necesario agregar, eliminar o sustituir el menor número posible de letras para lograr una coincidencia. El número de errores permitidos depende de la longitud de la palabra original. Si una búsqueda difusa encuentra más de un valor coincidente, se mostrará al operador el siguiente mensaje de error: Se encontraron demasiados registros. Este mensaje de error va acompañado de la lista de coincidencias cercanas de la base de datos para que el operador pueda seleccionar el valor correcto de la lista. Están disponibles las siguientes opciones adicionales:
  • No buscar si el campo está vacío Si el campo está vacío, su valor no se comparará con los valores de la base de datos.
  • Introducir valor de la base de datos Si una búsqueda difusa encuentra un valor coincidente en la base de datos, este valor puede introducirse automáticamente en el campo si:
    • los valores del campo y de la base de datos son diferentes
    • el campo está vacío. Nota: En el caso de las búsquedas exactas, seleccionar la opción Introducir valor de la base de datos no tiene sentido, ya que los dos valores serán idénticos.
  • Permitir valores vacíos en la base de datos Según los resultados de la comprobación de la base de datos y otros ajustes, esta opción tendrá el siguiente significado:
    • si el campo de la base de datos está vacío y el campo del documento no está vacío, los valores del campo y de la base de datos se consideran idénticos
    • si el campo de la base de datos está vacío y el campo del documento no está vacío y está seleccionada la opción Rellenar desde la base de datos, el valor vacío de la base de datos no se introducirá en el campo.

Claves primarias en conjuntos de datos

Si su proyecto incluye un conjunto de datos (una copia local de una base de datos externa) del que desea tomar valores de campos para los documentos cuando se procesen, puede usar una regla de comprobación de base de datos para especificar un campo que sirva como clave primaria (identificador único) de un Record del conjunto de datos. Si hace esto, los datos del formulario de datos se harán corresponder con los datos del conjunto de datos. Cuando seleccione un Record, todos los campos se rellenarán con valores del conjunto de datos. No podrá editar los valores en el formulario de datos. Si intenta hacerlo, aparecerá un cuadro de diálogo en el que se le pedirá que realice una de las siguientes acciones:
  • seleccionar otro Record del conjunto de datos
  • editar el Record existente
Puede abrir el cuadro de diálogo para agregar o editar Records haciendo clic con el botón derecho en un campo y, a continuación, en Edit Data Set Record… o Add Data Set Record… en el menú contextual. Cuando elimine datos de un campo rellenado pulsando la tecla Delete, también se eliminarán los datos de todos los demás campos relacionados con la regla. La regla se volverá a comprobar cuando aplique los cambios. Cómo funcionan las claves primarias
  1. Todos los campos a los que se aplica la regla deben tener habilitada la opción introducir valor de la base de datos; en ese caso, siempre que el campo que actúa como clave primaria contenga un valor, el programa no buscará valores para los demás campos y, en su lugar, los rellenará con valores de la base de datos.
  2. Si el campo que actúa como clave primaria no contiene ningún valor, el programa examinará otros campos para los que se haya habilitado la opción Buscar al especificar los campos que deben compararse en el cuadro de diálogo Vínculo de campos (consulte Especificar los campos que se van a comparar más arriba). Si se encuentra un Record único para estos campos, se usarán los valores de la base de datos (como en el punto 1 anterior).
Ahora, lo único que tiene que hacer el usuario es decidir si acepta todos los cambios o elige otro Record del conjunto de datos. Deben cumplirse las siguientes condiciones para que la clave primaria funcione:
  • Se selecciona un conjunto de datos como origen;
  • Se especifica una clave primaria en el conjunto de datos, es decir, la opción Clave primaria estaba habilitada para un campo cuando
  • El campo usado como clave primaria no figura en la lista Vínculos de campos de la pestaña Configuración de reglas.
La sección ABBYY FlexiCapture for Invoices contiene más información sobre los conjuntos de datos y explica su uso en un proyecto de ejemplo. Consulte Uso de bases de datos de proveedores y unidades de negocio. Consulte Búsqueda de proveedores y unidades de negocio en la base de datos.

Realizar una comprobación en la base de datos para un conjunto de campos

En este caso, el programa buscará en la base de datos un registro coincidente para los valores de un conjunto de campos; cada valor del conjunto de campos está vinculado a distintas columnas del registro encontrado. Considere el siguiente ejemplo: Asociemos los campos del documento Fa, Fb y Fc con las columnas de la base de datos Ta, Tb y Tc de la siguiente manera:
  • El valor del campo Fa coincide exactamente con el valor de Ta
  • El valor del campo Fb coincide de forma difusa con el valor de Tb
  • Cuando se cumplen las condiciones especificadas, el valor de la columna Tc se copia en el campo Fc.
La comprobación en la base de datos se realizará correctamente si el programa encuentra un registro de la base de datos en el que el valor de la columna Ta coincida exactamente con el valor del campo Fa y el valor de la columna Tb coincida de forma difusa con el valor del campo Fb. El valor de la columna Tc de este registro se copiará en el campo Fc. Si no se encuentra ningún registro de este tipo, la regla devolverá un error, incluso si el programa encuentra, por ejemplo, Ta = Fa y Tb = Fb en registros distintos.
Son posibles distintas combinaciones: coincidencias exactas/difusas/mixtas, sin rellenado automático, cantidad no especificada de campos, etc.