Saltar al contenido
KMEE Entrar
Odoo 16.0 Incluir Enterprise

Exportar e importar datos

En Odoo, a veces es necesario exportar o importar datos para ejecutar informes, o para modificar datos. Este documento cubre la exportación e importación de datos dentro y fuera de Odoo.

Exportar datos desde Odoo

Al trabajar en une base de datos a veces es necesario exportar datos a un archivo en específico. Esto puede mejorar las actividades de reportes, aunque Odoo ya brinda una herramienta de reportes precisa y fácil de usar en cada aplicación disponible.

With Odoo, the values can be exported from any field in any record. To do so, activate the list view ☷ (List) icon, on the items that need to be exported, and then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click on ⚙ (Action) icon, and then Export.

Vista de las distintas cosas que es necesario habilitar o hacer clic para exportar datos

Al hacer clic en Exportar, aparecerá una ventana emergente para Exportar datos con varias opciones para la exportación de datos:

Resumen de las opciones que debe tomar en cuenta al exportar datos en Odoo...

  1. Si la opción Deseo actualizar datos (exportación compatible con importación) está habilitada, el sistema solo muestra los campos que se pueden importar. Esto es muy útil en caso de que necesite actualizar los registros existentes, pues funciona como una especie de filtro. Si no selecciona la casilla habrá más opciones de campo porque aparecerán todos los campos, no solo los que se pueden importar.
  2. Al exportar puede elegir dos formatos: .csv y .xls. Con .csv, los elementos se separan con una coma, mientras que .xls almacena información sobre todas las hojas de trabajo en un archivo e incluye tanto el contenido como el formato.
  3. These are the items that can be exported. Use the > (Show sub-fields) icon to display more sub-field options. Use the Search bar to find specific fields. To use the Search option more efficiently, click on all the > (Show sub-fields) icon to display all fields.
  4. The + (Select field) icon button is present to add fields to the Fields to export list.
  5. The ^v (Sort) icon to the left of the selected fields can be used to move the fields up and down, to change the order in which they are displayed in the exported file. Drag-and-drop using the ^v (Sort) icon.
  6. The ⌫ (Remove field) icon is used to remove fields. Click the ⌫ (Remove field) icon to remove the field.
  7. Para los reportes recurrentes, es útil guardar preconfiguraciones de exportación. Seleccione todos los campos necesarios y haga clic en el menú desplegable de plantillas. Una vez allí, haga clic en Nueva plantilla, y nombre a la exportación que acaba de crear. La próxima vez que sea necesario exportar la misma lista, seleccione en el menú desplegable la plantilla relacionada que se guardó anteriormente.

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.

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 a la que desea importar los datos y haga clic en ⭐ Favoritos -> Importar registros.

Menú de favoritos que se muestra con la opción de importar registros resaltada.

Después de hacer clic en Importar registros, Odoo revela una página separada con plantillas que pueden ser descargadas y rellenadas con los datos propios de la empresa. Estas plantillas se pueden importar en un solo clic, ya que la asignación de datos ya está hecha. Para descargar una plantilla haga clic en Importar Plantilla para Clientes en el centro de la página.

Haga los ajustes necesarios a las opciones de formato y asegúrese de que todas las columnas en el campo de Odoo y Columna de archivo no tengan errores. Finalmente, haga clic en Importar para importar los datos.

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).

Una animación de un puntero bajando por la columna de ID para que cada registro tenga un ID único.

Importar desde otra aplicación

The External ID (ID) is a unique identifier for a line item. It is possible to use an External ID (ID) from previous software to facilitate the transition to Odoo.

No es obligatorio establecer un ID al importar, pero es de gran ayuda en muchos casos:

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.

El ID externo (ID) se utilizará para actualizar la importación original si necesita volver a importar los datos modificados después, así que es una buena práctica especificarlo siempre que sea posible.

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.

Buscar el campo para vincular con la columna de impuesto.

Cambiar el formato de importación de datos

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.

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á.

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)

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 archivo Importar CSV (Valores separados por comas) después de seleccionar el 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 'Guardar como' -> Marcar la casilla 'Editar configuración de filtro' -> Guardar).

Microsoft Excel solo puede modificar la codificación al guardar (en el cuadro de diálogo 'Guardar como' -> 'Herramientas' -> Pestaña de codificación).

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.

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 .XML que lo importó).

Para Bélgica, por ejemplo, use una de estas tres maneras de importar:

  • País: Bélgica
  • País/ID de la base de datos: 21
  • Paí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), su validación se detiene, pero aún puede importar sus datos. Le recomendamos que no importe los datos, ya que todos se vincularán a la primera categoría Se puede vender perteneciente 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 una orden de venta con varias líneas de orden es necesario que reserven una fila específica en el archivo CSV para cada línea de la orden. La primera línea de la orden se importa en la misma fila que la información relacionada a la orden. Las líneas adicionales necesitan otras filas que no tengan información en los campos relacionados a esa orden.

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 establece todos los campos en el archivo CVS, Odoo asigna el valor predetermminado para cada campo no definido. Sin embargo, si un campo está configurado con valores vacíos en el archivo CSV, Odoo configura el valor vacío en el campo, en lugar de asignar un 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.