Saltar al contenido principal

Bases de datos compatibles con ODBC

FCFORINVOICES le permite conectar un conjunto de datos a una base de datos compatible con ODBC (consulte Uso de bases de datos de proveedores y unidades de negocio), para cargar datos una sola vez o para actualizar un conjunto de datos con datos de una base de datos externa a intervalos regulares (consulte Actualización de conjuntos de datos). Por lo tanto, su primer paso debería ser cargar los datos externos en una base de datos compatible con ODBC, como Microsoft Access, Microsoft SQL Server u Oracle.

Eliminación de registros duplicados en la base de datos externa

Es importante determinar el campo de la base de datos externa de proveedores (o unidades de negocio) cuyo valor debe obtenerse como resultado de detectar al proveedor (o a la unidad de negocio) en una factura. Este campo (o conjunto de campos) debe convertirse en la clave única del conjunto de datos. La clave única de un conjunto de datos de unidades de negocio es el campo Id (consulte conjunto de datos BusinessUnits). Desde el punto de vista del usuario, este campo es el resultado de que FCFORINVOICES detecte la unidad de negocio a la que se emitió la factura en cuestión. La clave única de un conjunto de datos de proveedores debe ser el valor que se pasa al sistema de información externo como resultado de que FCFORINVOICES detecte al proveedor que emitió la factura en cuestión. Si se utiliza una sola tabla de proveedores, la clave única debe asociarse con el campo Id del conjunto de datos. Este valor se pasará al sistema de información externo cuando se detecte al proveedor en la factura. Si planea procesar, dentro de un mismo proyecto, facturas emitidas a distintas unidades de negocio de su empresa, cada una con su propia base de datos de proveedores, debe asociar la clave única de cada unidad de negocio con la columna BusinessUnitId del conjunto de datos Vendors, y la clave de cada proveedor con la columna Id del conjunto de datos Vendors. Por lo tanto, la clave única del registro del proveedor que se pasará al sistema de información externo cuando se detecte al proveedor será el par de valores Id y BusinessUnitId (consulte conjunto de datos Vendors). En las explicaciones que siguen, consideraremos solo la detección de proveedores, ya que la situación es completamente idéntica en el caso de las unidades de negocio. La clave única de un registro debe determinar la combinación única de parámetros que se utilizan para la detección de proveedores. Muy a menudo, un sistema de información externo considerará que un registro de proveedor es único basándose en más parámetros de los que se especifican en la factura o se utilizan para la detección de proveedores. Por ejemplo, un sistema de información externo puede esperar recibir un identificador MCN_USD si el proveedor My Company Name Ltd. emite una factura en dólares estadounidenses, o puede esperar un identificador MCN_EUR si la misma empresa emitió una factura en euros. Aunque la divisa se indica en la factura (y el caso en el que debe devolverse MCN_USD puede distinguirse del caso en el que debe devolverse el identificador MCN_EUR), la divisa no se utiliza para la detección de proveedores. Por lo tanto, el mecanismo de detección de proveedores no puede decidir entre MCN_USD y MCN_EUR. En casos como este, cree un identificador MCN que corresponda tanto a MCN_USD como a MCN_EUR y que se devuelva cuando se detecte al proveedor. A continuación, puede crear una regla en la Definición de Document que elija entre MCN_USD y MCN_EUR según la divisa de la factura en cuestión. En términos generales, el identificador único de un registro de proveedor debe tener un conjunto único de parámetros que se utilicen para la detección de proveedores, como el nombre de la empresa, la dirección de la empresa, los números de identificación fiscal (VATID, NationalVATID) e IBAN (consulte conjunto de datos Vendors). Solo entonces el mecanismo de detección de proveedores podrá seleccionar el registro de proveedor correcto para una factura.
A continuación, el programa puede capturar campos adicionales y utilizar reglas en la Definición de Document para ajustar el resultado y obtener el valor requerido.
Si el mismo conjunto de parámetros (o uno fácilmente confundible) que se utiliza para la detección de proveedores corresponde a varias claves únicas, el programa no podrá elegir una sola clave, la detección de proveedores se volverá errática y la calidad se degradará. La razón es la siguiente. Si el programa puede usar los datos impresos en la factura para detectar de forma fiable al proveedor My Company Name, pero hay varios registros (MCN1, MCN2, … MCNN) en el conjunto de datos que corresponden a los datos de la factura, el programa puede decidirse por otro registro, que coincide peor con los datos de la factura pero que no produce tantos registros. Esto acabará haciendo que el proveedor se detecte incorrectamente. En consecuencia, es muy importante eliminar los registros duplicados en la base de datos externa y obtener una columna en la base de datos externa que tenga un valor único para cada combinación única de valores de los campos del registro utilizados para la detección de proveedores. Al conectarse al conjunto de datos, las filas con valores idénticos en la columna que se asociará con la clave única del conjunto de datos se contraerán automáticamente en un solo registro dentro del conjunto de datos.

Columnas con varios valores en un conjunto de datos

Un conjunto de datos puede almacenar varios valores para una misma columna lógica de un registro de empresa. Es necesario almacenar varios valores porque algunos parámetros de la empresa, como el nombre de la empresa, la calle, etc., pueden variar de una factura a otra (p. ej., podemos tener “My Company Name” y “MCN Ltd.”), pero, para detectar la empresa de forma fiable, el texto del conjunto de datos debe coincidir lo más posible con el texto capturado de una imagen de factura. Además, una empresa puede tener varias cuentas bancarias u otros atributos.
Tenga en cuenta que las columnas con varios valores en los conjuntos de datos deben usarse para almacenar la misma información escrita de distintas formas. Por ejemplo, “Karl Marx Street” y “K. Marx str.” son dos maneras diferentes de escribir la misma dirección. Sin embargo, las sucursales de una empresa en Londres y Berlín deben tener dos registros independientes.
Los valores de las columnas con varios valores pueden tomarse de una base de datos externa (p. ej., una tabla de proveedores puede contener entre uno y cinco datos bancarios para cada empresa), o bien puede añadirlos el usuario durante la captura de datos (p. ej., un operador puede añadir al conjunto de datos una variante de uso frecuente del nombre de una empresa que no figura en la base de datos externa). Los conjuntos de datos usan la desnormalización de columnas, es decir, almacenan los datos de la siguiente forma:
Clave única del conjunto de datos*Name1Name2NameN
1My Company NameMCN Ltd.<valor vacío>
2The Second Company, Inc.S-Company<valor vacío>
Para un campo lógico de un registro, por ejemplo, Name, se crean varias columnas en el conjunto de datos para almacenar todos los valores posibles de ese campo lógico. Por lo tanto, Name puede denominarse una “columna compleja”. Al conectar una tabla (o una vista) desde una base de datos externa, puede usar la desnormalización de columnas descrita anteriormente o la desnormalización de filas, que es más habitual. En este último caso, las filas que deban combinarse en el conjunto de datos como parámetros de un mismo registro deben tener el mismo valor en la columna correspondiente a la clave única del conjunto de datos. Por ejemplo:
Columna correspondiente a la clave única en el conjunto de datos*Name
1My Company Name
1MCN Ltd.
N<valor vacío>
2The Second Company, Inc.
2S-Company
N<valor vacío>
*La clave única de un conjunto de datos BusinessUnits es el campo Id. La clave única de un conjunto de datos Vendors es el campo Id o el par de campos Id y BusinessUnitId, según la configuración (consulte conjunto de datos Vendors)