Cloud Software Group, Inc. EBX®
Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export
Mode navigation Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export

# Import et export CSV

## Introduction

L'import et l'export CSV peuvent être réalisés sur des tables via l'interface utilisateur en utilisant le menu 'Actions' de l'espace de travail.

L'import et l'export sont réalisés dans le contexte d'un jeu de données.

L'import et l'export peuvent aussi être réalisés programmatiquement.

Les valeurs par défaut des options peuvent être définies dans 'Administration', sous Interface utilisateur > Configuration de l'interface graphique > Valeurs par défaut des options > Import / Export.

##### Voir aussi

- Default option values

## Exports

Lors d'un export au format CSV, si des filtres sont appliqués à la table, seuls les enregistrements correspondant au filtre seront inclus.

Les options d'export CSV sont :

Nom du fichier de téléchargement | Spécifie le nom du fichier CSV à exporter. Ce champ est pré-rempli avec le nom de la table source des enregistrements.
Jeu de caractères | Spécifie le jeu de caractère à utiliser pour le fichier exporté. La valeur par défaut est UTF-8.
Activer l'héritage | Afin de prendre en compte l'héritage lors d'un export CSV, l'option doit être spécifiée au préalable dans le modèle. Pour plus d'informations sur l'héritage, voir Inheritance and value resolution. Spécifie si l'héritage est pris en compte durant l'export CSV. Si l'héritage est activé, les valeurs de champs résolues sont exportées avec les données techniques qui définissent le mode d'héritage potentiel de l'enregistrement ou du champ. Si l'héritage est désactivé, les valeurs de champs résolues sont exportées et les enregistrements occultés sont ignorés. Par défaut, cette option est désactivée. Note : L'héritage est toujours ignoré lorsque le jeu de données de la table n'a pas de parent ou si la table n'a pas de champ hérité.
Mode convivial | Indique si les valeurs doivent être présentées de façon conviviale pour l'utilisateur ou sous leur forme brute (format XML standard). En mode convivial, les dates et les nombres sont formatés selon la région de l'utilisateur, les clés étrangères et valeurs énumérées présentent les libellés associés, etc. Note : Si cette option est sélectionnée, le fichier exporté ne pourra pas être ré-importé.
Inclure les données techniques | Indique si des données techniques internes seront incluses dans l'export. Note : Si cette option est sélectionnée, le fichier exporté ne pourra pas être ré-importé.
En-têtes de colonne | Spécifie s'il faut ou non inclure les en-têtes de colonne dans le fichier CSV. Pas d'en-tête Libellé : Une ligne est ajoutée au début du fichier CSV et contient dans chaque colonne son libellé correspondant. Chaque libellé est localisé conformément à la préférence de langue de la session active. Si aucun libellé n'est défini pour un nœud, le nom technique du nœud est utilisé. XPath: Une ligne est ajoutée au début du fichier CSV et contient dans chaque colonne le chemin d'accès correspondant.
Séparateur de champ | Spécifie le séparateur de champ à utiliser lors des exports. Le séparateur par défaut est la virgule, il peut être redéfini dans Administration > Interface utilisateur.
Séparateur de liste | Spécifie le séparateur à utiliser pour les listes de valeurs. Le séparateur par défaut est le retour à la ligne, il peut être redéfini dans Administration > Interface utilisateur.

Les exports CSV programmatiques sont réalisés en utilisant les classes ``ExportSpec`` et ``ExportImportCSVSpec`` dans l'API Java.

## Imports

Nom du fichier de téléchargement | Spécifie le nom du fichier CSV à importer.
Mode d'import | Lors de l'import d'un fichier CSV, il est nécessaire de spécifier un des modes suivants, qui contrôlera l'intégrité des opérations entre la source et la table cible. Insertion seulement : Seule la création d'enregistrement est autorisée. Si un enregistrement avec la même clé primaire existe dans la table, une erreur se produit et l'opération est annulée. Mise à jour seulement : Seule la mise à jour d'enregistrement est autorisée. Si un enregistrement avec la même clé primaire n'existe pas dans la table, une erreur se produit et l'opération est annulée. Mise à jour ou insertion : Si un enregistrement avec la même clé primaire existe dans la table, il est mis à jour ; sinon, il est créé. Remplacement (synchronisation) : Si un enregistrement avec la même clé primaire existe dans la table cible, celui-ci est mis à jour ; sinon, un nouvel enregistrement est créé. D'autre part, si un enregistrement n'est plus présent dans la source, il est supprimé.
Jeu de caractères | Spécifie le jeu de caractère à utiliser pour le fichier importé. La valeur par défaut est UTF-8.
En-têtes de colonne | Spécifie s'il faut ou non inclure les en-têtes de colonne dans le fichier CSV. Pas d'en-tête Libellé : Une ligne est ajoutée au début du fichier CSV et contient dans chaque colonne son libellé correspondant. Chaque libellé est localisé conformément à la préférence de langue de la session active. Si aucun libellé n'est défini pour un nœud, le nom technique du nœud est utilisé. XPath: Une ligne est ajoutée au début du fichier CSV et contient dans chaque colonne le chemin d'accès correspondant.
Séparateur de champ | Spécifie le séparateur de champ à utiliser lors des imports. Le séparateur par défaut est la virgule, il peut être redéfini dans Administration > Interface utilisateur.
Séparateur de liste | Spécifie le séparateur à utiliser pour les listes de valeurs. Le séparateur par défaut est le retour à la ligne, il peut être redéfini dans Administration > Interface utilisateur.
Activer l'héritage | Afin de prendre en compte l'héritage lors d'un export CSV, l'option doit être spécifiée au préalable dans le modèle. Pour plus d'informations sur l'héritage, voir Inheritance and value resolution et `ExportImportCSVSpec.setInheritanceEnabled`. Spécifie si l'héritage est pris en compte pendant un import CSV. Si les données techniques dans le fichier CSV définissent un mode d'héritage, les champs ou les enregistrements correspondants sont obligatoirement hérités. Si des données techniques définissent un mode occulté, les enregistrements correspondants sont obligatoirement occultés. Autrement, les champs sont écrasés au profit de valeurs issues du fichier CSV. Par défaut, cette option est désactivée. Note : L'héritage est toujours ignoré lorsque le jeu de données de la table n'a pas de parent ou si la table n'a pas de champ hérité.

