Modifié par Nicolas Schreiber le 2026/01/12 15:46

Depuis la version 17.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:46
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 14.1
modifié par Nicolas Schreiber
sur 2026/01/12 09:15
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -228,8 +228,6 @@
228 228  * de ne pas perdre les libellés de champs (on les indiquera dans **dataBefore**)
229 229  * de n'avoir des séparateurs de champs que si un au moins des champs précédents est non vide...sinon le contenu de la colonne commencera par un séparateur (on les indiquera dans **dataJoinSeparator**)
230 230  
231 -La concat peut etre vue comme une "variable" que l'on va pouboir utiliser à sa guise
232 -
233 233  == A minima ==
234 234  
235 235  on va donc créer une "boite" qui va assembler les données de la colonne en concaténant les champs cités
... ... @@ -270,7 +270,7 @@
270 270  
271 271  [[image:1698235351939-869.png]]
272 272  
273 -== Ajout de données par défaut entre les champs de la concat ==
271 +== Ajout de données par défaut entre les champs du groupe ==
274 274  
275 275  Dans l'exemple ci-aprés, on a positionnés les séparateurs de champs dans chacun des champs avec le DataJoinSeparator
276 276  
... ... @@ -299,8 +299,7 @@
299 299  
300 300  (% class="box infomessage" %)
301 301  (((
302 -Les notions de subGroupDataBefore et subGroupDataAfter peuvent aussi etre paramétrées mais n'ont pas grand intéret dans les concat, elles seront plutôt utilisées dans le cas des blocs répétables.
303 -Les concat ont donc un comportement trés similiare aux groupes de groupDataType = "group", à la différence qu'on peut y mettre n'importe quel champ dedans
300 +les notions de subGroupDataBefore et subGroupDataAfter peuvent aussi etre paramétrées mais n'ont pas grand intéret dans les concat, elles seront plutôt utilisées dans le cas des blocs répétables
304 304  )))
305 305  
306 306  = Export des champs d'un bloc répétable =
... ... @@ -309,40 +309,20 @@
309 309  
310 310  Globalement il ressemblera beaucoup à un concat, à la différence prés qu'un concat ne se joue qu'une seule fois, alors que le bloc de champs se jouera dans l'export autant de fois qu'il y a de groupe saisis dans la notice courante
311 311  
309 +(% class="box infomessage" %)
310 +(((
312 312  On peut se representer cela comme une boucle d'éxécution qui tournera tant qu'il existe encore un bloc répété à exporter
312 +)))
313 313  
314 314  //Exemple avec un bloc de champ répétable contenant 3 champs avec une saisie lacunaire (il est rare que tous les champs soient remplis dans un bloc)//
315 315  
316 -[[image:1768226297481-108.png]]
316 +[[image:1698249410427-526.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
317 317  
318 -== groupDataType~=group ==
318 +le paramétrage de l'export sera défini tel que :
319 319  
320 -On va boucler sur les blocs répétables en concaténant les champs qu'il contient, et chaque bloc sera concaténé au précédent (avec groupDataSubgroupSeparator). chaque "bloc" est vu comme un subGroup.
321 -
322 -Dans le cas des groupDataType=group, les subGroup sont regroupés dans une seule "variable"
323 -
324 -il sera possible de définir les data de concaténation ci dessous
325 -
326 - **groupDataBefore**=" données en début de groupe"
327 -
328 -*
329 -** subGroupDataBefore **= "données en début de chaque sous-group"
330 - **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"**
331 -** subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
332 -\\ **groupDataSubGroupSeparator**=" donnée insérée entre chaque subgroup"**
333 -
334 - **groupDataAfter**="données en fin de groupe
335 -
336 -Cela permet donc un formatage plus fin car ion eput agir à tous les niveaux de la concatenation, notemment le **groupDataSubGroupSeparator **qui permet de gérér les séparateur entre les sous-groupes
337 -\\rappel : un sous-groupe correspond dans le MCD, un bloc répétable est un bloc type="set" posé dans un bloc type="selection"
338 -
339 -[[image:1768223007353-115.png]]
340 -
341 -Exemple avec juste deux retours lignes entre chaque sous-groupe
342 -
343 343  **~ <group_field name="INTERVENANT"
344 344   groupDataType              = "group"
345 - label                      = "Intervenants-group"
322 + label                      = "Intervenants"
346 346   groupDataSubGroupSeparator = "\n\n"
347 347  \\>  **
348 348  
... ... @@ -353,7 +353,7 @@
353 353  
354 354  et génerera la colonne ci dessous
355 355  
356 -[[image:1768226409578-347.png||class="img-thumbnail"]]
333 +[[image:1698249964685-586.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
357 357  
358 358  (% class="box infomessage" %)
359 359  (((
... ... @@ -368,22 +368,11 @@
368 368  Un sous-groupe est un ensemble de champs qui appartiennent a la même entite :  au meme bloc de champs (type=set), a la même notice liée ou a la même notice qui référence la notice courante
369 369  )))
370 370  
371 -== groupDataType~=subGroup ==
348 +Il est possible de choisir un** type= "sous groupe"**
372 372  
373 -le fonctionnement est différent, car il n'y a pas "une seule variable" concaténant tous les sous-groupes, mais autant de "sous-variables" que de blocs. On ne peut donc poser que les séparateurs suivants
374 -
375 -**subGroupDataBefore **= "données en début de chaque sous-group"
376 - **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"
377 -**subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
378 -
379 -Chaque sous-groupe sera ensuite "posé" dans la colonne avec le compressChar=" ; " définit dans l'entête du format
380 -
381 381   <group_field name="INTERVENANT"
382 -**~ groupDataType   ** = **"subGroup"**
383 - label                      = "Intervenants - uibgroup"
384 -
385 - subGroupDataBefore = "intervenant : "
386 - subGroupDataAfter = "\n"
351 +**groupDataType   ** = **"SubGroup"**
352 + label                      = "Intervenants"
387 387  ~> 
388 388  
389 389   <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
... ... @@ -391,81 +391,15 @@
391 391   <field name='PRECISION_INTERVENANT'  label='Précisions intervenant ' dataJoinSeparator="\n"/> 
392 392  </group_field>
393 393  
360 +(% class="wikigeneratedid" %)
361 +Dans ce cas chaque élément du groupe générera sa propre colonne, donc ce n'est pas trés différent d'avoir positionné ces 3 champs directement dans le template etp, sans tenir compte du group_field, ou bien directement dans un concat, mais avec la contrainte de ne pouvoir y inclure que des champs du bloc répétable courant
394 394  
395 -[[image:1768226447728-811.png||class="img-thumbnail"]]
396 396  
397 -le groupDataType="subgroup" est donc peu utilisé, sauf dans les exports au format xml car ils permettent de conserver la répétabilité des blocs, et donc de répéter les noeux dans le format xml de sortie
364 +A noter que pour les type=SUbGroup le label du group_field est ignoré et que ce sont les labels de chaque élément qui sont pris en compte dans les intitulé de colonne
398 398  
399 -= sans groupDataType =
366 +[[image:1698308536947-443.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
400 400  
401 -SI on ne précise pas de groupDataType le moteur les considère comme ue arbre xml complet avec un noeud pour chaque sous-groupe et un noeud pour chaque champ. ça ne peut pas vraiment se matérialiser dans un export colonné, donc dans ce cas les données sont exportées "champ" par "champ", chaque champ étant regroupé dans une colonne avec le compressChar=" ; " définit dans l'entête du format.
402 -De facto on perd la lisibilité du bloc
403 403  
404 -<group_field name="INTERVENANT" 
405 - label  = "Intervenants - sans groupDataType" 
406 -~> 
407 -
408 - <field name='PERSONNE_INTERVENANT'  /> 
409 - <field name='FONCTION_INTERVENANT'  dataBefore=" (" dataAfter=")"/> 
410 - <field name='PRECISION_INTERVENANT'  dataJoinSeparator="\n"/> 
411 -</group_field>
412 -
413 -[[image:1768227008672-422.png]]
414 -
415 -les groupes sans groupDataType seront essentiellement utilisés dans les exports OAI:LIDO pour ocnserver les imbrications de champs et blocs dans le format xml de sortie
416 -
417 -== Extraire un nombre défini de bloc chacun dans sa colonne ==
418 -
419 -Dans certains cas il peut etre interessant d'éclater les blocs et les champs d'un bloc dans des colonnes séparées
420 -
421 -C'est possible avec le subGroupDataIndex mais il fauit prévoir le nombre de colonnes maximum
422 -
423 -Veiller aussi à l'unicité des name en indisuant le nom du bloc dans le fieldName
424 -
425 -<group_field name="INTERVENANT1" fieldName="INTERVENANT" 
426 - label  = "Intervenants - groupe 1" 
427 - subGroupDataIndex ='1'
428 -~> 
429 -
430 - <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT1"/> 
431 - <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT1" /> 
432 - <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT1"/> 
433 -</group_field>
434 -
435 -<group_field name="INTERVENANT2" fieldName="INTERVENANT" 
436 - label  = "Intervenants - groupe 2" 
437 - subGroupDataIndex = '2'
438 -~> 
439 -
440 - <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT2"/> 
441 - <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT2" /> 
442 - <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT2"/> 
443 -</group_field>
444 -
445 -<group_field name="INTERVENANT3" fieldName="INTERVENANT" 
446 - label  = "Intervenants - groupe 3" 
447 - subGroupDataIndex ='3'
448 -~> 
449 -
450 - <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT3"/> 
451 - <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT3" /> 
452 - <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT3"/> 
453 -</group_field>
454 -
455 -
456 -[[image:1768228264778-201.png]]
457 -
458 -== Générer autant de lignes que de blocs répétables ==
459 -
460 -Cette option est utilisée dans l'export e-recolnat pour générer une ligne d'export pour chaque bloc identification d'un specimen (FLO-4677)
461 -
462 -On définit le nom du bloc concernée (un seul par export) dans l'entéte du fichier via recordFromGroupFieldName
463 -
464 -[[image:1768228658052-477.png]]
465 -
466 -[[image:1768228710793-297.png]]
467 -
468 -
469 469  == Paramétrages complémentaires pour les blocs répétables ==
470 470  
471 471  il est possible d'inclure aussi dans un group_field
... ... @@ -474,29 +474,39 @@
474 474  * des champs des notices liées a un des champs du bloc via le tag 'linked_field'
475 475  * des notices qui référencent la notice courante : tag 'reference' pour les liens parent/enfants. ce tag est étudié plus loin dans l'article
476 476  
477 -
377 +=== Ajout de données avant - après chaque sous-groupe ===
478 478  
479 -=== Exemple global ===
379 +* **subGroupDataBefore **: séparateur avant les données d'un sous-groupe   (Chaine vide si non défini)
380 +* **subGroupDataSeparator **: séparateur entre les données d'un sous-groupe   (Espace si non défini)
381 +* **subGroupDataAfter **: séparateur après les donnes d'un sous-groupe    (Chaine vide si non défini)
480 480  
481 -<group_field name="INTERVENANT"
482 - groupDataType  = "group"
483 - label  = "Intervenants"
484 - groupDataBefore  = "groupDataBefore"
485 - groupDataSubGroupSeparator = "\ngroupDataSubGroupSeparator"
486 - subGroupDataBefore  = "\nsubGroupDataBefore"
487 - subGroupDataSeparator  = "\nsubGroupDataSeparator\n"
488 - subGroupDataAfter  = "\nsubGroupDataAfter"
489 - groupDataAfter  = "\ngroupDataAfter"
490 -~> 
383 +=== Ajout de données avant - après le groupe ===
491 491  
492 - <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
385 +Uniquement si groupDataType="group" car la colonne unique contiendra une concaténation de tous les  sous-groupes en un seul groupe
386 +
387 +* **groupDataBefore **: séparateur avant les données du groupe    (Chaine vide si non défini)
388 +* **groupDataSubGroupSeparator **: séparateur entre les sous-groupes   (' / ' espace slash espace si non défini)
389 +* **groupDataAfter **: séparateur après les données du groupe   (Chaine vide si non défini)
390 +
391 +=== Exemple global ===
392 +
393 +<**group_field **name="INTERVENANT"
394 + groupDataType              = "**group**"
395 + label                      = "Intervenants"
396 + groupDataBefore            = "- texte avant le groupe -\n"
397 + groupDataSubGroupSeparator = "\n{séparateur par défaut entre les sous groupe}\n"
398 + groupDataAfter             = "\n-texte aprés le groupe"
399 + subGroupDataBefore         = "- texte avant le sousgroupe - "
400 + subGroupDataSeparator      = " {séparateur par défaut dans le sous groupe} "
401 + subGroupDataAfter          = " - texte aprés avant le sousgroupe -"
402 +\\>
403 +\\ <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
493 493   <field name='FONCTION_INTERVENANT'  label='Fonction ' dataBefore=" (" dataAfter=")"/> 
494 494   <field name='PRECISION_INTERVENANT'  label='Précisions intervenant ' dataJoinSeparator="\n"/> 
495 495  </group_field>
496 496  
408 +[[image:1698310122900-966.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
497 497  
498 -[[image:1768229192168-268.png||class="img-thumbnail"]]
499 -
500 500  == Filtre sur les données du groupe ==
501 501  
502 502  D'un certaine manière un bloc répétable peut être considéré comme une table liée embarquée dans la notice courante
... ... @@ -699,7 +699,7 @@
699 699   subGroupDataSeparator = ", "
700 700   subGroupDataAfter     = "" >
701 701  
702 -*
612 +*
703 703  ** <linked_field name='BIEN' label='Bien'>
704 704  **~ <field name='DISPLAY' label='Bien' display='true'/>
705 705   </linked_field>
... ... @@ -738,7 +738,7 @@
738 738   documentTypes="Document-Photo"
739 739   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
740 740   subGroupDataMultMaxi=""
741 - **subGroupDataIndex="1">**
651 + **subGroupDataIndex="1">**
742 742   <!~-~- champ de la table IDOCS ~-~->
743 743   <field name="LABEL" label="Photo 1 : "/>
744 744  
... ... @@ -748,7 +748,7 @@
748 748   inputRecordFilter=""
749 749   documentTypes="Document-Photo"
750 750  
751 -*
661 +*
752 752  ** resolution="LOW"
753 753   dimImageXYInPixels="192"**/>
754 754   </linked_records_document_records>**
... ... @@ -768,7 +768,7 @@
768 768  <linked_records_document_records name="PHOTO_INV"
769 769   documentTypes="Document-Photo"
770 770   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
771 - **subGroupDataIndex="1"**>
681 + **subGroupDataIndex="1"**>
772 772  
773 773  **~
774 774   **<photo_document_file name="**_PHOTO1**"
... ... @@ -781,7 +781,7 @@
781 781  <linked_records_document_records name="PHOTO_INV"
782 782   documentTypes="Document-Photo"
783 783   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
784 - **subGroupDataIndex="2"**>
694 + **subGroupDataIndex="2"**>
785 785  
786 786  **~
787 787   **<photo_document_file name="**_PHOTO2**"
... ... @@ -794,7 +794,7 @@
794 794  <linked_records_document_records name="PHOTO_INV"
795 795   documentTypes="Document-Photo"
796 796   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
797 - **subGroupDataIndex="3"**>
707 + **subGroupDataIndex="3"**>
798 798  
799 799  **~
800 800   **<photo_document_file name="**_PHOTO3**"
... ... @@ -807,7 +807,7 @@
807 807  <linked_records_document_records name="PHOTO_INV"
808 808   documentTypes="Document-Photo"
809 809   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
810 - **subGroupDataIndex="4"**>
720 + **subGroupDataIndex="4"**>
811 811  
812 812  **~
813 813   **<photo_document_file name="**_PHOTO4**"
... ... @@ -825,10 +825,11 @@
825 825   documentTypes="Document-Photo"
826 826   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
827 827  
828 -*
738 +*
829 829  ** subGroupDataMultMaxi="4"
830 830   subGroupDataIndex="">
831 -\\**<photo_document_file name="_PHOTO"
741 +
742 + **<photo_document_file name="_PHOTO"
832 832   label="Photo"
833 833   documentTypes="Document-Photo"
834 834   resolution="LOW"
1768223007353-115.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -300.9 KB
Contenu
1768226297481-108.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -47.9 KB
Contenu
1768226409578-347.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -9.9 KB
Contenu
1768226447728-811.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -11.6 KB
Contenu
1768227008672-422.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -14.0 KB
Contenu
1768228264778-201.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -10.9 KB
Contenu
1768228658052-477.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -9.5 KB
Contenu
1768228710793-297.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -10.6 KB
Contenu
1768229185769-507.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -22.8 KB
Contenu
1768229192168-268.png
Auteur
... ... @@ -1,1 +1,0 @@
1 -XWiki.NSR
Taille
... ... @@ -1,1 +1,0 @@
1 -22.8 KB
Contenu