En este apartado, reservado para programadores con los necesarios conocimientos técnicos, se describe el formato de los ficheros XML requeridos en la importación de datos.
La importación de datos en formato XML está directamente relacionada con la opción Exportación de datos de OfiPro, ya que en ambas coinciden los nombres de los ficheros tratados, los campos que contienen, y el formato interno del fichero XML.
Por tanto, ejecutando la opción Exportación de datos podrá ver qué ficheros se pueden importar, con qué nombres, qué campos contienen, etc. Podrá ver que la tabla de Albaranes de venta ha de denominarse Albaranes.xml, mientras que la de Albaranes de compra ha de denominarse Albaranes de compra.xml.
Por ejemplo, si desea importar Artículos, ejecute la opción Exportación de datos, seleccionando el fichero de Artículos. Se habrá generado un fichero denominado Artículos.xml en la carpeta Datos exportados (situada en Mis Documentos\OfiPro). Haciendo doble clic sobre él, se podrá observar, en el navegador de Internet, la estructura y campos requeridos en la importación.
Formato de los ficheros de importación a OfiPro
Si Vd. trabaja con Delphi como lenguaje de programación, podrá generar fácilmente los ficheros XML necesarios para su importación en OfiPro.
Para generar un fichero XML en el formato requerido por OfiPro, utilice el componente TClientDataset:
ClientDataset.SaveToFile('ExportacionGesPro.xml', dfXMLUTF8);
|
La estructura del fichero tiene dos partes claramente diferenciadas: la definición de los campos (metadata) y los valores de los mismos (rowdata).
|
En este apartado se declara cada campo definiendo las características que tiene: tipo, anchura etc.
|
Los valores que ha de rellenar en cada campo deben estar en concordancia con su tipo de dato. Por ejemplo para el código de una Factura debe asignársele un valor numérico.
|
Existen una serie de campos especiales que sirven para identificar registros dentro de cada tabla y que son necesarios para realizar la importación de los datos. Son los campos ID (Identificadores).
Estos campos están compuestos por uno o más valores que identifican al registro de manera única, es decir, actúan como índices. En una tabla exportada pueden existir varios campos de este tipo (que a partir de ahora llamaremos Campos Id). Son fácilmente identificables ya que empiezan por ID_ (existe una excepción que es el campo Id_Cierre de la tabla Cierres de Caja que es un campo normal no ID).
Un Campo Id puede identificar al propio registro o a un registro de otra tabla y estará formado a su vez por uno o más campos separados por comas. Por ejemplo el campo ID_FACTURA_VENTA está formado por los campos Serie y Código.
Cuando el Campo Id es de la propia tabla se utiliza en la importación para saber si este registro ya está dado de alta en la BD. Con esto se consigue que se pueda repetir la importación tantas veces como se desee con los mismos ficheros ya que los valores que ya están dados de alta no se van a volver a insertar.
Cuando el Campo Id es de una tabla externa se utiliza en la importación para buscar dicho identificador en la tabla externa. Por ejemplo dentro de una Factura el identificador de Clientes se utiliza para buscar dicho cliente en la tabla Clientes.
Por ejemplo, si exporta la tabla de Albaranes, verá que el fichero generado tiene los siguientes campos Id:
•ID_ALBARAN_VENTA: Está formado por la Serie y el Código separado por comas (ej.: "A,22") •ID_CLIENTE: Identifica al Cliente mediante su Código. •ID_DIRECCION: Identifica la Dirección de Envío del Cliente mediante el Código de dicha Dirección de Envío. •ID_FORMA_COBRO: Identifica a la Forma de Cobro mediante su Código. •ID_DIVISA: Identifica a la Divisa mediante su Código. •ID_AGENTE: Identifica al Agente mediante su Código. •ID_TRANSPORTISTA: Identifica al Transportista mediante su Código. •ID_FACTURA_VENTA: Si este albarán se ha utilizado para crear una factura este identificador está formado por la Serie y el Código dicha factura (ej.: "B,17").
En la mayoría de los casos los Campos Id sólo están formados por un campo (campo Código). Si está formado por más campos (por ejemplo Serie, Código) los valores deben estar separados por comas.
Existen una serie de normas de formateo para rellenar los valores de los Campos Id que son de tipo cadena (por ejemplo el ID_ARTICULO que contiene la Referencia del Artículo):
1.Si el valor contiene espacios debe encerrarse entre comillas dobles (sin contar las que se visualizan en color azul en Internet Explorer). Ej.: Mesa Recta -> "Mesa Recta".
2.Por cada comilla doble que contenga el campo debe sustituirse por 2 comillas dobles. Ej.: Televisor 21" -> "Televisor 21""" (observe que al final hay 3 comillas dobles, 2 son para sustituir la comilla doble original y una es porque la cadena contiene espacios).
3.Por último, si no existe ningún valor para el Campo ID (= null), dicho campo no se incluye en ese registro. Ej.: Como puede observar en las dos imágenes anteriores, en la primera debajo de ID_ARTICULO existen otros Campos Id como son ID_ARTICULO_FAMILIA, ID_ARTICULO_GAMA, etc., sin embargo en la segunda imagen dichos campos no existen porque para este registro éstos estaban a Null.
|
Algunas tablas donde no tienen ningún índice (formado por uno o varios campos) que tenga valores únicos y que identifique cada elemento de la misma. Para este tipo de tablas se crea un índice especial que es de tipo numérico y que la relaciona con las otras tablas que dependan de ella. Por ejemplo "Líneas de Facturas de Venta" y "Líneas de Facturas de Ventas Propiedades" se relacionan mediante un valor numérico interno, un campo común que contiene el mismo valor para ambas tablas. Además de tener el mismo valor este debe ser negativo para que OfiPro considere que estamos realizando una nueva alta.
|
Los campos de tipo Fecha deben estar en el formato yyyyddmm (año día mes).
Los campos Numéricos con decimales debe utilizar el punto como separador decimal.
|
A continuación se describen todos los identificadores necesarios para cada Fichero.
A continuación se muestran los identificadores Detalle-SubDetalle cuyos valores deben ser negativos y pueden ser cualquiera mientras mantengan la correcta relación Detalle-SubDetalle
A continuación se muestran los identificadores Detalle-SubDetalle cuyos valores deben ser negativos y pueden ser cualquiera mientras mantengan la correcta relación Detalle-SubDetalle
|
* Indica el Año del Ejercicio, no su Nombre.
A continuación se muestran los identificadores Detalle-SubDetalle cuyos valores deben ser negativos y pueden ser cualquiera mientras mantengan la correcta relación Detalle-SubDetalle.
|