Code source wiki de Modifier par lot

Version 10.1 par Joséphine Ducruet le 2025/08/27 11:36

Afficher les derniers auteurs
1 (% class="mark small" %)**Version 3.5 et ultérieures**
2
3 |(% style="width:840px" %)(((
4 (((
5 = Points clés avant de se lancer =
6
7 La **modification globale (ou par lot)** est réservée aux professionnels habilités.
8 Elle permet de mettre à jour, en temps réel, un ensemble de notices issues d’une recherche, selon différents axes :
9
10 * remplacer partiellement ou totalement la valeur d’un champ,
11 * ajouter une valeur,
12 * supprimer le contenu d’un champ,
13 * échanger des autorités,
14 * supprimer des notices.
15
16 (% class="box warningmessage" %)
17 (((
18 **Attention** : une fois validées, les modifications sont irréversibles.
19 )))
20
21 (% class="box successmessage" %)
22 (((
23 **Bonnes pratiques :**
24
25 * **Toujours tester sur la base de formation** avant d’appliquer en production.
26 * Planifier les **grosses modifications en fin de journée**, lorsque les autres utilisateurs ne sont pas connectés, afin d’éviter les ralentissements.
27 )))
28
29 = Rechercher les notices à modifier =
30
31 Deux modes d’accès sont possibles (selon vos droits) :
32
33 == Depuis l’Administration ==
34
35 1. Espace de travail //Administration// → Menu **Données / Modification globale**.
36 1. Sélectionner la source, puis la table concernée.
37 1. Choisir l'index de recherche
38 1. Définir les critères de recherche.
39
40 [[Accès à la modification globale depuis l'administration>>image:1717771048889-896.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
41
42
43 [[Interface de recherche de la modification globale>>image:1717771513301-161.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
44
45 == Depuis une liste de résultats ==
46
47 1. À l’issue d’une recherche standard, **sélectionner les notices à modifier** (ou laisser vide pour traiter l’ensemble de la liste).
48 1. Cliquer sur le bouton de **modification par lot**.
49
50 [[Modification par lot depuis une liste de résultats>>image:1717771746741-695.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
51
52
53 [[Modification par lot sans sélection de notices>>image:1717771855009-131.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
54
55 = Remplacer une valeur =
56
57 Permet de **remplacer la valeur d’un champ par une autre**.
58
59 >(% class="small" %)Ex. remplacer la dénomination //table// par //chaise//.
60
61 == Définir la valeur à remplacer ==
62
63 La **source** et la **table** sur lesquelles effectuer les modifications sont pré-remplies par défaut.
64 Il faut ensuite choisir le **champ** concerné.
65
66 Par défaut, la case **Trier par libellé** est cochée : le champ apparaît sous la forme //Libellé (nom informatique)//, ce qui permet de distinguer des champs portant le même libellé.
67
68 Il suffit enfin de renseigner :
69
70 * la **valeur recherchée**,
71 * la **nouvelle valeur** souhaitée.
72
73 [[Exemple : remplacer la dénomination table par chaise>>image:1717772769570-868.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
74
75 == Option Forcer ==
76
77 Cocher la case **Forcer** permet de ne pas spécifier de valeur recherchée : toutes les notices sélectionnées seront modifiées.
78
79 >(% class="small" %)**Exemple :**Notice A : Dénomination = //table//
80
81 >(% class="small" %)Notice B : Dénomination = //tabouret//
82
83 >(% class="small" %)**Action : Remplacer Dénomination → Nouvelle valeur = //chaise// + Forcer coché**
84
85 >(% class="small" %)**Résultat :**
86
87 >(% class="small" %)Notice A : Dénomination = //chaise//
88
89 >(% class="small" %)Notice B : Dénomination = //chaise//
90
91 (% class="box successmessage" %)
92 (((
93 **À retenir :**
94
95 * L’option **Forcer** écrase sans distinction toutes les valeurs présentes dans le champ sélectionné.
96 * Elle est **particulièrement utile** lorsque les notices sélectionnées comportent **des valeurs différentes** dans le champ à modifier, mais que l’on souhaite toutes les uniformiser avec une même donnée.
97 * C’est une action **radicale** à réserver aux cas où toutes les notices doivent avoir exactement la même donnée.
98 )))
99
100 == Options de remplacement ==
101
102 Ces options permettent d’affiner le comportement du remplacement. Elles apparaissent juste en dessous du champ //Nouvelle valeur//.
103
104 (% class="box warningmessage" %)
105 (((
106 **Important** : ces options ne concernent que les champs en **texte libre**.
107 Ne les utilisez pas sur les champs de type **liens, thésaurus ou listes**, car cela peut provoquer des pertes de données.
108 Si vous avez un doute, laissez les réglages par défaut : **Champ entier** + **Occurrence**.
109 )))
110
111 === Chercher ===
112
113 Cette option permet de **préciser le niveau de recherche de la valeur à remplacer**, selon qu’il s’agit d’une simple séquence de caractères, d’un mot complet ou de l’intégralité du champ.
114
115 * **Caractère** → recherche une simple suite de caractères
116 * **Mot entier** → recherche un mot complet
117 * **Champ entier** → recherche la valeur complète du champ
118
119 >(% class="small" %)Exemple :
120
121 >(% class="small" %)Texte de départ : Inventaire des peintures anciennes
122
123 >(% class="small" %)Caractère : Recherche de **tair** → prend en compte uniquement la suite de caractères dans //Inven**tair**e//.
124
125 >(% class="small" %)Mot entier : Recherche de **Inventaire** → prend en compte uniquement le mot complet **//Inventaire//**.
126
127 >(% class="small" %)Champ entier : Recherche de** Inventaire des peintures anciennes** → prend en compte le texte complet **Inventaire des peintures anciennes**
128
129 === Emplacement ===
130
131 Cette option permet de préciser **où** la nouvelle valeur sera appliquée dans le champ : uniquement à l’occurrence trouvée, à tout le champ, au début ou à la fin du texte.
132
133 * **Occurrence** → seule la partie identifiée est remplacée.
134 * **Champ entier** → tout le contenu du champ est remplacé (quelque soit la recherche)
135 * **Début de champ** → la nouvelle valeur est ajoutée au début du texte existant.
136 * **Fin de champ** → la nouvelle valeur est ajoutée à la fin du texte existant.
137
138 Elle se **combine** avec le réglage **Chercher** (Caractère, Mot entier, Champ entier).
139
140 >(% class="small" %)**Exemple** :
141
142 >(% class="small" %)Texte de départ : Inventaire des peintures anciennes
143
144 >(% class="small" %)**Cas 1** — Chercher = Caractère **pein** | Nouvelle valeur : **phot**
145
146 (((
147 |=(% style="text-align: center;" %)(% class="small" %)Chercher|=(% style="text-align: center;" %)(% class="small" %)Emplacement|=(% style="text-align: center;" %)(% class="small" %)Résultat
148 |(%%)(% class="small" %)Caractère|(%%)(% class="small" %)Occurrence|(%%)(% class="small" %)Inventaire des **phot**tures anciennes
149 |(%%)(% class="small" %)Caractère|(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)**phot**
150 |(%%)(% class="small" %)Caractère|(%%)(% class="small" %)Début de champ|(%%)(% class="small" %)**phot**Inventaire des peintures anciennes
151 |(%%)(% class="small" %)Caractère|(%%)(% class="small" %)Fin de champ|(%%)(% class="small" %)Inventaire des peintures anciennes**phot**
152 )))
153
154 >(% class="small" %)**Cas 2** — Chercher = Mot entier **peintures** | Nouvelle valeur : **dessins**
155
156 |=(% style="text-align: center;" %)(% class="small" %)Chercher|=(% style="text-align: center;" %)(% class="small" %)Emplacement|=(% style="text-align: center;" %)(% class="small" %)Résultat
157 |(%%)(% class="small" %)Mot entier|(%%)(% class="small" %)Occurrence|(%%)(% class="small" %)Inventaire des **dessins** anciennes
158 |(%%)(% class="small" %)Mot entier|(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)**dessins**
159 |(%%)(% class="small" %)Mot entier|(%%)(% class="small" %)Début de champ|(%%)(% class="small" %)**dessins**Inventaire des peintures anciennes
160 |(%%)(% class="small" %)Mot entier|(%%)(% class="small" %)Fin de champ|(%%)(% class="small" %)Inventaire des peintures anciennes**dessins**
161
162 (% class="box warningmessage" %)
163 (((
164 **Attention :** cela ne fonctionnera pas si vous indiquez une **suite de caractères** au lieu d’un **mot complet**.
165 Par exemple, chercher (ou remplacer) « **pein** » en cochant l’option **Mot entier** ne donnera aucun résultat ; utilisez le mot complet « **peintures** ».
166 )))
167
168 >(% class="small" %)**Cas 3** — Chercher = Champ entier **Inventaire des peintures anciennes** | Nouvelle valeur : **Catalogue des peintures**
169 )))
170
171 (((
172 |=(% class="small" %)Chercher|=(% class="small" %)Emplacement|=(% class="small" %)Résultat
173 |(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)Occurrence|(%%)(% class="small" %)**Catalogue des peintures**
174 |(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)**Catalogue des peintures**
175 |(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)Début de champ|(%%)(% class="small" %)**Catalogue des peintures**Inventaire des peintures anciennes
176 |(%%)(% class="small" %)Champ entier|(%%)(% class="small" %)Fin de champ|(%%)(% class="small" %)Inventaire des peintures anciennes**Catalogue des peintures**
177
178 (% class="box warningmessage" %)
179 (((
180 Avec **Champ entier**, la valeur recherchée doit **correspondre exactement** au contenu du champ (pas seulement un mot ou un extrait).
181 )))
182
183 == Respecter la casse ==
184
185 Active une recherche **strictement identique** à la valeur saisie : **majuscules, minuscules et accents** sont distingués.
186
187 (% class="box warningmessage" %)
188 (((
189 **Important** : ces options ne concernent que les champs en **texte libre**.
190 Ne les utilisez pas sur les champs de type **liens, thésaurus ou listes**, car cela peut provoquer des pertes de données.
191 Si vous avez un doute, laissez les réglages par défaut : **Champ entier** + **Occurrence**.
192 )))
193
194 >(% class="small" %)**Exemples :**
195
196 >(% class="small" %)**Majuscules**
197
198 >(% class="small" %)Champ : Catalogue Monet
199
200 >(% class="small" %)Recherche : monet avec **Respecter la casse** → **aucun résultat**
201
202 >(% class="small" %)(Décochez l’option ou recherchez Monet pour trouver la valeur.)
203
204 >(% class="small" %)**Accents**
205
206 >(% class="small" %)Champ : École de Paris
207
208 >(% class="small" %)Recherche : Ecole avec **Respecter la casse** → **aucun résultat**
209
210 >(% class="small" %)(Décochez l’option ou recherchez École pour trouver la valeur.)
211
212 == Remplacer toutes les occurrences présentes dans la valeur ==
213
214 Par défaut, **seule la première occurrence** trouvée dans le champ est remplacée.
215 En cochant **Remplacer toutes les occurrences présentes dans la valeur**, **toutes** les occurrences repérées dans ce même champ sont modifiées.
216
217 (% class="box warningmessage" %)
218 (((
219 **Important** : ces options ne concernent que les champs en **texte libre**.
220 Ne les utilisez pas sur les champs de type **liens, thésaurus ou listes**, car cela peut provoquer des pertes de données.
221 Si vous avez un doute, laissez les réglages par défaut : **Champ entier** + **Occurrence**.
222 )))
223
224 >(% class="small" %)**Exemple :**
225
226 >(% class="small" %)Champ (//Titre//) : Inventaire des peintures et des peintures anciennes
227
228 >(% class="small" %)Chercher = **Mot entier** peintures → Nouvelle valeur = dessins
229
230 >(% class="small" %)**Sans** l’option : Inventaire des ~*~*dessins~*~* et des peintures anciennes
231
232 >(% class="small" %)**Avec** l’option : Inventaire des ~*~*dessins~*~* et des ~*~*dessins~*~* anciennes
233
234 == Lancer le traitement ==
235
236 * **Lancer le test** : permet de vérifier que la modification globale va fonctionner.
237
238 (% class="box warningmessage" %)
239 (((
240 **Attention** : //Lancer le test ne permet pas de visualiser le résultat// (aucune donnée n’est modifiée).
241 )))
242
243 * **Lancer le traitement** : applique réellement la modification sur les notices sélectionnées.
244
245 = Ajouter une valeur =
246
247 == Définir la valeur à ajouter ==
248
249 1. La **source** et la **table** sont pré-remplies par défaut.
250 1. Sélectionnez le **champ** à modifier.
251 1. Par défaut, **Trier par libellé** est coché : le champ s’affiche sous la forme //Libellé (nom informatique)// pour distinguer les libellés identiques.
252 1. Renseignez la **nouvelle valeur** souhaitée.
253
254 [[Exemple : Ajoute du lieu d'utilisation Lyon>>image:1718002712583-345.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
255
256 == Ajouter au champ parent existant ==
257
258 Ajoute la valeur **dans le champ déjà présent** sur la notice.
259
260 [[Ajout dans un champ parent existant>>image:1718004841774-374.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
261
262 **Comportement selon le type de champ :**
263
264 * Champ **mono-valeur** vide → la valeur est **ajoutée**.
265 * Champ **mono-valeur** déjà renseigné → **aucun effet**.
266 * Champ **multi-valeur** vide → la valeur est **ajoutée**.
267 * Champ **multi-valeur** déjà renseigné → la valeur **complète** celles existantes.
268
269 == Créer un nouveau champ parent ==
270
271 **Duplique** le champ pour y ajouter la nouvelle valeur (uniquement pour les **champs duplicables**).
272
273 [[Duplication du champ lieu d'utilisation>>image:1718005071968-162.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
274
275 == Lancer le traitement ==
276
277 * **Lancer le test** : permet de vérifier que la modification globale va fonctionner.
278
279 (% class="box warningmessage" %)
280 (((
281 **Attention** : //Lancer le test ne permet pas de visualiser le résultat// (aucune donnée n’est modifiée).
282 )))
283
284 * **Lancer le traitement** : applique réellement la modification sur les notices sélectionnées.
285
286 = Supprimer un champ =
287
288 Efface la **valeur d’un champ** sur les notices sélectionnées.
289
290 == Définir la suppression ==
291
292 * La **source** et la **table** sont pré-remplies par défaut.
293 * Sélectionnez le **champ** à nettoyer.
294 * Par défaut, **Trier par libellé** est coché : le champ s’affiche sous la forme //Libellé (nom informatique)// pour distinguer les libellés identiques.
295 * Renseignez la **valeur recherchée** (celle à supprimer).
296
297 (% class="box warningmessage" %)
298 (((
299 **Attention les options Chercher / Emplacement** **ne s’appliquent pas** à la suppression :
300 dès que la valeur recherchée est **présente** dans le champ, **l’occurrence du champ est supprimée en entier** (et pas seulement une partie du texte).
301 )))
302
303 [[Exemple : suppression du lieu d'utilisation Lyon>>image:1718005707106-758.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
304
305
306 (% class="box successmessage" %)
307 (((
308 **Astuce :  Besoin de vider un champ sans spécifier de valeur recherchée ?**
309 Utilisez **Remplacer** plutôt que **Supprimer un champ.**
310 Sélectionnez le champ, activez **//Forcer//**, et **ne renseignez pas //Nouvelle valeur//**.
311
312 [[Vider le champ Date fin de collecte>>image:1718008933138-967.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true"]]
313 )))
314
315 == Lancer le traitement ==
316
317 * **Lancer le test** : permet de vérifier que la modification globale va fonctionner.
318
319 (% class="box warningmessage" %)
320 (((
321 **Attention** : //Lancer le test ne permet pas de visualiser le résultat// (aucune donnée n’est modifiée).
322 )))
323
324 * **Lancer le traitement** : applique réellement la modification sur les notices sélectionnées.
325
326
327 )))
328 )))|(% style="width:300px" %)
329
330 == ==
331
332 == Echange ==
333
334
335 La fonctionnalité échange permet d'échanger une autorité avec une autre autorité.
336
337 La source et la table sur lesquelles effectuer les modifications sont remplis par défaut. Il faut alors choisir le champ sur lequel la suppression est souhaitée.
338
339 La table liée permet de renseigner la table d'autorité concernée par l'échange.
340
341 Par défaut la case "Trier par libellé" est cochée. Elle permet de faire apparaitre le libellé du champ suivi de son nom informatique. Cela permet de différencier des champs qui ont potentiellement le même libellé.
342
343 Renseigner ensuite la valeur recherchée à remplacer et la nouvelle valeur souhaitée.
344
345 //Par exemple, remplacer dans des notices bien, l'autorité personne Delacroix Eugène par Sandro Botticelli. Ainsi tous les champs des notices sélectionnées faisant appel à Delacroix Eugène feront maintenant appel à Sandro Botticelli.//
346
347 [[image:1718007194775-136.png||data-xwiki-image-style-alignment="center" height="420" width="1381" class="img-thumbnail"]]
348
349 (% class="wikigeneratedid" %)
350 Lancer le test permet de vérifier que la modification globale va fonctionner.
351
352 (% class="box warningmessage" %)
353 (((
354 Attention Lancer le test ne permet pas de visualiser le résultat.
355 )))
356
357 (% class="wikigeneratedid" %)
358 Lancer le traitement lancera la modification des notices.
359
360 == Supprimer les notices ==
361
362 (% id="HStandard-6" %)
363 La fonctionnalité supprimer les notices permet de supprimer l'ensemble des notices sélectionnées.
364
365 (% class="box warningmessage" %)
366 (((
367 Attention toutes suppressions de notices est irréversibles.
368 )))
369
370 [[image:1718007555125-860.png||data-xwiki-image-style-alignment="center" height="220" width="1273" class="img-thumbnail"]]
371
372 Lancer le test permet de vérifier que la suppression va fonctionner.
373
374 (% class="box warningmessage" %)
375 (((
376 Attention Lancer le test ne permet pas de visualiser le résultat.
377 )))
378
379 Lancer le traitement lancera la suppression des notices.
380
381 L'option Ignorer les erreurs permet de passer outre tout problème rencontré lors de la suppression. Sinon, l'opération est stoppée dès qu'un problème est rencontré.
382
383 = Lancer le traitement =
384
385
386 Une fois la modification paramétrée, cliquez sur Lancer le test pour tester le traitement (sans impact sur les données). Une page d'informations s'affiche en trois parties.
387
388 La première présente un résumé des informations de la modification. Le pourcentage de traitement réalisé apparaît en haut de l'écran.
389
390 [[image:1718007767433-901.png||data-xwiki-image-style-alignment="center" height="554" width="1184" class="img-thumbnail"]]
391
392 La seconde présente les informations remontées en cours de traitement ainsi que les clefs et digests des notices modifiées. En raison du nombre d’informations pouvant être remontées dans cette zone, son contenu est volatile. Si l’on quitte l’écran de modification globale et que l’on revient dessus, on ne verra plus les précédentes informations affichées. Le nombre de lignes pouvant être affiché dans cette zone est limité à 10000. Passé ce nombre, « ….. » s'affiche.
393
394 [[image:1718007797909-766.png||data-xwiki-image-style-alignment="center" height="552" width="1177" class="img-thumbnail"]]
395
396 La troisième zone est masquée. Elle apparaît lorsque des erreurs sont remontées. A l'inverse de la liste des enregistrements traités, les messages affichés dans cette zone restent jusque' à la fin du traitement : si l’on quitte cette page, on les retrouve lorsque l’on revient sur la modification en cours. Les erreurs sont détaillées, y compris les fiches impossibles à modifier à cause de droits insuffisants. (On peut disposer d'un droit de modification filtré, qui ne s'applique donc pas à toutes les notices d'une table.)
397
398 [[image:1718007901694-625.png||data-xwiki-image-style-alignment="center" height="375" width="1174" class="img-thumbnail"]]
399
400 (% class="box warningmessage" %)
401 (((
402 Il est conseillé de tester d'abord l'impact potentiel de votre modification globale, avant de lancer le traitement réel sur les données.
403 )))
404
405 Une fois la modification paramétrée et testée, deux possibilités sont offertes pour lancer le traitement effectif :
406
407 * A partir de l'écran de résultat de test (étape précédente) : cliquez sur Appliquer.
408 * A partir d'un des écrans de paramétrage de la modification globale : cliquez sur Lancer le traitement.
409
410 Une fois le traitement lancé, les informations associées s'affichent de la même manière que lors du test, sans la mention Exécution en mode test.
411
412
413 Une fois le test ou le traitement terminé, trois boutons se présentent en haut de la page :
414
415 [[image:1718007993541-975.png]]retour au formulaire de recherche
416
417 [[image:1718008006027-949.png]]retour à la liste résultat
418
419 [[image:1718008017305-150.png]] télécharger les rapports.
420
421 Ce dernier permet de récupérer les fichiers contenant la totalité des informations affichées. Il suffit de fournir le nom du fichier zip téléchargé.
422
423 [[image:1718008058300-626.png||data-xwiki-image-style-alignment="center" height="333" width="389" class="img-thumbnail"]]
424
425 (% class="imgpara" %)
426 Le fichier zip contient trois fichiers correspondant aux trois zones d'informations décrites ci-dessous.
427
428 (% class="imgpara" %)
429 Les noms de fichier sont composés :
430
431 * du code de l’action
432 * global_replace = Remplacement
433 * global_add = Ajout
434 * global_remove = Suppression de champ
435 * global_exchange = Echange d'autorité
436 * global_notice_delete = Suppression de notice
437 * CommitBatch = traitement effectif,
438 * du code de l’utilisateur connecté,
439 * de la date d’exécution de la modification,
440 * du type d'information
441 * err = erreurs rencontrées (contenu de la troisième partie de la page)
442 * out = liste de fiches impactées (contenu de la deuxième partie de la page)
443 * summary = récapitulatif (affiché dans la première partie de la page)