Module d'import CSV

Le module d'import permet d'importer depuis un fichier csv les données suivantes :

  • Contenu
  • Contenu utilisateur
  • Formulaire
  • Portlet
  • Catégories

 

Le module intègre une interface de mapping permettant de lier les champs de vos données avec les valeurs de votre fichier csv.

Module Module d'import CSV- Illustration

Thèmes : Contribution, Gestion de contenu
Version 1.01
Compatibilité : JCMS 9, 10

Documentation

Introduction

Le module d'import permet d'importer depuis un fichier csv les données suivantes :

  • Contenu
  • Contenu utilisateur
  • Formulaire
  • Portlet
  • Catégories

 

Le module intègre une interface de mapping permettant de lier les champs de votre publication avec les valeurs de votre fichier csv. 

 

Quelques règles et prérequis à prendre en compte :

  • L’import est accessible pour les administrateurs techniques et fonctionnels habilités depuis le back office de JPlateform
  • Les données d’entrées doivent être fournies via un fichier plat de type *.csv généré à partir d’un éditeur type « Excel » (par exemple) et encodé en UTF8 sans BOM
  • Le module crée dans l’application un type de contenu nommé « Import CSV Mapping » permettant de réaliser la liaison entre les champs du contenu cible à importer et les colonnes du fichier source *.csv
  • Ce type de contenu doit être activé sur tous les espaces de travail sur lesquels un import peut être effectué
  • L’import prend en compte les champs à valeur multiple et multilingue
  • A la fin de l’import, un rapport est envoyé par mail à l’adresse renseignée

 

Plusieurs paramètres de module décrits dans la liste des propriétés permettent de personnaliser le mode d’import, les types de séparateur désirés, la mise en place de logs, etc.

 

L’import s’effectue en trois étapes principales :

  • Création et paramétrage du contenu de mapping
  • Import des contenus et état d’avancement
  • Réception des logs d’import et résolution des éventuels liens cassés

 

Création et paramétrage du contenu de mapping

Cette première étape consiste à construire le contenu de mapping permettant de réaliser la liaison entre les champs du contenu cible à importer et les colonnes du fichier source *.csv.

Il faut donc créer un contenu de type « Import CSV Mapping » sur lequel l’import sera joué depuis l’espace de travail :

 importCSvPlugin ajout mapping

 

Et y renseigner les informations de mapping :

 

importCSvPlugin mapping Import 1

importCSvPlugin mapping Import 2

 

Libellé du champ

Editeur

Commentaires

Titre

Champ texte

Titre du contenu de mapping visible en BO.

Type de contenu à importer

Enuméré

Nom JAVA : contentType

Affiche tous les types actifs de l’espace de travail courant.

Séparateur du fichier csv

Champ texte

Nom JAVA : csvSeparator

S’affiche à la sélection du champ « Type de contenu à importer ».

Caractères interdits : * [ ] { } ^

Permet d’indiquer le type de séparateur utilisé pour les valeurs du fichier csv.

Sélection du fichier CSV

Champ sélection fichier

Permet de charger le fichier csv à importer.

S’affiche à la sélection du champ « Type de contenu à importer ».

L'encodage du fichier doit être en UTF-8 (sans BOM).

Langues importées

Champ texte

Nom JAVA : languagesImport

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Affiche toutes les langues actives du site.

Format des dates du fichier CSV

Enuméré

Nom JAVA : dateFormat

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Permet de préciser le format des dates utilisé dans le fichier CSV :

  • dd/MM/yyyy
  • dd/MM/yyyy H:mm
  • MM/dd/yyyy
  • MM/dd/yyyy H:mm

Séparateur champ multilingue

Champ texte

Nom JAVA : languageSeparator

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Par défaut, c’est la valeur du module.

Séparateur champ à valeur multiple

Champ texte

Nom JAVA : multivalueSeparator

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Par défaut, c’est la valeur du module.

Libellé colonne fichier CSV

Enuméré groupé

Nom JAVA : columnsName

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Champ multivalué permettant de sélectionner les colonnes du fichier CSV à importer (titre de chaque colonne).

Libellé du champ du type à importer

Enuméré groupé

Nom JAVA : fieldsName

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Champ multivalué permettant de sélectionner les champs du type de publication ciblé (libellé de chaque champ de publication).

Type de donnée *

Enuméré groupé

Nom JAVA : dataType

S’affiche à la sélection du champ « Sélection du fichier CSV ».

