Gérer une fichothèque avec le logiciel BDF

Commande : IMP-01 Importation de fiches

Cette commande de créer, modifier ou supprimer des fiches à partir de données sous forme tabulaire, typiquement provenant d’un tableur comme LibreOffice Calc. Le principe est simple :

  • chaque colonne du tableau transmis correspond soit à un champ de la fiche, soit au croisement avec une collection (corpus, thésaurus, addenda, album ; il n’est pas obligatoire que cette collection soit inséré par ailleurs dans le formulaire) ;

  • plusieurs colonnes peuvent correspondre à un même champ, les valeurs seront alors agrégées ;

  • pour être valide, le contenu des cellules du tableau doit correspondre à la syntaxe de saisie du formulaire de la fiche (par exemple, les dates doivent être au format ISO)

Indication de la correspondance entre colonnes du tableau et champs

Comme l’indique les options de « Champs à traiter », il y a deux manières d’indiquer la correspondance entre colonnes et champs : soit les noms des champs sont indiqués dans la première ligne du tableau transmis, soit ils sont indiqués dans l’ordre des colonnes dans la zone de saisie liée à l’option définis séparément (les noms des champs sont simplement séparés par des espaces).

Dans les deux cas, la syntaxe des noms des champs est celle des composants du formulaire, à savoir :

  • id pour le numéro de la fiche,

  • title, subtitle, owners pour les champs spéciaux titre, sous-titre et propriétaires de la fiche,

  • prop_*, info_*, section_* pour les champs Propriété, Information et Section

  • corpus_*, thesaurus_*, addenda_*, album_* pour les corpus, thésaurus, addenda et album, avec éventuellement des indications de mode (thesaurus_*_mode) ou de poids (corpus_*_2)

  • liage est accepté pour indiquer des liens avec d’autres fiches de n’importe quel corpus, mais il est conseillé de réserver son usage à la création de fiche (à la modification, il peut y avoir conflit avec d’autres colonnes correspondant à des corpus).

En plus, il est possible de faire correspondre une colonne à un « sous-champ » d’un champ (par exemple, le prénom d’un champ Propriété de type Personne peut être indiqué via prop_*_forename). Le détail des sous-champs disponibles est décrit dans la fiche Utiliser des colonnes correspondant à des « sous-champs » dans la saisie en masse de fiches.

Comme indiqué plus haut, plusieurs colonnes peuvent correspondre au même champ, à l’exception de id qui doit être unique. Le comportement en présence de colonnes portant le même nom diffère du type de champ. Si le champ a une valeur unique (comme le titre et les propriétés), le contenu des différentes colonnes sera agrégé dans l’ordre des colonnes pour ne former qu’une seule valeur. Si le champ peut contenir plusieurs valeurs, chaque colonne donne des valeurs distinctes (rappel : à l’intérieur d’une même colonne, plusieurs valeurs sont séparées par un point-virgule).

Différence entre la création et la modification de fiches

Dans le cas d’une modification de fiches, la colonne id est obligatoire et les numéros doivent correspondre aux numéros de fiches existantes !

Dans le cas d’une création de fiches, la colonne id est optionnelle. Lorsque sa valeur est présente, la fiche est créé avec cette valeur à condition que la fiche n’existe pas déjà ! Ce principe permet d’éviter l’écrasement imprévu d’une fiche existante.

On remarquera que l’option Création de fiches fait apparaitre un champ de saisie Propriétaires par défaut, cette valeur sera utilisée si aucune colonne ne correspond aux propriétaires de la fiche (owners).

Cas de la suppression de fiches

Dans le cas de la suppression, une seule colonne est attendue, celle du numéro de la fiche : id. À noter que cette commande de suppression est radicale : n’importe quelle fiche peut être supprimée même si elle n’est pas écartée.

Transmission du tableau de données

La transmission du tableau peut se faire de deux manières :

  • soit en faisant un copier-coller à partir de son tableur dans la zone de saisie Texte à traiter. Normalement, les colonnes sont séparées par une tabulation.

  • soit en transmettant un fichier CSV

Traitement particulier sur les colonnes de croisement avec d’autres collections

Par défaut, si une colonne indique un croisement avec une collection, les nouvelles valeurs écraseront les valeurs existantes. Dans certains cas, on peut vouloir seulement ajouter la valeur indiquée (par exemple, on veut ajouter un mot-clé supplémentaire à une liste de fiches). C’est possible en accolant !append au code de la colonne (par exemple, thesaurus_nomenclature!append).

À noter que dans le cas de saisie en masse sur les mots-clés, le comportement par défaut est l’opposé : les valeurs sont ajoutées. Pour remplacer les valeurs existantes, il faut ajouter !replace.

Comme indiqué plus haut, le contenu de la colonne doit suivre la syntaxe du formulaire, ce qui implique des comportements différents pour les thésaurus suivant qu’ils sont avec identifiants alphanumériques ou non. En outre, l’importation respecte les permissions d’ajout par un utilisateur standard. Ce comportement peut être modifié par un des paramètres suivants :

  • !idalpha : la vérification du contenu ne se fait que sur les idalphas existants, il n’y a pas d’ajout via l’appel à une source extérieure et si le thésaurus n’a pas d’identifiants alphanumériques, le parseur regarde la présence d’une forme « trait de soulignement » (_) suivi du numéro de fiche

  • !id : la vérification se fait sur le numéro du mot-clé uniquement.

Ce type de paramètre n’existe pas pour les corpus, addenda et album car les valeurs attendues sont les numéros des élements uniquement.

Enfin, les paramètres peuvent être combinés en les séparant par une virgule (!append,id).

Références