Exportar e importar datos¶
En Odoo, a veces es necesario exportar o importar datos para crear informes o para modificar datos. En esta documentación se hablará sobre la exportación e importación de datos a y desde Odoo.
Importante
Es posible que los usuarios obtengan un error de “tiempo de espera agotado”, o que no se procese un registro debido al tamaño. Esto puede ocurrir con exportaciones grandes, o en casos donde el archivo es muy grande. Para evitar esta limitación en el tamaño de los archivos, es necesario procesar exportaciones o importaciones en lotes más pequeños.
Exportar datos desde Odoo¶
Al trabajar con una base de datos, a veces es necesario exportar datos en un archivo aparte. Hacerlo puede ayudar a generar informes sobre las actividades, aunque Odoo proporciona una herramienta de informes precisa en cada aplicación disponible.
Con Odoo, los valores se pueden exportar desde cualquier campo de cualquier registro. Para ello, active el icono de vista de lista (Lista) en los elementos que necesita exportar y, después, seleccione los registros que desea exportar. Para seleccionar un registro, marque la casilla junto al registro correspondiente. Por último, haga clic en el botón Acción y seleccione Exportar.
- menu
- Contacts ‣ List view
- shows
- List view with several records ticked and the gear (Actions) menu open, showing "Export".
- highlight
- The record checkboxes and the "Export" entry.
- data
- Demo contacts.
- module
- web, contacts
- notes
- English UI, crop to the relevant area.
Al hacer clic en Exportar, aparece una ventana emergente Exportar datos con varias opciones para los datos que se van a exportar:
- menu
- Contacts ‣ List view ‣ Actions ‣ Export
- shows
- The Export Data dialog with numbered callouts 1–7 matching the list below: "I want to update data (import-compatible export)" checkbox, format choice (CSV / XLSX), available fields tree with the sub-field chevron and search, the add-field (+) icon, the sort handle and the remove icon in "Fields to export", and the export template dropdown.
- highlight
- Numbered callouts 1–7.
- module
- web, contacts
- notes
- English UI, crop to the dialog; add the numbered callouts in the image.
Con la opción Quiero actualizar datos (exportación compatible con la importación) marcada, el sistema solo muestra los campos que se pueden importar. Esto es útil en el caso de que los registros existentes deban actualizarse. Esto funciona como un filtro. Si deja la casilla sin marcar, obtiene muchas más opciones de campos porque se muestran todos los campos, no solo los que se pueden importar.
Al exportar puede elegir dos formatos:
.csvy.xls. Con.csv, los elementos se separan con una coma, mientras que.xlsalmacena información sobre todas las hojas de trabajo en un archivo e incluye tanto el contenido como el formato.Estos son los elementos que se pueden exportar. Utilice el icono (Mostrar subcampos) para mostrar más opciones de subcampos. Utilice la barra de Búsqueda para encontrar campos específicos. Para usar la opción Búsqueda de forma más eficiente, haga clic en todos los iconos (Mostrar subcampos) para mostrar todos los campos.
El botón con el icono (Seleccionar campo) está disponible para añadir campos a la lista Campos a exportar.
El icono (Ordenar) situado a la izquierda de los campos seleccionados se puede usar para mover los campos hacia arriba y hacia abajo, cambiando así el orden en que se muestran en el archivo exportado. Arrastre y suelte usando el icono (Ordenar).
El icono (Eliminar campo) se utiliza para eliminar campos. Haga clic en el icono (Eliminar campo) para eliminar el campo.
Para informes recurrentes, resulta útil guardar plantillas de exportación predefinidas. Seleccione todos los campos necesarios y haga clic en el menú desplegable de plantillas. Una vez allí, haga clic en Nueva plantilla y asigne un nombre único a la plantilla de exportación. Haga clic en el icono (disquete) para guardar la configuración. La próxima vez que se necesite exportar la misma lista, seleccione la plantilla relacionada previamente guardada en el menú desplegable.
Truco
Es útil saber el identificador externo del campo. Por ejemplo, Empresa relacionada en la interfaz de exportación del usuario es igual que el identificador externo parent_id. Esto es útil porque así los únicos datos exportados serán los que se deban modificar y volver a importar.
Nota
Con el módulo Exportación asíncrona de listas (export_async), las exportaciones grandes (2000 registros o más de forma predeterminada) se preparan en segundo plano y se envía una notificación con un enlace de descarga cuando el archivo está listo. Consulte Exportación en segundo plano.
Importar datos a Odoo¶
Importar datos a Odoo es muy útil, sobre todo durante la implementación o cuando necesita actualizar los datos en lote. La siguiente documentación menciona cómo importar datos a una base de datos de Odoo.
Advertencia
Las importaciones son permanentes y no se pueden deshacer. Sin embargo, es posible usar filtros (Creado el o Última modificación) para identificar registros que se cambiaron o se crearon con la importación.
Truco
Al activar el modo de desarrollador se cambian los ajustes de importación visibles en el menú de la izquierda. Al hacerlo, aparecerá el menú . En este menú avanzado se incluyen dos opciones: Registrar historial durante la importación y Permitir emparejamiento con subcampos.
- menu
- Contacts ‣ Actions ‣ Import records (developer mode)
- shows
- Import screen left panel with the Advanced section: "Track history during import" and "Allow matching with subfields".
- highlight
- The Advanced section.
- module
- base_import
- notes
- English UI, developer mode active, crop to the left panel.
Si el modelo utiliza openchatter, la opción Registrar historial durante la importación configura las suscripciones y envía notificaciones durante la importación, pero hace que la importación sea más lenta.
Si selecciona la opción Permitir emparejamiento con subcampos, entonces todos los subcampos dentro de un campo se usan para coincidir con el Campo Odoo al realizar la importación.
Empezar¶
Los datos pueden ser importados en cualquier objeto empresarial de Odoo usando formatos Excel (.xlsx) o CSV (.csv). Esto incluye: contactos, productos, extractos bancarios, asientos y pedidos.
Abra la vista del objeto en el que se deben importar o completar los datos, haga clic en el icono (Acción) y, en el menú desplegable, seleccione (Importar registros).
- menu
- Contacts ‣ List view
- shows
- The gear (Actions) menu of the control panel open with "Import records".
- highlight
- The "Import records" entry.
- module
- base_import, contacts
- notes
- English UI, crop to the relevant area.
Haga clic en Plantilla de importación para clientes en el centro de la página para descargar una plantilla y completarla con los datos propios de la empresa. Estas plantillas se pueden importar con un solo clic, ya que la asignación de datos ya está preconfigurada.
Para cargar la plantilla descargada o un archivo existente, siga estos pasos:
Haga clic en Subir archivo de datos y seleccione el archivo deseado.
Ajuste las opciones de Formato como sea necesario (solo para archivos CSV).
Asegúrese de que todos los datos en la Columna de archivo estén mapeados correctamente a su Campo de Odoo y no tenga errores.
(Opcional) Haga clic en Cargar archivo de datos para volver a cargar el mismo archivo o subir uno diferente.
Haga clic en Probar para verificar que los datos sean válidos.
Haga clic en Importar.
Nota
Las opciones de Formato no aparecen al importar el tipo de archivo de Excel propietario (es decir, .xls o .xlsx).
Adaptar una plantilla¶
En la herramienta de importación se proporcionan las plantillas para importar los datos más comunes (contactos, productos, estados de cuenta bancarios, etc.). Puede abrirlas con cualquier software de hojas de cálculo (Microsoft Office, OpenOffice, Google Drive, entre otros).
Una vez que se descargue la plantilla, siga los siguientes pasos:
Agregue, elimine y organice columnas para que se adapten mejor a la estructura de su información.
Se le recomienda no quitar la columna ID externo (ID) (vea por qué en la siguiente sección).
Configure un ID único para cada registro, solo tiene que arrastrar hacia abajo la secuencia de ID en la columna ID externo (ID).
- menu
- (spreadsheet application) – import template for customers
- shows
- Animated capture: the fill handle is dragged down the External ID column so each row gets a unique sequential ID.
- module
- base_import
- notes
- GIF or short animation; any spreadsheet application; English column headers.
Nota
Al agregar una nueva columna, es posible que Odoo no pueda mapearla automáticamente si la etiqueta no corresponde a ningún campo en Odoo pero puede mapear las nuevas columnas de forma manual cuando pruebe la importación. Busque el campo correspondiente en el menú desplegable..
- menu
- Contacts ‣ Actions ‣ Import records ‣ (file loaded)
- shows
- Import mapping table with the "Odoo Field" dropdown of one column expanded and a search term typed to find the matching field.
- highlight
- The expanded dropdown.
- module
- base_import
- notes
- English UI, crop to the mapping table.
Después, use la etiqueta de este campo para asegurar que las importaciones futuras serán exitosas.
Truco
Otra forma útil de averiguar los nombres de columna correctos para la importación es exportar un archivo de muestra utilizando los campos que se van a importar. De esta manera, si no hay una plantilla de importación de muestra, los nombres serán precisos.
Importar desde otra aplicación¶
El ID externo (ID) es un identificador único para una línea de detalle. Es posible utilizar un ID externo (ID) de un software anterior para facilitar la transición a Odoo.
No es obligatorio establecer un ID al importar, pero es de gran ayuda en muchos casos:
Actualizar importaciones: Importe el mismo archivo varias veces sin crear duplicados.
Para recrear relaciones entre diferentes registros, el identificador único de la aplicación original debe usarse para mapearlo a la columna ID Externo (ID) en Odoo.
Cuando se importe otro registro vinculado al primero, utilice XXX/ID (XXX/ID externo) para el identificador único original. Este registro también se puede encontrar utilizando su nombre.
Advertencia
Es importante mencionar que habrá conflictos si dos (o más) registros tienen el mismo ID externo.
Campo faltante para mapear una columna¶
Odoo heurísticamente intenta encontrar el tipo de campo para cada columna dentro del archivo importado, basado en las primeras diez líneas de los archivos.
Por ejemplo, si hay una columna que sólo contiene números, sólo se presentan como opciones los campos de tipo entero.
Aunque en la mayoría de los casos este comportamiento puede ser favorable, también es posible que ocurra un error o que la columna se asigne a un campo que no está propuesto de forma predeterminada.
SI esto pasa, marque la opción Mostrar campos de campos relacionados (avanzado), después una lista completa de campos estará disponible para cada columna.
- menu
- Accounting/Invoicing ‣ Configuration ‣ Chart of Accounts ‣ Actions ‣ Import records (file loaded)
- shows
- Import mapping table with "Show fields of relation fields (advanced)" enabled and the dropdown of the tax column searching for the tax field.
- highlight
- The dropdown with relation sub-fields.
- module
- base_import, account
- notes
- English UI, crop to the mapping table.
Cambiar el formato de importación de datos¶
Nota
Odoo puede detectar de forma automática si una columna es una fecha e intentará deducir el formato de fecha a partir de un conjunto de los formatos de fecha que usan con mayor frecuencia. Aunque este proceso puede funcionar para varios formatos de fecha, algunos no se reconocerán. Esto puede causar confusión debido a las inversiones de día y mes, es difícil deducir qué parte del formato de la fecha es el día y qué parte es el mes, como en 01-03-2016.
Al importar un archivo CSV file, Odoo le da opciones de Formato.
Para ver qué formato de fecha encontró Odoo en el archivo, puede revisar el formato de fecha que aparece al hacer clic en las opciones en el selector de archivos. Si este formato no es correcto, puede cambiarlo usando la ISO 8601 para definir el formato.
Importante
ISO 8601 es una norma internacional que abarca el intercambio y la comunicación de datos relacionados con la fecha y la hora a nivel mundial. Por ejemplo, el formato de fecha debe ser YYYY-MM-DD. En el caso del 24 de julio de 1981, se debe escribir como 1981-07-24.
Truco
Cuando importe archivos Excel (.xls, .xlsx), considere usar celdas de fecha para almacenar fechas. Esto mantiene los formatos de fecha locales para su visualización, independientemente de cómo se formatea la fecha en Odoo. Cuando importe un archivo CSV, use la sección Formato de Odoo para seleccionar las columnas de formato de fecha a importar.
Importar números con signos de divisa¶
Odoo es compatible con los números entre paréntesis para representar los signos negativos, así como los números con los signos de divisa. Odoo también detecta de forma automática qué separador de miles o decimales utiliza. Si usa un símbolo de divisa que Odoo no conoce, es posible que no se reconozca como un número y se bloqueará.
Nota
Al importar un archivo CSV, aparece el menú Formato en la columna de la izquierda. En estas opciones, se puede cambiar el Separador de miles.
Ejemplos de números compatibles (se usa treinta y dos mil como ejemplo):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32,000.00
(32000.00 €)
Ejemplos que no son compatibles:
ABC 32,000.00
$ (32,000.00)
Importante
Un () (paréntesis) alrededor del número indica que el número es un valor negativo. El símbolo de moneda debe colocarse dentro del paréntesis para que Odoo lo reconozca como un valor de moneda negativo.
Tabla de previsualización de la importación no se muestra correctamente¶
De forma predeterminada, la vista previa de importación está configurada con comas como separadores de campo y con comillas como delimitadores de texto. Si el archivo CSV no cuenta con estos ajustes, entonces modifique las opciones de formato que aparecen en la barra de importación del archivo CSV después de seleccionar el archivo CSV.
Importante
Si el archivo CSV tiene una tabulación como separador, Odoo no detecta las separaciones. Las opciones de formato de archivo necesitan modificarse en la aplicación de hoja de cálculo. Vea la siguiente sección Cambiar formato de archivo CSV.
Cambiar el formato del archivo CSV en una aplicación de hoja de cálculo¶
Al editar y guardar archivos CSV en aplicaciones de hojas de cálculo, se aplica la configuración regional del ordenador para el separador y el delimitador. Odoo sugiere usar OpenOffice o LibreOffice, ya que ambas aplicaciones permiten modificar las tres opciones (desde la aplicación LibreOffice, ir al cuadro de diálogo ).
Microsoft Excel solo puede modificar la codificación al guardar (en el ).
Diferencias entre el ID de la base de datos y el ID externo¶
Algunos campos definen una relación con otro objeto. Por ejemplo, el país de un contacto es un enlace a un registro del objeto “País”. Cuando se importan estos campos, Odoo tendrá que volver a crear enlaces entre los diferentes registros. Para ayudarle a importar dichos campos, Odoo proporciona tres mecanismos.
Importante
Solo un mecanismo debe usarse por campo importado.
Por ejemplo, para referenciar el país de un contacto, Odoo propone tres campos distintos para importar:
País: el nombre o código del país.
País/ID de la base de datos: el ID único de Odoo para un registro, definido por la columna ID PostgreSQL.
País/ID externo: el ID de este registro al que se hace referencia en otra aplicación (o el archivo
.XMLque lo importó).
Para Bélgica, por ejemplo, use una de estas tres maneras de importar:
País:
BélgicaPaís/ID de la base de datos:
21País/ID externo:
base.be
Según las necesidades de la empresa, utilice una de estas 3 formas de referenciar registros en relaciones. Deberá usar una u otra, según sea necesario, aquí tiene un ejemplo:
Usar país: esta es la forma más sencilla cuando los datos provienen de archivos CSV que se crearon de forma manual.
Usar país/ID de la base de datos: es poco probable que use esta notación, ya que en su mayoría la utilizan los desarrolladores. Su principal ventaja es que nunca tiene conflictos (puede tener varios registros con el mismo nombre, pero solo tendrán un ID de base de datos único).
Usar país/ID externo: utilice el ID externo cuando importa datos desde una aplicación de terceros.
Cuando se utilicen ID externos, importe archivos CSV con la columna ID externos (ID) que define el ID externo de cada registro que se importa. A continuación, se puede hacer referencia a ese registro con columnas como Campo/ID externo. Los dos archivos CSV siguientes ofrecen un ejemplo de productos y sus categorías.
Importar campos de relación¶
Un objeto de Odoo siempre se relaciona con muchos otros, por ejemplo, un producto está vinculado a categorías de productos, atributos, proveedores y más. Para importar esas relaciones, primero debe importar los registros del objeto relacionado desde su propio menú de lista.
Esto puede hacerse mediante el nombre del registro relacionado o por su ID, este último se espera cuando dos registros tienen el mismo nombre. En tal caso, agregue /ID al final del título de la columna (por ejemplo, para atributos de producto: Atributos de producto / Atributo / ID).
Opciones para varias coincidencias en campos¶
Si, por ejemplo, hay dos categorías de producto con el nombre secundario Se puede vender (por ejemplo, Productos varios/Se puede vender y Otros productos/Se puede vender), la validación se detendrá, pero aún podrá importar los datos. Le recomendamos que no importe los datos, ya que todos se vincularán a la primera categoría, Se puede vender, que a su vez pertenece a la categoría Lista de producto (Productos varios/Se puede vender). Le sugerimos que modifique uno de los valores duplicados, o la jerarquía de la categoría del producto.
Sin embargo, si la empresa no desea cambiar la configuración de las cateogrías de los producto, le recomendamos usar el ID externo para el campo “Categoría”.
Importar campos de relación many2many¶
Las etiquetas se deben separar con coma y sin espacios. Por ejemplo, si un cliente debe vincularse a las etiquetas Fabricante y Vendedor minorista entonces debe poner las etiquetas “Fabricante,Vendedor minorista” en la misma columna del archivo CSV.
Importar relaciones one2many¶
Si una empresa desea importar un pedido de venta con varias líneas de pedido es necesario que reserven una fila específica en el archivo CSV para cada línea del pedido. La primera línea del pedido se importa en la misma fila que la información relacionada al pedido. Las líneas adicionales necesitan otras filas que no tengan información en los campos relacionados a ese pedido.
Example
Una empresa importa presupuestos con un archivo CSV basado en datos de muestra:
Una empresa importa órdenes de compra con sus respectivas líneas de orden de compra mediante un archivo CSV:
Una empresa importa clientes y sus respectivos contactos mediante un archivo CSV:
Importar archivos de imagen¶
Para importar archivos con el archivo CSV o Excel subido, siga los siguientes pasos:
Añada los nombres de archivo de la imagen a la columna Imagen correspondiente en el archivo de datos.
Suba el archivo de datos o haga clic en Cargar archivo de datos para volver a subirlo.
Haga clic en Suba sus archivos en la sección Archivos a importar.
Seleccione los archivos de imagen correspondientes. El número de archivos seleccionados aparecerá a un lado del botón.
Haga clic en Probar para verificar que todos los datos sean válidos.
Haga clic en Importar. Durante el proceso de importación, Odoo realiza una revisión de archivo para vincular automáticamente las imágenes subidas con el archivo de datos importado. Si no encuentra una coincidencia, el archivo de datos se importará sin la imagen.
Nota
La sección Archivos a importar se habilita si la plantilla de producto tiene una columna Imagen con todos los campos completados.
El nombre de los archivos de imágenes en el campo de datos deben corresponder a los archivos de imágenes subidos.
Al importar una gran cantidad de imágenes, especifique el tamaño máximo del lote en megabytes y configure un retraso para evitar que el sistema se sobrecargue. Para ello, active el modo de desarrollador y complete los campos Tamaño máximo por lote y Retraso después de cada lote en la sección Archivos a importar.
Importar registros varias veces¶
Si un archivo importado contiene la columna ID externo o la columna ID de la base de datos, los registros que ya se importaron se modificarán en lugar de que se creen desde cero. Esto es uy util ya que permite que los usuarios importen el mismo archivo CSV varias veces si se hicieron cambios durante dos importaciones.
Odoo se asegura de crear o modificar cada registro, dependiendo de si es nuevo o no.
Esta función permite que la empresa use la herramienta de importación o exportación para modificar un lote de registros en la aplicación Hoja de cálculo.
Valor no dado para un campo en específico¶
Si no se establecen todos los campos en el archivo CSV, Odoo asigna el valor predeterminado a cada campo no definido. Sin embargo, si los campos se establecen con valores vacíos en el archivo CSV, Odoo asigna el valor vacío al campo, en lugar de asignar el valor predeterminado.
Exportar o importar diferentes tablas de una aplicación SQL a Odoo¶
Si necesita importar datos de diferentes tablas, tendrá que volver a crear relaciones entre registros que pertenecen a diferentes tablas. Por ejemplo, si importa empresas e individuos, deberá volver a crear el vinculo entre cada individuo y la empresa en la que trabajan.
Para gestionar las relaciones entre tablas, puede utilizar las funciones de ID externo de Odoo. El ID externo de un registro es el identificador único de este registro en otra aplicación. Este debe ser único en todos los registros de todos los objetos, así que es una buena práctica anteponer este ID externo al nombre de la aplicación o tabla, (como “empresa_1”, “persona_1” en lugar de “1”).
Como ejemplo, supongamos que hay una base de datos SQL con dos tablas que se necesitan importar: empresas y personas. Cada persona pertenece a una empresa, entonces se debe volver a crear el vínculo entre una persona y la empresa para la que trabajan.
Pruebe este ejemplo con un ejemplo de una base de datos PostgreSQL.
Primero, exporte todas las empresas y sus ID externos. Escriba el siguiente comando en PSQL:
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
Este comando SQL crea el siguiente archivo CSV:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Usaremos el siguiente comando SQL en PSWL para crear el archivo CSV para personas vinculadas a empresas:
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
Produce el siguiente archivo CSV:
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
En el archivo anterior, Fabien y Laurence trabajan para la empresa Bigees (empresa_1) y Eric trabaja para la empresa Organi. La relación entre personas y empresas se realiza mediante el ID externo de las empresas. Se usa el nombre de la tabla como prefijo del ID externo para evitar un conflicto de ID entre personas y empresas (persona_1 y empresa_1 que compartían el mismo ID 1 en la base de datos original).
Los dos archivos que se generaron están listos para importarse a Odoo sin ninguna modificación. Tras importar estos dos archivos CSV, tendrá cuatro contactos y tres empresas, los dos primeros contactos están vinculados a la primera empresa. Primero debe importar las empresas y luego las personas.
Actualizar datos en Odoo¶
Es posible actualizar los datos existentes en lote con una importación de datos siempre y cuando el ID externo sea consistente.
Preparar la exportación de datos¶
Para actualizar datos mediante una importación, primero vaya a los datos que se deben actualizar y seleccione el icono (Lista) para activar la vista de lista. En el extremo izquierdo de la lista, marque la casilla de los registros que se deben actualizar. A continuación, haga clic en el botón Acciones y seleccione Exportar en el menú desplegable.
En la ventana emergente Exportar datos seleccione la casilla etiquetada como Deseo actualizar datos (exportación compatible con importación). Esta acción incluye el ID externo de forma automática en la exportación y limita la lista de campos a exportar para incluir solo los campos que se pueden importar.
Nota
El campo ID Externo no aparece en la lista de Campos a exportar a menos que lo agregue de forma manual, pero estará incluido en la exportación. Sin embargo, si selecciona la casilla Deseo actualizar datos (exportación compatible con importación) el campo sí se incluirá en la exportación.
Seleccione los campos que se deben incluir en la exportación usando las opciones de la ventana emergente y después haga clic en Exportar.
Importar los datos actualizados¶
Haga los cambios necesarios en el archivo de datos después de exportarlo. Una vez que el archivo esté listo, podrá importarlo con el mismo proceso que realiza para cualquier otra importación.
Peligro
Al actualizar los datos es muy importante que conserven su ID externo, ya que este dato es el que permite que el sistema identifique un registro. Si lo modifica o elimina, el sistema podría agregar un registro duplicado en lugar de actualizar el existente.