Tags

    Les tags sont des métadonnées définies sur un composant permettant de le caractériser et de le retrouver plus facilement.

    Ces métadonnées peuvent être de différents types afin d’assurer une cohérence des données stockées dans FlowerDocs.

    Au sein de l’application, les métadonnées portées par les composants (documents, dossiers…) sont nommées « tags ».


    Une classe de tags permet de définir la typologie d’un tag au sein d’un scope. Cette classe de tags s’applique à l’ensemble des tags associés aux composants et est composée des éléments suivants :


    Ajouter des tags à vos composants en référençant une classe de tags au niveau d’une classe de composants.

    Le modèle de données FlowerDocs offre la possibilité de définir deux types de tags textuels :


    Cette section décrit les différents types de tag basés sur une liste :

    • Liste de choix
    • Icône
    • Liste libre

Liste de choix

Un tag de type liste de choix permet de restreindre les valeurs possibles d’un tag aux choix définis.


Exemple

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TagClass xmlns="http://flower.com/docs/domain/common" xmlns:ns2="http://flower.com/docs/domain/tagclass"
	xmlns:ns3="http://flower.com/docs/domain/i18n">
	<id>TypeCourrier</id>
	<ns2:type>CHOICELIST</ns2:type>
	<ns2:allowedValues symbolicName="FactureClient">
		<ns2:displayNames language="FR">
			<ns3:value>Facture Client</ns3:value>
		</ns2:displayNames>
	</ns2:allowedValues>
	<ns2:allowedValues symbolicName="BonDeCommande">
		<ns2:displayNames language="FR">
			<ns3:value>Bon de commande</ns3:value>
		</ns2:displayNames>
	</ns2:allowedValues>
</ns2:TagClass>

Liste d’icônes

Un tag de type liste d’icônes est une extension d’une liste de choix pour lesquels il est possible de définir une icône.

Cette icône doit être définie avec la classe CSS appropriée en s’appuyant sur les librairies disponible dans FlowerDocs :


Exemple

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TagClass xmlns="http://flower.com/docs/domain/common" xmlns:ns2="http://flower.com/docs/domain/tagclass"
	xmlns:ns3="http://flower.com/docs/domain/i18n">
	<id>Priorite</id>
	<ns2:type>ICON</ns2:type>
	<ns2:allowedValues symbolicName="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:type="AllowedValueWithIcon">
		<ns2:icon>fa fa-flag black</ns2:icon>
		<ns2:displayNames language="FR">
			<ns3:value>Critique</ns3:value>
		</ns2:displayNames>
	</ns2:allowedValues>
</ns2:TagClass>

Si deux icônes doivent être placées côte à côte, il est possible d’utiliser une icône du type : stacked(fas fa-exclamation red,fas fa-flag red).

Liste libre

Un tag de type liste libre est une extension d’une liste de choix sans validation. Ce type de liste permet ainsi la valorisation d’un tag avec des valeurs qui ne sont pas connues de FlowerDocs.

Ce type de tag est adapté aux intégrations avec des référentiels tiers.


Exemple

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TagClass xmlns="http://flower.com/docs/domain/common" xmlns:ns2="http://flower.com/docs/domain/tagclass"
	xmlns:ns3="http://flower.com/docs/domain/i18n">
	<id>ReferenceClient</id>
	<ns2:type>FREELIST</ns2:type>
</ns2:TagClass>

Le modèle de données FlowerDocs offre la possibilité de définir trois types de tags numériques :

Les tags de type CONDITIONAL permettent de définir des conditions sur les différents choix (ou des ensembles de choix) proposés à l’utilisateur dans les formulaires d’indexation ou de recherche.

Les objets

ConditionalAllowedValue supportant plusieurs conditions peuvent être définis pour un choix donné. Dans ce cas, il suffit qu’une condition soit satisfaite pour que le choix soit proposé à l’utilisateur .


Exemple de deux choix conditionnés

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TagClass xmlns="http://flower.com/docs/domain/tagclass" xmlns:ns4="http://flower.com/docs/domain/i18n">

	<!-- ...  -->
	
	<allowedValues symbolicName="ADP2" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ConditionalAllowedValue">
		<conditions>ma condition</conditions>
		<displayNames language="FR">
			<ns4:value>ADP2</ns4:value>
		</displayNames>

		<allowedValues symbolicName="Generic">
			<displayNames language="FR">
				<ns4:value>Générique</ns4:value>
			</displayNames>
		</allowedValues>
		<allowedValues symbolicName="Manager">
			<displayNames language="FR">
				<ns4:value>Manager</ns4:value>
			</displayNames>
		</allowedValues>
		
	</allowedValues>

	<!-- ...  -->
	