Les imports CSV programmatiques sont réalisés en utilisant les classes ``ImportSpec`` et ``ExportImportCSVSpec`` dans l'API Java.

## Gestion des valeurs de champ

### Listes agrégées

Les services d'import et d'export CSV supportent les champs à valeurs multiples, à savoir les listes agrégées. Seules les listes simples telles que les listes de `string`, `date`, ou `int` et les clés étrangères sont supportées. Si une clé étrangère est liée à un enregistrement via une clé primaire composée, chaque champ de la clé étrangère est une chaîne formatée, par exemple, "true|99". Les listes agrégées des groupes ne sont pas exportées.

Lors d'un export, les éléments de la liste sont séparés par le séparateur de ligne. Dans les cas où le champ exporté contient déjà un séparateur de ligne, par exemple dans un `osd:html` ou un `osd:text`, le code `_crnl_` est inséré à la place du séparateur de ligne du champ de valeur. Le même formatage est attendu lors de l'import, l'ensemble des valeurs de champ sont alors entourées de guillemets.

### Champs cachés

Les champs cachés sont exportés en tant que chaînes `ebx-csv:hidden`. Une chaîne cachée importée ne modifiera pas le contenu d'un champ.

### Valeur de chaîne 'Null'

En utilisant les services d'import et d'export CSV, une chaîne dont la valeur est `null` est exportée en tant que chaîne vide. Par conséquent, une boucle de procédure d'export-import finira par remplacer les valeurs de chaîne `null` par des chaînes vides.

En utilisant les services programmatiques, la valeur spécifique `ebx-csv:nil` peut être assignée à des chaînes dont la valeur est `null`. Dans ce cas, les valeurs de chaîne `null` ne seront pas remplacées par des chaînes vides lors de boucles de procédure export-import. Voir `ExportImportCSVSpec.setNullStringEncoded` dans l'API Java pour plus d'informations.

### Formats de date, heure et dateTime

Les formats de date et d'heure suivants sont supportés :

Type | Format | Exemple
--- | --- | ---
xs:date | aaaa-MM-jj | 2007-12-31
xs:time | HH:mm:ss ou HH:mm:ss.SSS | 11:55:00
xs:dateTime | aaaa-MM-jjTHH:mm:ss ou aaaa-MM-jjTHH:mm:ss.SSS | 2007-12-31T11:55:00

## Limitations connues

### Listes agrégées de groupes

Les services d'import et d'export CSV ne supportent pas les groupes à valeurs multiples, à savoir, des listes agrégées d'éléments de type complexe. L'export de ces nœuds ne causera aucune erreur, cependant, aucune valeur ne sera exportée.

### Groupes terminaux

Dans un fichier CSV, il est impossible de différencier un groupe terminal créé, contenant uniquement des champs vides, d'un groupe terminal non créé.

Par conséquent, quelques différences peuvent apparaître lors de la comparaison après avoir réalisé une boucle de procédure d'export-import. Afin de s'assurer de la symétrie de l'import et de l'export, il est préférable d'utiliser la fonction import et export XML. Voir Import et export XML.

### En-têtes de libellé de colonne

Si deux colonnes partagent le même libellé, l'export de la table peut être réalisé avec succès, mais les données exportées ne pourront pas être ré-importées par la suite.

### Champs d'association

Les services d'import et d'export CSV ne supportent pas les valeurs d'association, c'est à dire les enregistrements associés.

L'export de ces champs ne causera aucune erreur, cependant, aucune valeur ne sera exportée.

L'import de ces champs causera une erreur et la procédure d'import échouera.

### Nœuds de sélection

Les services d'import et d'export CSV ne supportent pas les valeurs de sélection, c'est à dire les enregistrements sélectionnés.

L'export de ces champs ne causera aucune erreur, cependant, aucune valeur ne sera exportée.

L'import de ces champs causera une erreur et la procédure d'import échouera.

Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export