Projet

General

Profil

Data Models and Forms

Introduction

Ce document présente le paramétrage et l'administration de modèle de données et formulaires pour le progiciel beCPG. Elle est destinée aux administrateurs du progiciel beCPG.
Une vidéo présente la création de modèles et de formulaires.

Modèle de données (manuellement)

Il est possible d'enrichir le modèle de données de beCPG en ajoutant :
  • Des propriétés: valeur de type texte, entier, listes de valeurs etc...
  • Des associations: association vers un type d'objet
  • Des types d'objets: composé de plusieurs propriétés et/ou associations
  • Des aspects: groupe de propriétés et/ou associations pouvant être ajoutées à un type d'objet. Cela permet de réutiliser un groupe de propriétés commun à plusieurs types d'objet, par exemple un groupe de propriété « Produit vendable ».

Cela nécessite des connaissances en XML et en modélisation de contenu.

Fichiers

La modification du modèle de données nécessite la modification de 3 fichiers :
  1. <installLocation>/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/becpg-{$client}-core/model/{$client}Model.xml pour modifier le modèle de données (ajout de propriétés, associations)
  2. <installLocation>/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/becpg-{$client}-core/model/{$client}Model.properties pour définir les libellés des propriétés
  3. <installLocation>/tomcat/webapps/share/WEB-INF/classes/alfresco/{$client}-form-config.xml pour définir la mise en forme des formulaires d'édition et de consultation

où {$client}, est le nom du client.

Les fichiers modifiés Model.xml et Model.properties peuvent être copiés dans le répertoire <installLocation>/tomcat/shared/classes/alfresco/extension/ pour faciliter l'identification des fichiers modifiés. La convention de nommage est la suivante :
  • ext-{$client}Model.xml
  • ext-{$client}Model.properties

Le fichier modifié -form-config.xml peut être copié dans le répertoire <installLocation>/tomcat/shared/classes/alfresco/web-extension pour faciliter son identification. La convention de nommage est la suivante :
ext-{$client}-form-config.xml

Pour que les modifications soient prisent en compte, il faut redémarrer l'application via la commande :
sudo service alfresco restart

Paramétrage d'une propriété

Les types de propriété sont :

  • d:date
  • d:text
  • d:content
  • d:int
  • d:long
  • d:any
  • d:float
  • d:datetime
  • d:double
  • d:boolean
  • d:category
  • d:noderef
  • d:path

Une propriété est définie par :

  <property name="...">
    <type>Type de données</type>
    <mandatory>obligatoire ou non</mandatory>
    <multiple>Valeur multiple ou non</multiple>
    <default>Valeur par défaut</default>
    <constraints>
       <constraint ref="ID" />
    </constraints>
  </property>

Exemple :

<property name="bcpg:productType">
    <type>d:text</type>
    <mandatory>true</mandatory>
    <multiple>true</multiple>
    <constraints>
    <constraint ref="bcpg:systemProductType" />
    </constraints>
</property>

Paramétrage d'une contrainte

Les contraintes sont définies dans la section <contraints/> du fichier {$client}Model.xml.
Voici des exemples de contraintes :

  • Expression régulière
    <constraint name="test:regex1" type="REGEX">
           <parameter name="expression"><value>[A-Z]*</value></parameter>
           <parameter name="requiresMatch"><value>false</value></parameter>
    </constraint>
    
  • Longeur Min/Max
    <constraint name="test:stringLength1" type="LENGTH">
            <parameter name="minLength"><value>0</value></parameter>
            <parameter name="maxLength"><value>256</value></parameter>
    </constraint>
    
  • Nombre Min/Max
    <constraint name="test:minMax1" type="MINMAX">
            <parameter name="minValue"><value>0</value></parameter>
            <parameter name="maxValue"><value>256</value></parameter>
    </constraint>
    
  • Liste de valeurs
    <constraint name="test:list1" type="LIST">
            <parameter name="allowedValues">
                <list>
                    <value>ABC</value>
                    <value>DEF</value>
                </list>
            </parameter>
            <parameter name="caseSensitive"><value>true</value></parameter>
    </constraint>
    

Plus de détails : https://community.alfresco.com/docs/DOC-5014-content-model-constraints

Aspects

