Importación y exportación de datos con Odoo
Cómo podemos importar y exportar datos dentro de Odoo
15 junio, 2021 por
Importación y exportación de datos con Odoo
Luis María Ron Almazán

Todos hemos tenido esa necesidad de manejar grandes cantidades de datos, ya sea para actualizar o simplemente para tener la información a mano. Una de las muchas funciones que nos ofrece Odoo es la importación y exportación, se trata de una función básica de Odoo, por lo que no necesitaremos implantar ningún módulo extra. Esta función se encuentra en la gran mayoría de módulos de Odoo (Contactos, Contabilidad, Inventario, etc.) y nos permitirá poder actualizar mucha información en muy pocos pasos.
 


Cosas a saber sobre las exportaciones e importaciones en Odoo:


A la hora de realizar una exportación, puede ser que lo hagamos para descargar la información y poder enviarla como un documento (por ejemplo). O también la podemos realizar para actualizar información ya existente en nuestra base de datos, al igual que podemos desear realizar una importación masiva de datos para crear nuevos productos, sin tener que ir creándolos individualmente.
Odoo tiene los diferentes casos de uso en cuenta y nos permite realizar diferentes tipos de importación y exportación, como exportaciones compatibles con una posterior importación para actualizar los datos.

Dicha función es compatible con los formatos:
- Excel (XLSX).
- CSV (CSV).

A continuación un pequeño índice de los puntos a tratar en este post:

1. Cómo realizar una exportación en Odoo

1.1 Exportar todo.

1.2 Exportación compatible con importación.

2. Cómo realizar una importación en Odoo

2.1 Queremos introducir nueva información dentro de la base de datos.

2.2 Queremos actualizar información ya existente en la base de datos.

3. Nueva función (v14)

1. Cómo realizar una exportación


Se pueden distinguir 2 opciones de exportación dentro de Odoo. La primera es Exportar todo, en la cual se exportará toda la información que se ve en pantalla. 
La otra opción es una exportación compatible con importación, donde se podrán elegir todos los campos que vamos a exportar y otras características.
A continuación profundizaremos en las diferencias entre ellas.

1.1 Exportar todo:

Como bien indica su nombre, con esta opción exportaremos todo. 
Para ello necesitamos entrar dentro del módulo deseado. Dentro de dicho módulo podemos ver un botón parecido al típico botón de descarga. Existe la posibilidad de primero aplicar un filtro y seguidamente realizar la acción de exportar la información. De esta manera la información que extraeremos seguirá el criterio del filtro. Pasará lo mismo con las agrupaciones, que se conservarán dentro del archivo.
Si utilizamos este método, el archivo se descargará automáticamente extrayendo tan solo la información que se muestra en pantalla, sin posibilidad de elegir el formato. Tampoco podremos elegir los campos a exportar, ni si la exportación que vamos a realizar va a ser para actualizar datos.
Odoo • Text and Image
    Odoo • Image and Text

    1.2 Exportación compatible con importación:

    Con este método, Odoo nos ofrece mayor personalización de los datos a exportar.
    Este proceso es algo más largo, pero sigue siendo muy sencillo.
    ¿Cómo llegar hasta la imagen que se ve a la izquierda? Sigue leyendo esta entrada y te lo explicaremos todo paso a paso. 

    Pasos para una Exportación compatible con Importación


    Para poder realizar esta exportación más personalizada hay que seguir una serie de pasos.
    • Paso 1.2.1: Primero de todo tendremos que acceder a la vista lista, donde veremos todos los items desplegados en una lista. Si dentro de esos items queremos aplicar algún filtro Odoo no pone pegas.

    • Paso 1.2.2: Una vez seleccionada la vista lista y ya aplicados los filtros que necesitamos (si necesitamos alguno), hay que seleccionar qué Items importaremos. Para ello hay que seleccionarlos, simplemente haciendo clic en el cuadro que se encuentra a la izquierda. 

      Existe un módulo en la OCA que nos ayudará a realizar selecciones de forma más rápida. El nombre del módulo es web_listview_range_select que lo podemos encontrar en el repositorio "web". Dicho módulo nos permite: seleccionar un artículo, mantenemos la tecla Shift pulsada y seguidamente seleccionamos otro, de manera que todos los artículos que se encuentren entre nuestra selección serán añadidos a ésta. Si seleccionamos la primera casilla, donde se encuentran los nombres de las columnas, será seleccionado todo, incluido aquello que no se muestre en pantalla por limitación de objetos por página.

     

    Odoo • Text and Image
    Odoo • Image and Text
    • Paso 1.2.3: Encima de la lista de objetos, veremos que hay varias opciones: CrearImportar, el icono de Exportar todo y más. El que nos interesa a nosotros es el botón Acción. Si lo seleccionamos saldrá una pequeña lista desplegable, con varias opciones. De esas, seleccionaremos la opción Exportar. Esto hará que salga una ventana emergente.

    Odoo • A picture with a caption
     

                  Esta ventana emergente tiene mucha información, que explicaremos ahora:



                    • Opción seleccionable "Quiero actualizar datos (exportación compatible con importación): Cuando realizamos una exportación es posible que lo hagamos para generar un documento y poder utilizar los datos, o por otro lado, para actualizar la información dentro de la base de datos. Esta casilla es la que nos permitirá descargar los datos de manera que sean compatibles con una importación posterior.

                    • Opción seleccionable "Quiero actualizar datos (exportación compatible con importación). Cuando realizamos una exportación es posible que lo hagamos para generar un documento y poder utilizar los datos, o por otro lado, para actualizar la información dentro de la base de datos. Esta casilla es la que nos permitirá descargar los datos de manera que sean compatibles con una importación posterior. Formato de exportación: Si bien hemos comentado antes que esta función es compatible con los formatos Excel (XLSX) y CSV (CSV), a la hora de realizar la exportación también tendremos que elegir uno de estos 2 formatos.

                  Odoo • Text and Image
                  Odoo • Image and Text
                    • Campos disponibles: Son los campos que podemos elegir para extraer la información. Podemos observar que a la izquierda de algunos campos, hay un pequeño símbolo ">". Éste sirve para expandir el campo y así ayudarnos a elegir la información de forma más específica.

                  Destacar que si seleccionamos la opción "Quiero actualizar datos", se puede observar que desaparecen algunos campos. Esto se debe a que al actualizar información hay campos que no podemos modificar, como son los campos calculados o de sólo lectura.

                    • Campos a exportar: Son los campos que hemos elegido de la otra columna, para que se exporten desde Odoo, básicamente la información que contendrá el documento. También se puede elegir el orden en que aparecerá en el documento, esto se puede hacer o arrastrando el campo a la posición deseada, o con la opción, mover hacía arriba/abajo (depende de la versión de Odoo que se utilice).

                    • Plantilla: este campo nos permite la opción de guardar la exportación que vamos a realizar como una plantilla, de esta manera cuando necesitemos repetir la exportación tan solo deberemos seleccionar la plantilla en cuestión y se seleccionarán los campos guardados previamente en la plantilla.

                  Ahora que ha quedado explicada la ventana emergente y qué hace qué... continuemos con el paso final.

                  • Paso 1.2.4: Ya seleccionados los campos a exportar y asegurándonos si esta exportación es para actualizar datos o no, simplemente hay que seleccionar la opción exportar, que generará un documento que se descargará de forma automática.


                  2.Cómo realizar una Importación

                  Cuando realizamos una importación puede ser por varios motivos, los más frecuentes:
                  2.1: Queremos introducir nueva información dentro de la base de datos.
                  2.2: Queremos actualizar información ya existente en la base de datos.
                  Bien, estos 2 ejemplos los vamos a explicar a continuación, de esta manera podremos ver las diferencias entre ellos y ver la utilidad de algunas opciones vistas previamente.


                  2.1 Queremos introducir nueva información dentro de la base de datos:

                  Cuando realizamos una importación para introducir nueva información dentro de Odoo hay que seguir una serie de pasos.

                  • Paso 2.1.1: Dirigirse al módulo al que deseamos importar la información.

                  • Paso 2.1.2: Una vez en el módulo deseado, podemos visualizar un botón llamado Importar, cerca del botón crear o el botón mencionado anterior mente para exportar todo. Lo seleccionamos y nos llevará a vista de la ventana.

                  Odoo • Text and Image
                  • Paso 2.1.3: Una vez seleccionado el botón Importar podemos visualizar 2 opciones:

                  • - Cargar fichero.
                    - Cancelar.
                    Seleccionamos la opción cargar fichero, la cual hará que salga una ventana emergente solicitando qué documento queremos importar. Procedemos a elegir el fichero a cargar. A recordar que tan sólo serán compatibles para la importación los documentos de formato XLSX o CSV.
                  Odoo • A picture with a caption
                   
                  • Paso 2.1.4: Una vez importado el fichero, veremos que aparece bastante información. Si nos fijamos bien, veremos que las columnas que aparecen, representan las columnas existentes en nuestro documento. Como la importación que realizamos es una importación para nueva información dentro de la base de datos, hay que hacer una relación algo básica en cuanto a los datos que vamos a importar y qué campos van a ocupar.

                   

                  Odoo • Text and Image

                  Antes de continuar vamos a explicar qué es qué en la imagen superior.

                    • Registrar historial durante la importación: esta opción es para que quede un historial en el chatter de lo qué se ha importado.

                    • La primera fila contiene la etiqueta de la columna: Esta opción hace referencia al documento a importar, indicando que la primera fila del documento será la etiqueta de la columna.

                    • Límite de lote: el máximo de objetos a importar: Entendemos como objetos cada línea que se importará.

                    • Empezar en línea: aquí podemos indicar en qué linea del documento se empieza la importación.

                    • Mostrar los campos de relación (avanzado): Se trata de una función avanzada que nos permite asociar la información que vamos a importar de una manera más concreta, diferenciando entre diferentes aspectos del campo (External ID, ID de la base de datos, etc.).

                  Continuando con el caso de uso, vemos que hay 2 columnas, habrá tantas columnas como columnas tenga el documento importado. Si nuestro documento tuviese 5 columnas, aparecerían 5 columnas. Estas columnas se tienen que relacionar con un campo.
                   

                  Cuando el fichero haya cargado, veremos que aparecen unas casillas por cada columna que tenga el documento. Estas casillas, o columnas, tendrán que ser relacionadas con un campo a asociar en Odoo. 

                  Dichos campos relacionan la información que importamos con la información que ya hay en Odoo o qué pasará a ser en Odoo.

                  Es decir, si nuestro producto se llama Producto A y queremos que se importe como Producto A, en la columna de nombre se debe elegir que el campo que se desea asociar será Nombre.

                  Odoo • Text and Image

                  También cabe la posibilidad de que alguna de las columnas importadas finalmente no queremos que se reflejen en esta importación, en ese caso, eliminamos el campo de la lista seleccionable, con la pequeña "x" situada a la derecha y aparecerá un campo llamado No importar.

                  Odoo • Image and Text

                  Una vez identificados los campos que queremos asociar a la información que va a ser importada podemos empezar con el proceso final de la importación.

                  Odoo tiene una función muy útil durante el proceso de importación, la cual se llama Test. Esta función te permite probar si la información que vas a importar está bien asociada y si no va a producir ningún error.

                  Es recomendable realizar la prueba para comprobar que toda la información que vamos a importar no da ningún tipo de error.

                  Una vez realizada la prueba de importación, si todo va correctamente, nos tendría que aparecer la siguiente notificación 

                  Odoo • Text and Image
                  • Paso 2.1.5: Ya realizada la prueba para comprobar que funciona todo correctamente, realizamos la importación. De esta manera nos quedarán los productos importados desde nuestro documento como productos nuevos, con sus precios asociados, tal y como se ve en la siguiente imagen:

                  Odoo • A picture with a caption

                  2.2 Queremos actualizar información


                  Aquí es donde daremos uso a  la opción mencionada durante la Exportación compatible con importaciónDebido a que esta importación es para actualizar información que ya existe dentro de nuestra base de datos, necesitaremos el campo llamado ID Externa

                  ¿Por qué?
                  Ya que los datos existen, necesitamos que Odoo pueda relacionar la información que vamos a importar con la que ya tenemos. Esto lo podrá hacer mediante el campo mencionado anteriormente. El primer paso, sería crear una exportación compatible con importación, siguiendo los pasos indicados en el apartado 1.2 Exportación compatible con importación. Una vez generado el documento, veremos que dentro se encuentra una columna denominada ID Externa. Procedemos a modificar los datos dentro del documento.

                  Odoo • Image and Text
                  • Paso 2.2.1:Cargamos el fichero en el que tenemos la información modificada. Esto volverá a llevarnos a la pantalla del paso 2.1.4.

                  • Paso 2.2.3: Tenemos que relacionar los productos que vamos a importar, con los que ya tenemos dentro de la base de datos, para ello haremos uso del campo ID Externa. Como se puede apreciar en la imagen, está el campo ID externo el primero. Esto es debido a que será el criterio para relacionar la información que va a importarse con la que ya existe.

                  De esta manera Odoo reconoce que el Producto 1 con precio 4 sustituirá al Producto A con precio 2, que existe en nuestra base de datos.

                  • Paso 2.2.4: Es recomendable  seguir haciendo uso de la función TEST, que ofrece Odoo, para poder comprobar que la importación es totalmente correcta. 
                  • Paso 2.2.5: Si no tenemos ningún problema con la prueba de importación, podemos proceder a importar utilizando la opción Importar.
                    De esta manera el resultado tendría que ser el siguiente:
                  Odoo • A picture with a caption
                   
                  Como podemos apreciar en la imagen superior, el nombre y precio de los productos ha cambiado tal y como habíamos modificado en el documento y tan sólo con un par de clics. 


                  3.Nueva función (V14)


                  Es una nueva función incorporada en la versión 14 de Odoo. Sólo está disponible en la versión "Enterprise" y es una característica que nos permite visualizar los datos desde una hoja de cálculo y aplicar filtros. De esta manera una vez apliquemos filtros podremos exportar los datos deseados, dicha exportación no será una exportación compatible con importación.
                  Recalcar que está utilidad tan sólo se encuentra en los módulos de Ventas,  Contabilidad y CRM.
                  • Paso 1: Nos dirigimos al módulo deseado. Una vez dentro del modulo tendremos que seleccionar la vista Pivot

                  Odoo • A picture with a caption
                   
                  • Paso 2: Ya seleccionada la vista, aparecerá la siguiente pantalla, donde podemos ver la siguiente información:

                    • Medidas: son los datos que aparecerán en la tabla dinámica desplegada en la            parte inferior.

                    • Insert in spreadsheet: Se trata de la opción que hará que los datos seleccionados anteriormente se plasmen en la hoja de cálculo que vamos a generar.

                    • Tabla dinámica: La tabla dinámica situada en la parte inferior a las 2 opciones mencionadas con anterioridad, es una representación de los datos que veremos en la hoja de cálculo.

                  Tendremos que introducir las medidas que nos interesen para que se vean reflejadas dentro de la hoja de cálculo. Destacar que también se pueden añadir filtros antes de realizar la criba. Una vez seleccionados los datos que deseamos utilizar en la hoja de cálculo, debemos utilizar la opción Insert in spreadsheet. De esta manera se generará la hoja de cálculo tal y como hemos mencionado.
                  Odoo • Text and Image

                  En la hoja de cálculo mostrada a continuación veremos reflejada la tabla dinámica de la imagen anterior. En este documento podremos utilizar la información que se encuentra en nuestra base de datos para poder modificar la información que se refleja. Para ello hemos de seleccionar el filtro (situado a la derecha de la pantalla) y hacer uso de las opciones que nos facilita.

                  Odoo • A picture with a caption
                   

                  En Sygel trabajamos cada día para adaptar a diferentes escenarios las opciones que tanto Odoo como la Odoo Community Association (OCA) ofrecen. Somos conscientes de que cada empresa tiene unas características específicas y, por ello, el trato personalizado se traduce en la implantación del ERP para que cumpla tanto con las expectativas como con las necesidades de nuestros clientes. A la vez, compartimos nuestros avances con el resto de la comunidad, para que cada día se beneficie más gente.