Saltar al contenido principal
ABBYY FlexiLayout Studio incluye varias características especiales para desarrollar FlexiLayouts adicionales para proyectos de facturas:
  • Puede especificar la ubicación de los elementos en relación con las regiones de los campos detectados cuando se aplicó el FlexiLayout principal del proyecto de facturas.
  • Los identificadores de proveedores y unidades de negocio pueden usarse en solicitudes al conjunto de datos de la Definición de Document.
  • Las listas de palabras clave y otros parámetros de un FlexiLayout pueden exportarse a un archivo XML, lo que permite editarlas sin modificar el FlexiLayout ni la Definición de Document.

Crear un FlexiLayout adicional

1

Abrir un lote en FlexiCapture

Abra un lote con facturas reconocidas en FlexiCapture.
2

Crear un proyecto de FlexiLayout Studio

Cree un proyecto nuevo en ABBYY FlexiLayout Studio. En el menú principal, seleccione Herramientas → Exportar lote a FlexiLayout Studio → Crear nuevo proyecto de FlexiLayout Studio….
Este comando solo está disponible para proyectos de FlexiCapture almacenados en su equipo. Si está usando la versión Distributed de FlexiCapture y el proyecto está almacenado en el servidor, primero descárguelo a su equipo haciendo clic en Exportar proyecto… en el menú Project.
El sufijo del proyecto de ABBYY FlexiLayout Studio indica la versión de la Definición de Document en el momento en que se creó el proyecto.
El proyecto de ABBYY FlexiLayout Studio que acaba de crear contiene todos los documentos del lote de FlexiCapture, además de las regiones de campo detectadas durante el reconocimiento, en forma de un Reference layout.

Cómo agregar un campo a un FlexiLayout adicional

Para agregar un campo a un FlexiLayout adicional, cree un bloque para este campo y especifique su elemento de búsqueda. Los campos de la Definición de Document deben tener nombres únicos. Esto significa que:
  • Para definir la lógica de búsqueda de un campo, cree un bloque con un nombre único.
  • Para cambiar la lógica de búsqueda de un campo que ya existe en la Definición de Document, cree un bloque con el mismo nombre.

Agregar páginas a un FlexiLayout adicional

Si desea probar en imágenes nuevas los cambios realizados en un FlexiLayout adicional, puede exportar sus lotes de FlexiCapture a un proyecto de facturas existente en ABBYY FlexiLayout Studio. Para exportar sus lotes, haga clic en Herramientas → Exportar lote a FlexiLayout Studio → Agregar a un proyecto existente de FlexiLayout Studio….
  • Solo puede exportar lotes de FlexiCapture a proyectos de ABBYY FlexiLayout Studio que se hayan creado seleccionando Herramientas → Exportar lote a FlexiLayout Studio → Crear un nuevo proyecto de FlexiLayout Studio….
  • Cuando exporta un lote de FlexiCapture a ABBYY FlexiLayout Studio, se crea un lote nuevo en ABBYY FlexiLayout Studio para ese lote.
  • Si la nueva Definición de Document tiene más campos que la Definición de Document utilizada para el proyecto de ABBYY FlexiLayout Studio, el registro de exportación contiene una advertencia por cada campo adicional.
  • Para que el programa exporte los campos adicionales, agregue para cada campo adicional un bloque con el mismo nombre en el nodo CommonBlockRegions del árbol SearchElements.

Realizar solicitudes a conjuntos de datos desde la Definición de Document

Puede encontrar una solicitud de ejemplo en el elemento DataSetRequestSample. Este elemento está deshabilitado de forma predeterminada.

Funciones