Un aspect est un groupe de propriétés ou d'association qui peut être appliqué à un type.
Un aspect peut être obligatoire ou pas.

     <aspect name="cm:auditable">
         <title>Auditable</title>
         <properties>
            <property name="cm:created">
               <type>d:datetime</type>
            </property>
            <property name="cm:creator">
               <type>d:text</type>
            </property>
            <property name="cm:modified">
               <type>d:datetime</type>
            </property>
            <property name="cm:modifier">
               <type>d:text</type>
            </property>
            <property name="cm:accessed">
               <type>d:datetime</type>
            </property>
         </properties>
</aspect>

L'ajout d'un aspect obligatoire à un type se fait dans la section <mandatory-aspects/>.
Exemple :

<type name="XXX">
    <parent>YYY</parent>
    <mandatory-aspects>
        <aspect>ZZZ</aspect>
    </mandatory-aspects>
</type>

Où ZZZ est l'aspect obligatoire défini sur le type XXX.

Logs

Le fichier de log se trouve dans le répertoire suivant du serveur :
/var/log/alfresco/alfresco.log

Formulaires de consultation, édition, création et recherche

Les formulaires sont définis dans le fichier :

<installLocation>/tomcat/webapps/share/WEB-INF/classes/alfresco/{$client}-form-config.xml

Par formulaire, on entend :
  • Formulaire de création
  • Formulaire d'édition
  • Formulaire de consultation
  • Formulaire de recherche
  • Formulaire d'édition multiple

Un formulaire est défini par :
Le type de formulaire :

  • Création
    <config evaluator="model-type" condition="bcpg:finishedProduct">
      <forms>
        <form id="create">
    
  • Edition
    <config evaluator="node-type" condition="bcpg:finishedProduct">
    
  • Recherche
    <config evaluator="model-type" condition="bcpg:product">
       <forms>
          <form id="search"/>
    
  • Edition multiple
    <config evaluator="model-type" condition="bcpg:product">
       <forms>
         <form id="bulk-edit"/>
    
  • Le type d'objet
    <config evaluator="node-type" condition="bcpg:finishedProduct">
    
  • Les champs affichés dans la section <field-visibility/>
    <show id="bcpg:legalName" />
    
  • La mise en forme dans la section <appearance/>
    <field id="bcpg:meatCharacts" set="charact">
        <control template="/fr/becpg/components/form/controls/textarea.ftl" >
            <control-param name="rows">4</control-param>
        </control>
    </field>
    

Où :
« set » défini le regroupement de champs
« template » défini le template Freemarker utilisé pour afficher le champ, si rien n'est défini, le système prend le template par défaut
« control-param » défini un paramètre du template Freemarker

Plus de détails : http://wiki.alfresco.com/wiki/Forms

Modèle de données (designer)

Le designer de modèle de beCPG permet de créer des modèles de données et des formulaires.
On y accède depuis le bandeau supérieur avec le rôle administrateur.

Le designer ce compose de trois panneaux :

  • le panneau de gauche comprend un arbre représentant le modèle et un arbre représentant les formulaires
  • le panneau central présente les formulaires d'édition des modèles et formulaires
  • le panneau de droite présente une palette de regroupement et de contrôle

Le choix du fichier de modèle et de formulaire à afficher ce fait grâce au menu déroulant dans la barre d'outil du panneau de gauche.

L'arbre des modèles permet de créer des types, aspects, propriétés et contraintes en ce positionnant dans l'arbre et en pressant le bouton Nouvel enfant. Le choix du type d'élément a créer est demandé ainsi qu’éventuellement du modèle à utilisé.

Une fois le modèle créé ou modifié, à la racine du modèle, pressez le bouton publier.

Notes :
  • Tous les champs obligatoires doivent être renseignés
  • Un type peut être supprimé si aucun élément dans l'entrepôt et dans la corbeille ne possède ce type
  • Une propriété peut être supprimée si aucun élément dans l'entrepôt et dans la corbeille ne possède cette propriété
  • Une propriété ne peut être modifiée que par surcharge du type ou de l'aspect

La création d'un formulaire s'effectue par glisser déposer d'un type dans l'arbre des formulaires ou grâce au bouton nouvel enfant. L'association de contrôle à des champs ou de regroupement de champs ce fait par glisser déposer depuis la palette vers la zone correspondante dans le panneau centrale.

Pour publier le formulaire placez vous à la racine de l'arbre formulaires et cliquez sur publier.

L’aperçu s'effectue en sélectionnant dans l'arbre de modèle un type et en cliquant sur le bouton « Aperçu ». Le type doit être publié. Le formulaire ayant l'identifiant « create » associé au type doit être publié.