Exporter et importer des données¶
Dans Odoo, il est parfois nécessaire d’exporter ou d’importer des données pour exécuter des rapports ou pour modifier des données. Ce document traite de l’exportation et de l’importation de données dans et hors d’Odoo.
Important
Parfois, les utilisateurs rencontrent une erreur de « TimeOut » -dépassement de temps- ou une écriture d’enregistrement ne se termine pas en raison de sa taille. Cela peut se produire lors de grands exports ou dans les cas où le fichier d’importation est trop volumineux. Pour contourner cette limitation liée à la taille des enregistrements, traitez les exports ou imports par lots de plus petite taille.
Exporter des données depuis Odoo¶
Lorsqu’on travaille avec une base de données, il est parfois nécessaire d’exporter des données dans un fichier distinct. Cela peut faciliter le reporting des activités, bien qu’Odoo fournisse un outil de reporting précis avec chaque application disponible.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view with the (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 the Actions button, and select Export.
Astuce
Records can also be exported from the (Kanban) view. To select
a first record, hold Alt and click its card; while the key is held, a Click to select
tooltip is displayed on the cards. Once a record is selected, click another card to add it to the
selection, or hold Shift while clicking to select a whole range. Then, click the
Actions button, and select Export.
When clicking on Export, an Export Data pop-up window appears. The left side lists the Available fields of the records, and the right side the Fields to export, i.e., the columns of the generated file.
With the Updatable fields only switch enabled, only the fields that can be imported back into Odoo are listed. This is helpful in the case where the existing records need to be updated. This works like a filter on the Available fields list only; the Fields to export list is left untouched. Leaving the switch disabled gives many more field options because it shows all the fields, not only the ones that can be imported.
Use the Search… bar to find specific fields. Matching sub-fields are displayed as well, with their parent field expanded automatically.
These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. To add a field to the Fields to export list, click the (Select field) icon at the right of the field, or double-click a field that has no sub-fields.
Select the Format of the generated file: Excel Workbook (.xlsx), which holds information about all the worksheets in a file, including both content and formatting, or Plain Text (.csv), where items are separated by a comma.
The Fields to export list holds the columns of the exported file, in order. Use the (Sort) icon at the left of a field to drag and drop it up or down, changing the order in which the columns are displayed in the exported file. Click the (Remove field) icon to remove a field from the list.
For recurring reports, save the current selection as an export template and select it from the drop-down menu the next time the same list needs to be exported.
If the database has several languages installed and at least one selected field is translatable, a Languages field is displayed to export translations.
Once everything is set, click Export to download the file.
Astuce
Il est utile de connaître l’identifiant externe d’un champ. Par exemple, Société liée dans l’interface d’exportation des utilisateurs correspond à parent_id (identifiant externe). Cela est utile, car seules les données qui doivent être modifiées et réimportées sont alors exportées.
Export templates¶
Export templates save a set of fields, their order, and the languages to export, so that the same file structure can be reused later. They are saved per model, and are shared with the other users of the database.
To create a template, select the needed fields, click the (Save as export template) icon next to the template drop-down menu, type a unique name, and click the (Apply changes) icon. Press Enter to save, or Escape to discard.
To edit an existing template, select it from the drop-down menu, then click the (Edit template name and/or fields) icon. Its name, fields, field order, and languages can then all be changed, and are saved with the (Apply changes) icon. Click the (Discard changes) icon to leave the template as it was.
To delete a template, select it from the drop-down menu, click the (Delete the template) icon, and confirm.
Note
Changing the fields, their order, or the languages while a template is selected, but not being edited, clears the template selection and keeps the current selection as an unsaved working set. This makes it possible to build a new template on top of an existing one without altering it.
Export translations¶
When more than one language is installed on the database, and at least one field of the Fields to export list is translatable, a Languages field is displayed below that list. By default, no language is selected and translatable fields are exported in the user’s own language.
Click the Languages field and select one or several languages to export the translations of every translatable field in those languages. Each selected language is displayed as a tag, and can be removed by clicking the (Remove) icon on it.
In the generated file, every translatable field is then replaced by one column per selected
language, named after the field and the language code, e.g., Name@fr_FR. This is the same
convention as the one used by the import, so an
export made with the Updatable fields only switch enabled can be re-imported with its
translations directly.
Importer des données dans Odoo¶
L’importation de données dans Odoo est extrêmement utile lors de la mise en œuvre ou lorsque des données doivent être mises à jour en masse. La documentation suivante explique comment importer des données dans une base de données Odoo.
Avertissement
Les imports sont définitifs et ne peuvent pas être annulés. Cependant, il est possible d’utiliser des filtres (créé le ou dernière modification) pour identifier les enregistrements modifiés ou créés par l’import.
Astuce
L’activation du mode développeur modifie les paramètres d’import visibles dans le menu de gauche. Cela fait apparaître un menu . Deux options y sont incluses : Suivre l’historique lors de l’import et Autoriser la correspondance avec les sous-champs.
Si le modèle utilise openchatter, l’option Suivre l’historique lors de l’import configure les abonnements et envoie des notifications lors de l’import, mais entraîne un import plus lent.
Si l’option Autoriser la correspondance avec les sous-champs est sélectionnée, tous les sous-champs d’un champ sont utilisés pour effectuer la correspondance sous Champ Odoo lors de l’import.
Les prémices¶
Les données peuvent être importées sur n’importe quel objet métier Odoo à l’aide des formats Excel (.xlsx) ou CSV (.csv). Cela inclut : contacts, produits, relevés bancaires, écritures comptables et commandes.
Ouvrir la vue de l’objet vers lequel les données doivent être importées/renseignées, cliquer sur l’icône (Action) et dans le menu déroulant sélectionner (Importer des enregistrements).
Cliquer sur Importer un modèle pour les clients au centre de la page pour télécharger un modèle et le renseigner avec les propres données de l’entreprise. De tels modèles peuvent être importés en un clic puisque le mappage des données est déjà préconfiguré.
Pour charger le modèle téléchargé ou un fichier existant, suivre les étapes suivantes :
Cliquez sur Uploader un fichier de données et sélectionnez le fichier souhaité.
Ajustez les options de Formatage selon les besoins (pour les fichiers CSV uniquement).
Assurez-vous que toutes les données de la Colonne Fichier sont correctement mappées au Champ Odoo approprié et qu’elles sont exemptes d’erreurs.
(Facultatif) Cliquez sur Charger le fichier de données pour recharger le même fichier ou en uploader un autre.
Cliquez sur Tester pour vérifier que les données sont valides.
Cliquez sur Importer.
Note
Les options de Mise en forme n’apparaissent pas lors de l’import du type de fichier Excel propriétaire (c.-à-d. .xls ou .xlsx).
Adapter un modèle¶
Des modèles d’import sont fournis dans l’outil d’importation pour les données les plus courantes à importer (contacts, produits, relevés bancaires, etc.). Ouvrez-les avec n’importe quel logiciel de feuille de calcul (Microsoft Office, OpenOffice, Google Drive, etc.).
Une fois le modèle téléchargé, procédez comme suit :
Ajoutez, supprimez et triez les colonnes afin qu’elles correspondent au mieux à la structure des données.
Il est fortement conseillé de ne pas supprimer la colonne ID externe (ID) (voir pourquoi dans la section suivante).
Attribuez un ID unique à chaque enregistrement en faisant glisser la séquence d’ID dans la colonne ID externe (ID).
Note
Lorsqu’une nouvelle colonne est ajoutée, il se peut qu’Odoo ne puisse pas la mapper automatiquement si son libellé ne correspond à aucun champ dans Odoo. Cependant, les nouvelles colonnes peuvent être mappées manuellement lorsque l’import est testé. Recherchez le champ correspondant dans le menu déroulant.
Ensuite, utilisez le libellé de ce champ dans le fichier d’import afin de garantir la réussite des imports futurs.
Astuce
Un autre moyen utile de déterminer les noms de colonnes appropriés à importer est d’exporter un fichier exemple utilisant les champs à importer. De cette manière, s’il n’existe pas de modèle d’import exemple, les noms sont exacts.
Importer à partir d’une autre application¶
L”ID externe (ID) est un identifiant unique pour une ligne d’élément. Il est possible d’utiliser un ID externe (ID) provenant d’un logiciel précédent pour faciliter la transition vers Odoo.
La définition d’un ID n’est pas obligatoire lors de l’importation, mais elle est utile dans de nombreux cas :
Mises à jour d’imports : importer le même fichier plusieurs fois sans créer de doublons.
Pour recréer des relations entre différents enregistrements, l’identifiant unique de l’application d’origine doit être utilisé pour le mapper à la colonne ID externe (ID) dans Odoo.
Lorsque vous importez un autre enregistrement qui se lie au premier, utilisez XXX/ID (XXX/ID externe) pour l’identifiant unique original. Cet enregistrement peut également être retrouvé à l’aide de son nom.
Avertissement
Il convient de noter que des conflits surviennent lorsque deux (ou plusieurs) enregistrements ont le même ID externe.
Champ manquant pour mapper une colonne¶
Odoo essaie de déterminer de manière heuristique le type de champ pour chaque colonne du fichier importé, en se basant sur les dix premières lignes du fichier.
Par exemple, s’il y a une colonne ne contenant que des nombres, seuls les champs de type entier sont proposés comme options.
Bien que ce comportement soit utile dans la plupart des cas, il est également possible qu’il échoue ou que la colonne soit mappée à un champ qui n’est pas proposé par défaut.
Si cela se produit, cochez l’option Afficher les champs de relation (avancés), puis une liste complète de champs devient disponible pour chaque colonne.
Modifier le format d’import des données¶
Note
Odoo peut détecter automatiquement si une colonne est une date et tente de deviner le format de date à partir d’un ensemble de formats parmi les plus courants. Bien que ce processus fonctionne pour de nombreux formats de date, certains formats ne sont pas reconnaissables. Cela peut provoquer de la confusion en raison des inversions jour-mois : il est difficile de deviner quelle partie de la date correspond au jour et quelle partie correspond au mois dans une date telle que 01-03-2016.
Lors de l’import d’un fichier CSV, Odoo propose des options de Mise en forme.
Pour voir quel format de date Odoo a détecté dans le fichier, vérifiez le Format de date affiché lorsque vous cliquez sur les options sous le sélecteur de fichier. Si ce format est incorrect, modifiez-le pour utiliser le format souhaité en utilisant la norme ISO 8601 pour définir le format.
Important
ISO 8601 est une norme internationale couvrant l’échange mondial ainsi que la communication de données relatives aux dates et heures. Par exemple, le format de date devrait être AAAA-MM-JJ. Dans le cas du 24 juillet 1981, il devrait être écrit 1981-07-24.
Astuce
Lors de l’import de fichiers Excel (.xls, .xlsx), pensez à utiliser des cellules de type date pour stocker les dates. Cela permet de conserver les formats de date locaux à l’affichage, quelle que soit la manière dont la date est formatée dans Odoo. Lors de l’import d’un fichier CSV, utilisez la section Mise en forme d’Odoo pour sélectionner le format des dates dans les colonnes à importer.
Importer des nombres avec des signes monétaires¶
Odoo prend entièrement en charge les nombres entre parenthèses pour représenter des valeurs négatives, ainsi que les nombres accompagnés d’un symbole monétaire. Odoo détecte également automatiquement quel séparateur de milliers/décimal est utilisé. Si un symbole monétaire inconnu d’Odoo est utilisé, il se peut qu’il ne soit pas reconnu comme un nombre et que l’import échoue.
Note
Lors de l’import d’un fichier CSV, le menu Mise en forme apparaît dans la colonne de gauche. Dans ces options, le Séparateur de milliers peut être modifié.
Exemples de nombres pris en charge (en utilisant « trente-deux mille » comme valeur) :
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Exemple de ce qui ne fonctionne pas :
ABC 32.000,00
$ (32.000,00)
Important
Des () (parenthèses) autour du nombre indiquent que le nombre est une valeur négative. Le symbole monétaire doit être placé à l’intérieur des parenthèses pour qu’Odoo le reconnaisse comme une valeur monétaire négative.
Le tableau d’aperçu de l’import ne s’affiche pas correctement¶
Par défaut, l’aperçu de l’import utilise la virgule comme séparateur de champs et les guillemets comme délimiteur de texte. Si le fichier CSV n’utilise pas ces paramètres, modifiez les options de Mise en forme (affichées sous la barre Importer un fichier CSV après la sélection du fichier CSV).
Important
Si le fichier CSV utilise la tabulation comme séparateur, Odoo ne détecte pas les séparations. Les options de format du fichier doivent être modifiées dans le logiciel de feuille de calcul. Consultez la section suivante Modifier le format d’un fichier CSV.
Modifier le format d’un fichier CSV dans un logiciel de feuille de calcul¶
Lors de l’édition et de l’enregistrement de fichiers CSV dans des logiciels de feuille de calcul, les paramètres régionaux de l’ordinateur sont appliqués pour le séparateur et le délimiteur. Odoo recommande d’utiliser OpenOffice ou LibreOffice, car ces deux applications permettent de modifier les trois options (depuis l’application LibreOffice, allez dans ).
Microsoft Excel permet de modifier l’encodage lors de l’enregistrement (dans ).
Différence entre l’ID de base de données et l’ID externe¶
Certains champs définissent une relation avec un autre objet. Par exemple, le pays d’un contact est un lien vers un enregistrement de l’objet « Pays ». Lorsqu’un tel champ est importé, Odoo doit recréer les liens entre les différents enregistrements. Pour faciliter l’import de tels champs, Odoo fournit trois mécanismes.
Important
Un seul mécanisme doit être utilisé par champ importé.
Par exemple, pour référencer le pays d’un contact, Odoo propose trois champs différents à importer :
Pays : le nom ou le code du pays
Pays/ID de base de données : l’ID Odoo unique de l’enregistrement, défini par la colonne ID dans PostgreSQL
Pays/ID externe : l’ID de cet enregistrement référencé dans une autre application (ou le fichier
.XMLqui l’a importé)
Pour le pays Belgique, par exemple, vous pouvez utiliser l’une des trois méthodes suivantes :
Pays :
BelgiquePays/ID de base de données :
21Pays/ID externe :
base.be
Selon les besoins de l’entreprise, utilisez l’une de ces trois méthodes pour référencer les enregistrements dans les relations. Voici un exemple indiquant quand utiliser l’une ou l’autre, en fonction du besoin :
Utilisez Pays : c’est la méthode la plus simple lorsque les données proviennent de fichiers CSV créés manuellement.
Utilisez Pays/ID de base de données : cette méthode devrait être employée rarement. Elle est principalement utilisée par les développeurs, car son principal avantage est d’éviter tout conflit (plusieurs enregistrements peuvent avoir le même nom, mais ils disposent toujours d’un ID de base de données unique)
Utilisez Pays/ID externe : utilisez l’ID externe lors de l’import de données provenant d’une application tierce.
Lorsque des ID externes sont utilisés, importez les fichiers CSV avec la colonne ID externe (ID) définissant l’ID externe de chaque enregistrement importé. Vous pouvez ensuite faire référence à cet enregistrement avec des colonnes telles que Champ/ID externe. Les deux fichiers CSV suivants fournissent un exemple pour les produits et leurs catégories.
Importer des champs de relation¶
Un objet Odoo est toujours lié à de nombreux autres objets (par exemple, un produit est lié à des catégories de produits, des attributs, des fournisseurs, etc.). Pour importer ces relations, les enregistrements de l’objet lié doivent d’abord être importés depuis leur propre menu de liste.
Cela peut être réalisé en utilisant soit le nom de l’enregistrement lié, soit son ID, selon les circonstances. L’ID est requis lorsque deux enregistrements portent le même nom. Dans ce cas, ajoutez /ID à la fin du titre de la colonne (par exemple, pour les attributs de produits : Attributs de produits / Attribut / ID).
Options pour les correspondances multiples des champs¶
Si, par exemple, il existe deux catégories de produits ayant le sous-nom Vendable (par ex. Produits divers/Vendable et Autres produits/Vendable), la validation est interrompue, mais les données peuvent tout de même être importées. Cependant, Odoo recommande de ne pas importer ces données, car elles seront toutes liées à la première catégorie Vendable trouvée dans la liste Catégorie de produits (Produits divers/Vendable). Odoo recommande plutôt de modifier l’une des valeurs du doublon ou la hiérarchie des catégories de produits.
Cependant, si l’entreprise ne souhaite pas modifier la configuration des catégories de produits, Odoo recommande d’utiliser l’ID externe pour ce champ, « Catégorie ».
Importer des champs de relation many2many¶
Les étiquettes doivent être séparées par une virgule, sans espace. Par exemple, si un client doit être lié aux deux étiquettes Fabricant et Détaillant, alors Fabricant,Détaillant doit être encodé dans la même colonne du fichier CSV.
Importer des relations one2many¶
Si une entreprise souhaite importer un bon de commande avec plusieurs lignes de commande, une ligne spécifique doit être réservée dans le fichier CSV pour chaque ligne de commande. La première ligne de commande est importée sur la même ligne que les informations relatives au bon de commande. Toute ligne supplémentaire doit être ajoutée sur une ligne distincte qui ne contient aucune information dans les champs relatifs au bon de commande.
Example
Une entreprise importe des devis en utilisant un fichier CSV, basé sur des données de démonstration :
Une entreprise importe des bons de commande avec leurs lignes de bon de commande respectives en utilisant un fichier CSV :
Une entreprise importe des clients et leurs contacts respectifs en utilisant un fichier CSV :
Importer des fichiers image¶
Pour importer des fichiers image en même temps que le fichier CSV ou Excel uploadé, suivez les étapes suivantes :
Ajoutez les noms des fichiers image dans la colonne Image correspondante du fichier de données.
Uploadez le fichier de données ou rechargez-le en cliquant sur Charger le fichier de données.
Cliquez sur Uploader vos fichiers dans la section Fichiers à importer.
Sélectionnez les fichiers image pertinents. Le nombre de fichiers sélectionnés apparaît à côté du bouton.
Cliquez sur Tester pour vérifier que toutes les données sont valides.
Cliquez sur Importer. Pendant le processus d’import, Odoo effectue une vérification afin de lier automatiquement les images uploadées au fichier de données importé. S’il n’y a pas de correspondance, le fichier de données est importé sans aucune image.
Note
La section Fichiers à importer est activée si le modèle de produit possède une colonne Image avec tous les champs renseignés.
Les noms des fichiers image dans le fichier de données doivent correspondre aux fichiers image uploadés.
Lors de l’import d’un grand nombre d’images, spécifier la taille maximale de lot en mégaoctets et définir un délai pour éviter que le système ne soit surchargé. Pour ce faire, activer le mode développeur et renseigner les champs Taille max. par lot et Délai après chaque lot dans la section Fichiers à importer. Par défaut, le délai respecte la limite d’appels RPC/API définie dans la Politique d’utilisation acceptable d’Odoo Cloud.
Importer des enregistrements plusieurs fois¶
Si un fichier importé contient l’une des colonnes ID externe ou ID de base de données, les enregistrements qui ont déjà été importés sont modifiés au lieu d’être créés. Ceci est extrêmement utile, car cela permet aux utilisateurs d’importer le même fichier CSV plusieurs fois, après avoir effectué quelques modifications entre deux imports.
Odoo se charge de créer ou de modifier chaque enregistrement, en fonction du fait qu’il soit nouveau ou non.
Cette fonctionnalité permet à une entreprise d’utiliser l’outil Importer/Exporter d’Odoo pour modifier un lot d’enregistrements dans un logiciel de feuille de calcul.
Valeur non fournie pour un champ spécifique¶
Si tous les champs ne sont pas définis dans le fichier CSV, Odoo attribue la valeur par défaut pour chaque champ non défini. Cependant, si les champs sont définis avec des valeurs vides dans le fichier CSV, Odoo définit la valeur vide dans le champ au lieu d’attribuer la valeur par défaut.
Exporter/importer différentes tables depuis une application SQL vers Odoo¶
Si des données doivent être importées depuis différentes tables, il faut recréer les relations entre les enregistrements appartenant à ces différentes tables. Par exemple, si des sociétés et des personnes sont importées, le lien entre chaque personne et la société pour laquelle elle travaille doit être recréé.
Pour gérer les relations entre les tables, utilisez les fonctionnalités d’ID externe d’Odoo. L’ID externe d’un enregistrement est l’identifiant unique de cet enregistrement dans une autre application. L’ID externe doit être unique pour tous les enregistrements de tous les objets. Il est recommandé de préfixer cet ID externe avec le nom de l’application ou de la table (par ex. “company_1”, “person_1” au lieu de “1”)
Par exemple, supposons qu’il existe une base de données SQL avec deux tables à importer : sociétés et personnes. Chaque personne appartient à une société, de sorte que le lien entre une personne et la société pour laquelle elle travaille doit être recréé.
Testez cet exemple avec un échantillon de base de données PostgreSQL.
Commencez par exporter toutes les sociétés et leur ID externe. Dans PSQL, écrivez la commande suivante :
> 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;
Cette commande SQL crée le fichier CSV suivant :
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Pour créer le fichier CSV pour les personnes liées aux sociétés, utilisez la commande SQL suivante dans PSQL :
> 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
Elle produit le fichier CSV suivant :
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
Dans ce fichier, Fabien et Laurence travaillent pour la société Bigees (company_1), et Eric travaille pour la société Organi. La relation entre les personnes et les sociétés est établie en utilisant l’ID externe des sociétés. L’ID externe est préfixé par le nom de la table afin d’éviter un conflit d’ID entre les personnes et les sociétés (person_1 et company_1, qui partageaient le même ID 1 dans la base de données d’origine).
Les deux fichiers produits sont prêts à être importés dans Odoo sans aucune modification. Après avoir importé ces deux fichiers CSV, il y a quatre contacts et trois sociétés (les deux premiers contacts sont liés à la première société). Gardez à l’esprit qu’il faut d’abord importer les sociétés, puis les personnes.
Mettre à jour des données dans Odoo¶
Les données existantes peuvent être mises à jour en masse via un import de données, tant que l””ID externe reste cohérent.
Préparer l’export des données¶
Pour mettre à jour des données via un import, naviguer d’abord vers les données à mettre à jour et sélectionner l’icône (Liste) pour activer la vue liste. Sur le côté gauche de la liste, cocher la case pour tout enregistrement à mettre à jour. Ensuite, cliquer sur le bouton Actions et sélectionner Exporter dans le menu déroulant.
On the resulting Export Data pop-up window, enable the Updatable fields only switch. This automatically includes the External ID in the export. Additionally, it limits the Available fields list to only include fields that are able to be imported.
Note
The External ID field does not appear in the Fields to export list unless it is manually added. However, if the Updatable fields only switch is enabled, it is included in the export.
Sélectionnez les champs à inclure dans l’export à l’aide des options de la fenêtre contextuelle, puis cliquez sur Exporter.
Importer les données mises à jour¶
Après l’export, apportez toutes les modifications nécessaires au fichier de données. Lorsque le fichier est prêt, il peut être importé en suivant la même procédure qu’un import de données normal.
Danger
Lors de la mise à jour de données, il est extrêmement important que l’ID externe reste cohérent, car c’est ainsi que le système identifie un enregistrement. Si un ID est modifié ou supprimé, le système peut ajouter un enregistrement en double au lieu de mettre à jour l’enregistrement existant.