Sintaxis:
  • La ruta a la Definición de Document y el nombre del conjunto de datos se utilizan para acceder al conjunto de datos cuando se trabaja con un FlexiLayout en ABBYY FlexiLayout Studio.
  • Después de agregar un FlexiLayout compilado a una Definición de Document en FlexiCapture, al acceder al conjunto de datos solo se utiliza su nombre.
  • Formato de connectionString:
    Nota: Separe las partes de la ruta con barras invertidas dobles (\\).
  • searchFields — array de nombres de columnas de las que se deben recuperar valores.
  • searchCriteria — array de pares columna-entrada; devuelve todos los valores si está vacío.
    • Si una solicitud contiene varios valores para un campo, use el operador OR.
    • Si una solicitud contiene varios valores, cada uno correspondiente a un solo campo, use el operador AND.
    • Si una solicitud contiene varios valores para un campo y valores para varios campos, use el operador OR para distinguir los varios valores de un campo y el operador AND para combinar los valores de varios campos.

Buscar en una imagen filas de una columna de una base de datos externa

1

Listar las columnas

Use FieldNamesOfFCDataset para obtener una lista de columnas ordenadas de forma ascendente por sus números de índice.
2

Buscar el índice de la columna

Determine el número de índice de la columna en la que necesita buscar datos.
3

Crear el filtro

Cree un array de condiciones para filtrar datos del conjunto de datos.
4

Ejecutar la búsqueda

Pase los números de índice de la columna y las condiciones del filtro a SearchTextFromFCDataSet (o a RegularExpressionFromFCDataSet, si necesita usar expresiones regulares).
Este código se genera automáticamente cuando se exporta un lote reconocido desde FlexiCapture.

Buscar entradas de varias columnas en una imagen

Dado que los parámetros de búsqueda se sustituyen cada vez que se llama a la función SearchTextFromFCDataSet, llamarla repetidamente no produce ningún efecto. Como alternativa, obtenga cadenas de una base de datos externa y páselas a la función SearchText, que añade cada cadena a los parámetros de búsqueda existentes en lugar de sustituirlos.
1

Enumerar las columnas

Cree un array con los nombres de las columnas en las que necesita buscar datos.
2

Crear el filtro

Cree un array de condiciones de filtro para filtrar datos del conjunto de datos.
3

Contar las entradas

Determine el número de entradas que se devuelven mediante la función RecordCountOfFCDataset.
4

Preparar la consulta

Prepare los datos de la consulta mediante la función PrepareRecordsetOfFCDataset.
5

Leer cada registro

Recorra todos los registros y obtenga el array de cada registro mediante el método RecordOfFCDataset.
6

Pasar los valores a SearchText

Pase el valor de cada elemento del array a la función SearchText.

Consideraciones adicionales sobre las columnas complejas

  • La función FieldNamesOfFCDataset devuelve un array que contiene varias apariciones del nombre de la columna compleja. El número de apariciones es igual al número de instancias de columna en una base de datos externa codificada. Ejemplo: {VendorId, VATID, Name, Name, Name, City}. En este caso, la base de datos externa contiene tres columnas para la única columna compleja Name del conjunto de datos.
  • Si SearchCriteria contiene una condición para un campo que corresponde a una columna compleja (como en el ejemplo anterior), esta condición se utiliza para comprobar todas esas instancias de columna.
  • Si searchFields contiene una condición para un campo que corresponde a una columna compleja (como en el ejemplo anterior), el resultado contiene el array de valores de cada instancia de columna. Por ejemplo, si solicita lo siguiente para {VendorId, VATID, Name, Name, Name, City}:
  • Puede obtener una lista de las columnas que se devuelven pasando el array searchFields a la función FieldNamesOfFCDataset.

Haga una solicitud a un archivo XML que contenga la configuración de FlexiLayout

Puede realizar solicitudes a un archivo XML con la configuración de FlexiLayout mediante dos funciones estándar descritas en la documentación de ABBYY FlexiLayout Studio:
Para usar este archivo al trabajar con un FlexiLayout en ABBYY FlexiLayout Studio, colóquelo en la carpeta del proyecto o en una de sus subcarpetas. La ruta del archivo es relativa al archivo de proyecto de ABBYY FlexiLayout Studio. Si carga un FlexiLayout compilado en una Definición de Document de FlexiCapture y lo usa como FlexiLayout adicional, el archivo XML se coloca en la carpeta Templates y puede editarlo. Cuando se aplica el FlexiLayout, el programa gestiona automáticamente el acceso a este archivo.