Permet de préciser le type de données ciblé pour chaque colonne du fichier.

Identifiant du contenu source

Champ texte

Ce champ est une ExtraDBData positionnée sur l’ensemble des publications, catégories, groupes et membres afin de gérer les liaisons entre contenus sources importés. Le système doit persister l’identifiant SGBD du contenu source.

 
* Détails sur le type de donnée :

  • Lien vers type de publication (Suivant ID d’origine) : Il s’agit d’un champ qui pointe vers une ou plusieurs publications et dont la valeur est un ID qui ne provient pas de JPlateform (à noter que cet ID est conservé dans un champ « Identifiant du contenu source » de la publication cible).
  • Lien vers type de publication (Suivant ID JPlateform) : Il s’agit d’un champ qui pointe vers une ou plusieurs publications et dont la valeur est un ID JPlateform.
  • Pièces jointes (de type URL) : Il s’agit d’un champ qui pointe vers une ou plusieurs pièces-jointes (création d'un document) et dont la valeur pour récupérer le fichier est une URL.
  • Pièces jointes (de type chemin vers fichier) : Il s’agit d’un champ qui pointe vers une ou plusieurs pièces-jointes (création d'un document) et dont la valeur est le chemin d'accès au fichier.
  • Pièces jointes (de type chemin vers fichier depuis la racine d’un ZIP) : Il s’agit d’un champ qui pointe vers une ou plusieurs pièces-jointes (création d'un document) et dont la valeur est le chemin d'accès au fichier qui est stocké dans un ZIP à charger via le formulaire d’import.
  • Catégorie (suivant ID d’origine) : Il s’agit d’un champ qui pointe vers une ou plusieurs catégories et dont la valeur est un ID qui ne provient pas de JPlateform (à noter que cet ID est conservé dans un champ « Identifiant de la catégorie source » de la catégorie cible).
  • Catégorie (suivant ID JPlateform) : Il s’agit d’un champ qui pointe vers une ou plusieurs catégories et dont la valeur est un ID JPlateform.
  • Catégorie (Recherche par le nom) : Il s’agit d’un champ qui pointe vers une ou plusieurs catégories et dont la valeur est le nom d’une catégorie.
  • Catégorie suivant une arborescence (Recherche par le nom avec création si non trouvée) : Il s’agit d’un champ qui pointe vers une ou plusieurs catégories suivant une arborescence précise. Si l’arborescence n’existe pas dans votre application, elle sera automatiquement créée. Utilisez des « / » ou « \ » pour séparer chaque niveau d’arborescence (exemple de valeur : Catégorie niveau 1/catégorie niveau 2/catégorie niveau 3).
  • Catégorie suivant une arborescence (Recherche par le nom sans création si non trouvée) : Il s’agit d’un champ qui pointe vers une ou plusieurs catégories suivant une arborescence précise. Même si la catégorie n’existe pas dans votre application, elle ne sera pas créée. Utilisez des « / » ou « \ » pour séparer chaque niveau d’arborescence (exemple de valeur : Catégorie niveau 1/catégorie niveau 2/catégorie niveau 3).
  • Groupe (suivant ID d’origine) : Il s’agit d’un champ qui pointe vers un ou plusieurs groupes et dont la valeur est un ID qui ne provient pas de JPlateform (à noter que cet ID est conservé dans un champ « Identifiant du groupe source » du groupe cible).
  • Groupe (suivant ID JPlateform) : Il s’agit d’un champ qui pointe vers un ou plusieurs groupes et dont la valeur est un ID JPlateform.
  • Groupe (Recherche par le nom) : Il s’agit d’un champ qui pointe vers un ou plusieurs groupes et dont la valeur est le nom d’un groupe.
  • Membre (suivant ID d’origine) : Il s’agit d’un champ qui pointe vers un ou plusieurs membres et dont la valeur est un ID qui ne provient pas de JPlateform (à noter que cet ID est conservé dans un champ « Identifiant du membre source » de la fiche du membre cible).
  • Membre (Recherche par l’ID JPlateform) : Il s’agit d’un champ qui pointe vers un ou plusieurs membres et dont la valeur est un ID JPlateform.
  • Membre (Recherche par l’e-mail) : Il s’agit d’un champ qui pointe vers un ou plusieurs membres et dont la valeur est l’e-mail d’un membre.
  • Autre : Il s’agit de tous les autres types de donnée (texte et zone de texte, booléen, énuméré, date, etc…).

 

Import des contenus et état d’avancement

Une fois le contenu de mapping créé, l’import peut être lancé.

Pour cela, il faut vous rendre dans l’administration de l’espace, bloc « Configuration » et cliquer sur le lien « Importer des données » (lien accessible uniquement depuis le leader si vous travaillez sur un environnement à plusieurs réplicas) :

importCSvPlugin administration

 

L’interface d’import s’affiche dans une nouvelle page et se décompose en deux parties :

  • Formulaire d’import permettant de paramétrer le prochain import
  • L’état d’avancement de l’import une fois lancé

 

importCSvPlugin Formulaire Import 

 

Libellé du champ

Editeur

Commentaires

Adresse mail

E-mail

Nom JAVA : reportMail

Adresse mail sur laquelle est envoyé le rapport d’import.

Prend par défaut l’adresse mail de l’utilisateur.

Type de contenu à importer

Enuméré

Nom JAVA : contentType

Affiche tous les types actifs de l’espace de travail courant.

Permet de sélectionner le type de contenu à importer.

Contenu mapping

Enuméré

Nom JAVA : mappingContent

S’affiche à la sélection du champ « Type de contenu à importer ».

Affiche tous les Mapping de l’espace courant associés au type à importer.

Permet de sélectionner le contenu de mapping parmi ceux déjà créés.

Fichier CSV

Champ sélection fichier

Nom JAVA : csvFile

S’affiche à la sélection du champ « Contenu mapping ».

Permet de sélectionner le fichier csv contenant les contenus à importer.

L'encodage du fichier doit être en UTF-8 (sans BOM).

Fichier ZIP des pièces jointes

Champ sélection fichier

Nom JAVA : zipFile

S’affiche à la sélection du champ « Contenu mapping ».

Permet de sélectionner le fichier zip contenant les pièces jointes éventuelles liés aux contenus à importer.

Type de document à créer

Enuméré

Nom JAVA : documentType

Permet de préciser si les documents à importer doivent être créés en tant que DB document (stockage en base) ou Document (stockage dans le store).

Auteur par défaut

Lien sur « Membre »

Nom JAVA : importAuthor

S’affiche à la sélection du champ « Contenu mapping ».

Permet de préciser l’auteur des contenus à importer si aucune correspondance n'est trouvée.

 

Une fois l’import lancé, la page se rafraichit et affiche en temps réelle l’avancé de l’import.

Attention, un seul import peut être lancé à la fois (un message d’avertissement vous sera affiché si vous tentez d’en lancer un autre).

Si un problème technique survient, un retour arrière sur tous les types importés est effectué. Les créations de publication sont supprimées et les publications modifiées reprennent leur version initiale. L’utilisateur est informé via un message d’erreur dans le back office et depuis le fichier des logs d’imports envoyés par e-mail.

 

Réception des logs d’import et résolution des éventuels liens cassés

A la fin de l’import, les logs sont envoyés sur l’adresse e-mail précisée dans le formulaire d’import.

Les logs permettent d’obtenir les informations détaillées du déroulement de l’import et notamment d’obtenir plus de détail sur des éventuels problèmes intervenus (liens cassés, fichiers upload ou champs obligatoires manquant, etc.).

 

Extrait d’un fichier de logs :

importCSvPlugin logs

 

Pour gérer les liens cassés, le module intègre une fonction de résolution. Pour cela, il suffit de se rendre dans l’administration de l’espace et de cliquer sur le lien « Résoudre les liens cassés » dans le bloc « Configuration » :

importCSvPlugin administration résoudre les liens cassés 

 

Ceci vous amène dans la page de résolution des liens dans laquelle vous pouvez lancer la résolution en cliquant sur « Lancer la résolution des liens cassés » :

importCSvPlugin résolution des liens cassés 1 

 

Une fois la résolution terminée, un rapport de résolution est affiché contenant la liste éventuelle des liens cassés non résolus : importCSvPlugin résolution des liens cassés 2

 

Le lien de résolution des liens cassés reste affiché tant qu’il reste des liens cassés non résolus.

 

Informations techniques

Compatibilité JCMS

Ce module est compatible sur les versions :

  • JCMS 9 SP1
  • JCMS 9 SP2 
  • JCMS 9 SP3
  • JCMS 9 SP4

 

Compatibilité JSync

Ce module est compatible jSync, il fonctionnera sans problème sur un environnement à plusieurs réplicas.

En revanche, l’accès au formulaire d’import ne s’effectue que depuis le nœud principal.

 

Compatibilité JDK

Ce module est compatible avec la version 1.7 de JDK (Java Development Kit). Si vous êtes sur la version 1.6 de JDK, contactez-nous.

 

Prérequis

Pour une meilleure compréhension et utilisation de ce module, il est conseillé d’avoir suivi les formations JCMS suivantes :

  • Formation d’administrateur technique
  • Formation d’administrateur fonctionnel

 

Ce module ne dépend d’aucun autre module.

 

Installation du module

Ajouter ce module avec le gestionnaire de modules depuis l’administration technique et redémarrer l’application 2 fois.

 

 

Paramétrage

Liste des propriétés

Editez le module pour paramétrer ou modifier ses propriétés :

Propriété

Nom technique

Description

Séparateur du fichier csv

jcmsplugin.importcsvplugin.csv.file.separator

Permet de préciser la valeur par défaut du séparateur proposé dans le contenu « Mapping Import CSV ».

Créer une catégorie Import dans l'espace de travail

jcmsplugin.importcsvplugin.import.create.import.cat.boolean

Tous les contenus importés seront associés à cette catégorie.

Cette option permet de créer une catégorie « Import » dans chaque espace concerné sur laquelle les contenus seront associés. Cela permet notamment de retrouver facilement l’ensemble des contenus importés sans impacter le rattachement de ces contenus à d’autres catégories éventuelles.

Importer la première ligne du fichier *.csv

jcmsplugin.importcsvplugin.import.first.csv.line.boolean

Permet d’indiquer si le fichier d’import contient une ligne d’en-têtes de colonne ou non.

Nom du répertoire des logs d'import

jcmsplugin.importcsvplugin.log.directory

Permet de personnaliser le nom du répertoire contenant les logs d’import.

Adresse mail par défaut de l'émetteur

jcmsplugin.importcsvplugin.mail.from

Permet de personnaliser l’adresse e-mail de l’émetteur des logs d’import.

Séparateur pour les champs multilingue

jcmsplugin.importcsvplugin.multilanguage.separator

Permet de préciser la valeur par défaut du séparateur des champs multilingue proposé dans le contenu « Mapping Import CSV ».

Séparateur pour les champs à valeur multiple

jcmsplugin.importcsvplugin.multivalue.separator

Permet de préciser la valeur par défaut du séparateur des champs à valeur multiple proposé dans le contenu « Mapping Import CSV ».

Taille maximum des fichiers à importer (en Ko)

jcmsplugin.importcsvplugin.upload.max.size

Permet de limiter le poids des fichiers à importer.

Activer l’affinement des logs

jcmsplugin.importcsvplugin.import.first.csv.line.boolean

Permet de modifier le niveau d’affinement des logs d’import.

 

Enregistrement des nouvelles propriétés

Les changements de valeur des propriétés sont pris en compte directement lors de l'enregistrement sans avoir besoin de redémarrer l'application.

FAQ

Il permet d’importer tous les types de publication : contenu, contenu utilisateur, portlet, formulaire.
Il permet également d'importer des catégories.

Lors de l’import, les publications n’étant pas encore créées, les liens avec ces publications ne peuvent pas encore être mis en place. Le système génère donc des liens cassés qui peuvent être résolus en lançant un traitement spécifique qui va repasser sur l’ensemble des publications pour créer les liens. Ce traitement peut être exécuté après l’import depuis l’administration de l’espace, lien « Résoudre les liens cassés ».

Cette information permet d’indiquer au système où aller chercher l’ID de l’objet en question, en fonction de la donnée de votre fichier d’import.
S’il s’agit de l’ID d’un objet JCMS connu dans votre application, sélectionnez « ID JCMS ».
S’il s’agit de l’ID d’une application source, sélectionnez « ID d’origine ».

Il s’agit de tous les autres types de donnée non indiqués dans la liste.
Exemple : Texte et zone de texte, booléen, énuméré, date, etc…



Journal des changements

null

Correctif pour les types héritant de DBFileDocument




Glossaire

A

ACSII

L'American Standard Code for Information Interchange (Code américain normalisé pour l'échange d'information), plus connu sous l'acronyme ASCII ([askiː]) est une norme de codage de caractères en informatique ancienne. Le jeu de caractères codés ASCII est le principal système qui a permis l'échange de textes en anglais à un niveau mondial, limitant ainsi l'usage des langues locales au travers d'extensions régionales.

Actions entrantes & actions sortantes

Ces actions sont paramétrables dans les workflows. Elles définissent l’entrée ou la sortie d’un état de workflow. Une action entrante signifie l’arrivée dans un état du workflow (ex : une publication qui est planifié). Une action sortante signifie la sortie d’un état vers un autre (ex : une publication qui passe de l’état planifié vers l’état publié).

C

Classe

En programmation orientée objet, une classe définie un ensemble d’objets ayant des attributs communs, et le même ensemble d'opérations.

J

Jsync

Jsync est un moteur de réplication des données et des fichiers. La tâche principale de JSync est de synchroniser les données d'un groupe de serveurs JCMS (aussi appelés réplicas), et de répartir la charge de ces serveurs. Ainsi, toute création, modification ou suppression de données (catégorie, membre, contenu, …) sur l'un des réplicas sera propagée par le réplica leader aux réplicas membres du groupe. JSync assure ainsi la cohérence globale des données d'un groupe de serveur JCMS. Ajouter un lien vers la fiche jsync sur jalios.com.

L

LOG

Correspond à un historique d’évènements stockés dans un fichier, appelé fichier de log (diminutif de logging), permettant de suivre et repérer toutes activités du site. Les évènements sont horodatés et ordonnés en fonction du temps.

LOG4J

Log4j est une bibliothèque de log en Java. Elle permet entre autres de gérer plusieurs niveaux de log :
- FATAL: utilisé pour journaliser une erreur grave pouvant mener à l'arrêt prématuré de l'application
- ERROR: utilisé pour journaliser une erreur qui n'empêche cependant pas l'application de fonctionner
- WARN: utilisé pour journaliser un avertissement, il peut s'agir par exemple d'une incohérence dans la configuration, l'application peut continuer à fonctionner mais pas forcément de la façon attendue
- INFO: utilisé pour journaliser des messages à caractère informatif (nom des fichiers, etc.)
- DEBUG: utilisé pour générer des messages pouvant être utiles au débogage
- TRACE: utilisé par exemple pour journaliser l'entrée ou la sortie d'une méthode

M

MailPolicyFilter

Il s’agit d’un point de débranchement (hook) intervenant lors de l’envoi d’un e-mail dans JCMS. Plus détails ici.

N

Notifications email

Il s’agit de notifications transmises par email à un ou plusieurs utilisateurs JCMS. Ces emails permettent d’alerter, informer ou d’envoyer un rappel aux utilisateurs concernant un évènement passé ou à venir, d’une action traitée ou à traiter. Sous JCMS, il existe 3 types de notification : INFO, ACTION, ALERTE.

P

Portail

Un portail permet d’agréger et de personnaliser des informations de provenances multiples pour en offrir une vision unique. On distingue les portails documentaires étroitement liés à la gestion de contenu, et les portails d’infrastructure liés à des problématiques d’intégration d’applications.

Portlet

Elément de portail. Il existe différents types de portlets : - portlets de construction de page
- portlets de contenu (en charge de récupérer et de formater l'information),
- portlets de navigation,
- portlets fonctionnelles,
- portlets de log.
L'assemblage des différents types de portlets permet de construire des gabarits de page portail.

S

Store

Fichier .xml stockant des données sur les publications, les portlets, les espaces de travails, et d'autres fonctionnalités propres à JCMS. Certaines données de l'application peuvent aussi être stockées en base.

Voir les contenus liés :
- Fiche "Utiliser le store" (fiche Jalios ou Wisen)
- Fiche "Nettoyer le store" (fiche Jalios ou Wisen)
- Autre entrée de glossaire

T

Top-bar

La top-bar ou super-header correspond à la barre de menu affichée en haut de page : topbar

W

Wiki

Le wiki est une site Web ou page web collaborative dont le contenu peut être modifié par les internautes autorisés.

Workflow

Les circuits de validation (ou workflow) permettent de gérer les cycles de vie des contenus dans l’outil. Ils sont paramétrables et personnalisables par contenu.

Wysiwyg

WYSIWYG (What You See Is What You Get), en français « ce que vous voyez est ce que vous obtenez », s'applique aux éditeurs de texte et outils de présentation qui permettent d'éditer directement un contenu sous la forme qui sera affichée aux utilisateurs finaux.