</TagClass>

Conditions sur les champs

Les conditions peuvent porter sur les champs d’un composant ou d’un formulaire de recherche. Elles se composent d’un identifiant, d’un opérateur et d’une valeur.

Tags

Afin d’identifier le tag sur lequel porte la condition, il est nécessaire d’utiliser une chaîne de caractères du type ${tags.<tag_id>}<tag_id> est l’identifiant du tag.

Pour les tags, les opérateurs == ou != peuvent être utilisés pour indiquer respectivement la présence ou la non-présence d’une valeur.

Typiquement les différents types de condition supportés pour les tags sont les suivants :

  • ${tags.<tag_id>}==X : Tag existant et contenant (au moins) la valeur X
  • ${tags.<tag_id>}!=X : Tag inexistant ou ne contenant pas la valeur indiquée par X
  • ${tags.<tag_id>}== : Tag inexistant ou tag sans valeur ou tag avec une valeur vide
  • ${tags.<tag_id>}!= : Tag existant avec au moins une valeur non vide


Ces conditions s’appliquent seulement sur des tags affichés dans le formulaire d’indexation ou de recherche.


Exemple : Conditions sur un tag BAL avec la valeur Service1

${tags.BAL}==Service1

ou

${tags.BAL}!=Service1

Classe

Afin d’indiquer qu’une condition porte sur la classe de composants, il est nécessaire d’utiliser une chaîne de caractères du type ${data.classid}.

Pour ce type de condition, les opérateurs == ou != peuvent être utilisés pour indiquer respectivement la précense ou la non-présence d’une valeur.


Exemple : Conditions sur la classe de composants Envelope

${data.classid}==Envelope

ou

${data.classid}!=Envelope

Conditions liées à l’utilisateur

Les conditions sur l’utilisateur permettent de restreindre l’utilisation de choix en fonction des autorités de l’utilisateur connecté. Les autorités d’un utilisateur correspondent à l’ensemble composé de:

  • l’identifiant de l’utilsateur
  • ses groupes LDAP
  • les équipes auxquelles il appartient


Exemple :

${user.authorities}.contains("Employees")

Les tags de type DATE permettent de définir des dates.

La valeur stockée est un timestamp soit le nombre de millisecondes écoulées depuis le 1er janvier 1970. Dans le cas d’une date antérieure, il s’agit d’un nombre négatif.

Les catégories de tags permettent de regrouper, à l’affichage, des tags ayant un lien logique.

Chaque catégorie de tag permet de définir :

  • Des libellés internationalisés
  • Les tags contenus dans la catégorie
  • Une icône basée sur la police d’écriture Font Awesome (exemple : fas fa-star)
  • Une description
  • Si la catégorie est repliée par défaut

Pour être affichée, une catégorie doit être reliée à une classe de composants. Les tags définis dans une catégorie et non-référencés au niveau de la classe ne sont pas affichés et permettent de définir des catégories de tags réutilisables sur différentes classes de composants.


Exemple

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:TagCategory icon="flower-button header-icon fa fa-envelope flat-purple"
	description="Renseignez les informations d'identification du pli" visible="true" inline="false" reduced="false"
	xmlns="http://flower.com/docs/domain/common" xmlns:ns2="http://flower.com/docs/domain/i18n"
	xmlns:ns3="http://flower.com/docs/domain/componentclass">
	<id>InfoCourrier</id>
	<ns3:displayNames language="FR">
		<ns2:value>Informations concernant le courrier</ns2:value>
	</ns3:displayNames>
	<ns3:displayNames language="EN">
		<ns2:value></ns2:value>
	</ns3:displayNames>
	<ns3:tags>DateCourrier</ns3:tags>
	<ns3:tags>ObjetCourrier</ns3:tags>
</ns3:TagCategory>


Note : Ces catégories de tags sont accessibles via les interfaces TagCategoryService et TagCategoryDAO