Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 426 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562 Warning: call_user_func_array() expects parameter 2 to be array, null given in /var/www/virtual/wiki.freedom-ecm.org/inc/parserutils.php on line 562

Manuel d'administration des documents

index du manuel

Les droits applicatifs

Les droits applicatifs doivent être enregistrés avec l'application ACCESS (Gestion des accessibilités). Ils permettent de définir des droits sur les actions applicatives. Ils ne s'appliquent pas aux documents mais seulement aux actions dans leur ensemble.

FDL - Bibliothèque FREEDOM

Nom Définition
NORMAL Autorise l'envoi des documents par mail. Permet l'aide à la saisie. À activer si GENERIC ou FREEDOM et activé.
EXPORT Autorise l'exportation de dossiers ou de recherches. Doit être utilisé en correlation avec FREEDOM_MASTER.
FAMILY Autorise la modification des paramètres pour les documents famille. Doit être utilisé en correlation avec FREEDOM_MASTER.



GENERIC - Manipulation d'une famille

Nom Définition
GENERIC_READ Accès aux documents en lecture seule. Aucune fonction de modification n'est autorisée.
GENERIC Accès à la modifications des documents.
GENERIC_MASTER Accès à l'ajout de catégories et à l'import de document



ONEFAM - Manipulation groupement de familles

Nom Définition
ONEFAM_READ Accès à la liste de famille défini par l'administrateur en lecture seule
ONEFAM Accès à une liste personnelle modifiable par l'utilisateur
GENERIC_MASTER Accès en écriture à la liste administrative



FREEDOM - Gestion documentaire

Nom Définition
FREEDOM_READ Accès aux documents en lecture seule. Aucune fonction de modification n'est autorisée.
FREEDOM Accès à la modifications des documents et des plans de classements
FREEDOM_MASTER Accès aux fonctions d'import/export. Accès à la définition des attributs de familles
FREEDOM_GED Accès à l'interface principale de Gestion documentaire



Famille

Création d'une famille

Créer une nouvelle famille depuis l'interface Web

Pour créer une nouvelle famille, il faut :

  • Aller dans le module “Gestion documentaire”
  • Sélectionner le menu “Création / Famille”
  • Indiquer de quel famille la nouvelle famille doit hériter
  • Indiquer le nom de la famille
  • Cliquer sur “Créer une nouvelle famille”
  • Faire un clic droit sur la nouvelle famille et sélectionner le menu “Éditer les attributs”

La fenêtre d'édition présentent les attributs de la famille et les attributs hérités qui sont non modifiables.

En bas du tableau, trois nouveaux attributs peuvent aussi être ajoutés. Si vous voulez en ajouter plus de trois il faut le faire trois par trois. Une fois les trois premiers saisis, il faut valider et faire :

  • Clic droit sur la famille
  • Menu “Éditer les attributs”

Présentation des champs de base nécessaires à la création d'une famille

Champ Description
Identificateur ou IDNom interne de l’attribut. Il sert de référence lors des définitions des fonctions et des liens. Cet item n’est plus modifiable une fois crée. Cet identificateur doit être unique dans l’ensemble des familles.
OrdreDéfini l’ordre de présentation des attributs dans le document. Cet ordre n’est pas utile pour les attributs de type frame.
NomTexte court définissant l’attribut. Ce texte est utilisé pour désigner l’attribut lors de la visualisation ou de l’édition.
TypeDéfini le type syntaxique de l’attribut (text, htmltext, frame, date, time,…)
Cadre ou fenêtreDéfini le cadre dans lequel l’attribut doit être présenté. Il faut auparavant avoir défini les cadres.
Résumé ou R?Si vous voulez que l’attribut soit affiché dans le mode colonne ou dans les aperçus de documents dans l’application GENERIC, il faut cocher la colonne ‘R?’.
Titre ou T?Le titre d’un document peut être composé par les valeurs d’un ou de plusieurs attributs. Il faut au moins mettre un des attributs en titre en cochant la colonne “T?”.
Obligatoire ou O?Indique si l’attribut est obligatoire lors de la saisie.
Visibilité ou ViIndique dans quel cas l’attribut est affiché.

Exemple d'une famille simple

Cet exemple est celui de la famille “de base” :

ID ordre Nom type fenêtre R? T? O? Vi
fr_basic0basiqueframe- W
ba_title1titretextbasic xxO

Commentaires :

  • La première ligne permet de définir le cadre (bordure qui entoure les champs)
  • La deuxième ligne permet de définir un champ de type “text” qui sera affiché dans la vue résumé et utilisé dans le titre du document. Ce champ est obligatoire

Remarque : Pour avoir d'autres exemples, le plus simple est de regarder le paramétrage des familles disponibles en standard

Fonctionnement de l'héritage entre les famille

Les familles sont soumises à une hiérarchie. On peut ainsi définir des familles spécialisées à partir de définition plus générale, on parle alors d’héritage.

Par exemple, Nous avons la famille “société” dans laquelle figure toutes les coordonnées d’une entreprise et on souhaite définir une famille “site” qui permettra de visualiser les différents sites de cette entreprise. Nous allons donc créer la famille “site” à partir de la famille “société”. On dit alors que la famille “site” hérite de la famille “société” et de tous ses attributs. La famille héritée pourra alors être modifiée pour caractériser précisément les sites de l’entreprise.

Créer une famille sous OpenOffice.org et l'importer dans Freedom

L'interface Web sert juste à ajuster les attributs d’une famille. Pour accéder à toutes les possibilités d'une famille, il faut la créer dans OpenOffice.org et l'importer dans Freedom. Tout est expliqué dans ce chapitre :

Modification d'une famille

Modifier une famille depuis l'interface Web

Pour modifier une famille, il faut :

  • Aller dans le module “Gestion documentaire”
  • Sélectionner la recherche “les familles”
  • Sélectionner la famille à modifier
  • Faire un clic droit sur la famille et sélectionner le menu “Éditer les attributs”

Ajouter un attribut

L’ajout d’attribut se fait sans condition en utilisant les trois dernières lignes de l’interface “éditer les attributs”.

Modifier un attributs père

Pour modifier un attribut hérité donc normalement non modifiable, il faut créer un nouvel attribut (nouvelle ligne) ayant le même identifiant que l'attribut à modifier.

Il est nécessaire de redéfinir toutes les propriétés de l’attribut.

L’attribut modifié perd toute relation avec l’attribut défini dans ses ancêtres. Si les propriétés de l’attribut de l’ancêtre sont modifiés, l’attribut fils modifié n’est pas impacté.

Voici un exemple avec une nouvelle famille basée sur la famille “de base”

^ ID^ ordre^ Nom^ type^ fenêtre^ R?^ T?^ O?^ Vi ^

fr_basic0basiqueframe- W
ba_title1titretextbasic xxO
ba_title1Mon nouveau titrelongtextbasic xxW

Dans ce cas, le champ “titre” ne sera plus visible car il sera remplacé par le champ “Mon nouveau titre”

Supprimer un attribut

On ne peut pas supprimer les attributs crées. Par contre on peut les rendre invisibles en affectant leur visibilité à H (invisible).

Supprimer un attribut père

Si on ne veut pas hériter d’un des attributs des ancêtres, il faut :

  • Créer un nouvel attribut ayant le même identifiant (comme pour modifier un attribut)
  • Rendre se nouvel attribut invisible (comme on le fait pour la suppression de ses propres attributs)

Paramétrage d'une famille

Dossier par défaut d'une famille

Le dossier par défaut sert à savoir où ranger le nouveau document créé s’il n’y a pas eu de dossier sélectionné dans l’arborescence.

Ce dossier sert de dossier racine dans l’application ONEFAM (Gestion par famille). Si une famille a un dossier par défaut, elle peut être gérée par l’application ONEFAM.

Icône de la famille

Pour changer l'icône d'une famille, il faut :

  • Faire un clic droit sur la famille et sélectionner le menu “Changer d'icône”
  • Cliquer sur “Parcourir” et sélectionner une image sur le disque dur
  • Cliquer sur le bouton “Importer”

Les attributs de base d'une famille

Ce chapitre donne la description des colonnes de base permettant de créer ou modifier des familles.

Dans les chapitres suivants vous trouverez la description des autres colonnes pour réaliser des aides à la saisie, des menus,..

Rappel : Pour accéder à la modification d'une famille, il faut faire un clic droit sur la famille et sélectionner le menu “Éditer les attributs”

Colonne "Identificateur" ou "ID"

Nom interne de l'attribut.

Il sert de référence lors des définitions des fonctions et des liens. Cet item n'est plus modifiable une fois crée car il peut être utilisé dans les parties spécifiques de la famille.

Cet identificateur doit être unique dans l'ensemble des familles. Il est conseillé de préfixer chacun des attributs par un trigramme identifiant la famille afin de bien percevoir les attributs par famille.

Colonne "Ordre"

Défini l'ordre de présentation des attributs dans le document. Cet ordre n'est pas utile pour les attributs de type frame.

Colonne "Nom"

Texte court définissant l'attribut. Ce texte est utilisé pour désigner l'attribut lors de la visualisation ou de l'édition.

Colonne "Type"

Défini le type syntaxique de l'attribut. Les types de base sont :

Type Description
text texte court sur une ligne
longtext texte long sur plusieurs lignes
htmltext texte formatable
frame cadre dans lequel les attributs sont présentés
date défini un attribut date de la forme JJ/MM/AAAA
time heures et minutes
timestamp date, heures et minutes
password texte caché. Il est non visualisable. Des étoiles remplacent les caractères saisis.
file fichier à télécharger.
image image à télécharger. Formats image supportés : GIF, JPEG, PNG.
integer nombre entier
double nombre réel
money nombre réel avec 2 chiffres après la virgule
enum liste énumérée
docid(”[ID_DE_FAMILLE]”) Lien vers un document de la famille ID_DE_FAMILLE 1)
docid identifiant de document2)
color code RGB (rouge/vert/bleu) en hexadécimal (ex: #FF0000 pour rouge) “
ifile fichier intégré. Utilisable pour les petits fichiers afin d’être visualisé directement dans le document.
idoc document intégré.3)
menu lien vers une autre page.
1) si ID_DE_FAMILLE n'existe pas lien vers n'importe quel document
2) Déprécié
3) plus maintenu

Formater les attributs

Pour les attributs “text” un formatage du type (style langage C) peut être ajouté. Par exemple :

  • text(”%s environ”) “pour postfixer environ après la valeur,
  • text(”<B>%s</B>”) “pour afficher l'attribut en gras.

Ceci est aussi valable pour les type “int” ou “double”

  • double(”%.02f”) : pour afficher un nombre avec 2 décimales
  • integer(”%d m²”) : pour afficher (100 m²).
  • double(”%.02f &#37”) : pour afficher le signe pourcentage après le nombre

Pour les attributs “date”,”time” et “timestamp” un formatage (style langage C ”strftime”) peut être ajouté. Par exemple :

  • time(”%H:%M:%S”) pour afficher aussi les secondes,
  • timestamp(”%A %d %B %Y %X”) donne « samedi 08 janvier 2005 10:13:00 ».

Colonne "Cadre" ou "fenêtre"

Défini le cadre dans lequel l'attribut doit être présenté. Il faut auparavant avoir défini les cadres.

Colonne "Résumé" ou "R?"

Si vous voulez que l'attribut soit affiché dans le mode colonne ou dans les aperçus de documents dans l'application GENERIC, il faut cocher la colonne 'R?'.

Colonne "Titre" ou "T?"

Le titre d'un document peut être composé par les valeurs d'un ou de plusieurs attributs. Il faut au moins mettre un des attributs en titre en cochant la colonne “T?”. Le titre est composé en concaténant les valeurs des attributs titre suivant l'ordre donné.

Si vous modifiez la définition du titre, il est nécessaire d'utiliser la fonction Bash (“freedom_refresh”) pour que les documents déjà créés aient leur titre modifié.

Colonne "Obligatoire" ou "O?"

Indique si l'attribut est obligatoire lors de la saisie.

Colonne "Visibilité" ou "Vi"

Cet attribut détermine dans quel cas l'attribut est affiché. La visibilité est :

Code Description
W attribut visible en lecture et modifiable en édition.
R attribut visible en lecture seulement. Généralement ce sont des attributs calculés.
H attribut caché. Généralement ce sont des attributs servant soit au calcul, soit à la génération des liens. Leur valeur n’est généralement pas exploitable directement.
O attribut modifiable en édition mais non visible en lecture. Généralement utilisé en corrélation avec les attributs de type menu.
S attribut visible en lecture et en édition, mais non modifiable en édition
U uniquement pour le type array. Interdit l'ajout et la suppression de rangées dans le tableau (version >= 2.7.4). Correspond à “tableau statique”.
I invisible : l’attribut n’est pas présent en consultation et en édition dans le document. Un attribut de visibilité I n'est pas modifiable (méthode Doc::setValue inactive). Pour en modifier la valeur, il est nécessaire d'appliquer un masque de saisie modifiant sa visibilité

.

Les types d'attributs de mise en page

Pour positionner les champs dans une famille, il existe 3 types d'attributs particulier :

  • frame : Un attribut de type “frame” permet d'ajouter une bordure et un titre pour regrouper des champs similaires
  • array : Un attribut de type “array” permet de créer des tableaux
  • tab : Un attribut de type “tab” permet de créer des onglets

Attribut de type "frame" - Regroupement de champs

L'attribut de type “frame” permet d'ajouter une bordure et un titre autour des champs.

Dans cet exemple, les deux champs de type “text” seront entourés par une bordure dont le titre est “Exemple de Frame” :

ID fenêtre Nom T? R? type Ordre Vi O?
demo_frame - Exemple de Frame frame 1 W
demo_text1 demo_frame Texte 1 text 2 W
demo_text2 demo_frame Texte 2 text 3 W

Pour paramétrer une famille, il faut donc commencer par définir les différentes frames et ensuite il faut placer les champs dans les frames créées en utilisant la colonne “fenêtre”

Remarques :

  • Si vous souhaitez placer des frames l'une à coté de l'autre et non pas l'une en dessous de l'autre, il faudra créer une vue particulière comme expliqué dans ce chapitre.
  • Si vous souhaitez supprimer la bordure et le titre de la frame, il faudra également créer une vue particulière.

Attribut de type "array" - Création de tableaux

L'attribut de type “array” permet de construire un attribut qui contient une liste de tuples composés de un ou plusieurs attributs.

ID fenêtre Nom T? R? type Ordre Vi O?
demo_frame - Exemple de Frame frame 1 W
demo_fichiers demo_frame Fichier(s) array 2 W
demo_fichier demo_fichiers Fichier file 3 W
demo_comment demo_fichiers Commentaire text 3 W

Dans cette exemple, on a un attribut “demo_fichiers” de type array qui contiendra une liste de couples { fichier, champ commentaire }. On a donc une liste de fichiers avec leur commentaire associé :

Fichier(s)
Fichier Commentaire
+/- fichier1 commentaire 1
+/- fichier2 commentaire 2
+/- etc. etc.

Chaque ligne sera préfixé de boutons pour ajouter/supprimer une ligne.

Attribut de type "tab" - Création d'onglets

FIXME : Ajouter des exemples d'utilisation de l'attribut de type “tab”

Les attributs énumérés

But

Les attributs énumérés peuvent être utilisés pour définir un ensemble fini de choix de valeurs pour un attribut. On distinguera les attributs énumérés simples (type “enum”) pour le choix d'une seule valeur parmi l'ensemble des choix, des attributs énumérés multiples (type “enumlist”) pour le choix de plusieurs valeurs possibles.

L'ensemble des valeurs est une suite de couples <clef>|<label> séparés par des virgules. Le label est le texte qui est présenté sur l'interface; la clef la valeur qui est stockée en base de données. On peut ainsi modifier les labels sans pour autant changer la clef. La suppression d'une clef implique que c'est directement la clef qui sera affichée (les valeurs en base de données ne sont pas supprimées).

Par défaut un menu de filtrage sur les valeurs de cet attribut est ajouté dans la barre du haut pour toutes applications dérivées de GENERIC.

Mise en place

Deux options sont disponibles pour les énumérés bmenu et system. Si bmenu égal no, le menu supplémentaire ne sera pas affiché. Si system égal yes, les valeurs définies seront écrasées par les nouvelles valeurs définies. Par défaut, les valeurs des énumérés une fois initialisées ne sont pas modifiables lors de la redéfinition d'une famille.

Par défaut les attributs énumérés sont présentés à l'édition par une liste déroulante pour les énumérés simples et une liste à sélection multiple pour les énumérés multiples.

Plusieurs formats de sélection sont possibles :

  • pour les énumérés simples :
    • vcheck : boutons radio (exclusifs) alignés verticalement
    • hcheck : boutons radio alignés horizontalement
    • auto : liste déroulante filtrante
    • bool : un seul bouton boîte à cocher (checkbox). Utilisable seulement pour les énumérés à 2 valeurs. Si la boîte n'est pas cochée, c'est la première valeur qui est affectée à l'attribut, et inversement.
  • pour les énumérés multiples :
    • vcheck : boîtes à cocher alignées verticalement
    • hcheck : boîtes à cocher alignées horizontalement
    • auto : liste déroulante filtrante

Le format sera décrit par l'option 'eformat'. Pour indiquer qu'un énuméré est multivalué on indiquera 'multiple=yes' dans les options.

Restriction: les énumérés multiples ne peuvent pas être utilisés dans les tableaux.

Pour les énumérés simples, si la valeur par défaut n'est pas spécifiée, c'est le premier choix qui est présenté. Si on veut donner la possibilité de ne rien choisir, il faut ajouter un élément qui a pour valeur espace (red|rouge, |sans avis). La sélection de 'sans avis' aura pour conséquence la suppression de la valeur de l'attribut.

idattr (ou ID) label (ou Nom) type phpfunc (ou ft) options
TST_COLOR1 ma couleur préférée enum red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no
TST_COLOR2 la couleur du vase enum red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no¦eformat=hcheck
TST_COLOR3 la couleur de la table enum red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no¦eformat=vcheck
TST_COLOR4 aimez-vous le vert ? enum red¦rouge,green¦vert bmenu=no¦eformat=bool
TST_COLOR5 les couleurs de la fleur enumlist red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no
TST_COLOR6 les couleurs de l'arbre enumlist red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no¦eformat=hcheck
TST_COLOR7 les couleurs du ciel enumlist red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no¦eformat=vcheck


La liste des choix peut aussi être fournie par une fonction PHP ce qui permet une réutilisabilité et une plus grande dynamique dans les choix proposés. Cette fonctionnalité est décrite dans le manuel de programmation.

Type ouvert

etype=open

Les énumérés de type 'ouvert' permettent aux utilisateurs de rajouter des entrées dana la liste des choix possibles. Si l'utilisateur a le droit d'éditer le document il a le droit de rajouter une entrée dans l'énuméré. Par contre, il ne pourra pas l'enlever directement. Seul l'administrateur pourra supprimer/corriger les entrées de cet énuméré.

Type libre

etype=free

Les énumérés de type 'libre' permettent aux utilisateurs de choisir un autre choix que ceux proposés. Ce choix libre n'est pas ajouté à la liste des entrées.

Créer ou modifier des énumérés avec l'interface Web

Pour créer ou modifier les énumérés avec une une interface Web, il faut :

  • Faire un clic droit sur la famille et sélectionner le menu “Éditer les énumérés”
  • Cliquer sur le bouton correspondant à l'énuméré à modifier
  • Utiliser l'interface, pour ajouter, modifier ou supprimer des énumérés

Il est aussi possible de créer des sous-listes dans l'énumération grâce à l'interface web. Il suffit pour cela:

  • De créer un nouvel énuméré
  • Le deplacer grâce au flèche en dessous de l'énuméré titre
  • Le deplacer vers la droite ou la gauche pour changer son niveau

Fichier de test

Ce fichier contient un exemple de famille utilisant des attributs énumérés.

Vous pouvez suivre les instructions de cette page pour importer cette famille dans Freedom.

Aide à la création de champs enum

Si votre champ enum comporte de nombreuses entrées, cette macro OOo vous aidera à créer votre champ.

Localisation

Le texte peut être traduit. S'il contient le caractère ”,” ou ”.”, alors il faut précéder ce caractère de ”/”.

Créer un lien hypertexte

But

L'hyperlien sert à afficher une URL dans la fenêtre courante à partir de l'attribut. L'hyperlien peut être une simple URL statique (”http://www.meteo.fr”). L'URL peut être décrite avec des paramètres issus du document.

Création d'un hyperlien

Les références aux attributs du document sont écrites entre les caractères % en indiquant l'identifiant de l'attribut.

Soit l'attribut US_MAIL définissant le mail d'une personne. Pour déclencher l'édition d'un mail vers une personne il suffit de mettre l'hyperlien suivant :

mailto:%US_MAIL%

Autre exemple, soit l'attribut SI_TOWN indiquant la ville de la famille société. Pour avoir la météo de la ville il suffit de mettre l'hyperlien suivant :

http://www.viamichelin.com/viamichelin/fra/dyn/controller/weatherAmbiguous?strLocation=%SI_TOWN%&strCountry=EUR

Le mot-clef %SI_TOWN% sera remplacé par la valeur de cet attribut. S'il n'y aucune valeur pour un des attributs de l'URL, l'hyperlien ne sera pas affiché (on ne pourra pas cliquer sur l'attribut).

Deux mots-clefs spéciaux peuvent être utilisés pour la composition de l'URL :

  • %S% : est remplacé par l'URL vers FreeDom avec le numéro de session. Il doit être utilisé en début de lien.
  • %I% : est remplacé par le numéro de référence du document.

Les propriétés du document peuvent aussi être utilisées comme %FROMID% par exemple afin d'avoir l'identifiant de la famille du document.

Création d'une relation entre documents

Relation simple

Pour créer une relation entre deux documents nous utiliserons le type 'docid'. Pour créer une relation entre le document et un document de la famille 'X' nous déclarerons l'attribut suivant

id type visibility
MA_RELATION docid(“X”) W

Cela donnera en édition une aide à la saisie classique vers un document de la famille X. En consultation l'utilisateur verra le titre du document lié avec un hyperlien vers celui-ci. Si la famille n'est pas précisé dans le type l'aide à la saisie ne sera pas proposée.

Par contre, seul la n° du document sera stocké et donc l'utilisateur ne pourra pas rechercher par le titre. Si vous voulez que cette relation soit recherchable par le titre il faut rajouter l'option doctitle.

id type visibility options
MA_RELATION docid(“X”) W doctitle=auto

Cela créera automatiquement un deuxième attribut 'MA_RELATION_TITLE' qui sera caché mais disponible à la recherche. Il contiendra le titre de la relation.

Relation détaillé

L'aide à la saisie peut être personnalisée. Les documents ci-dessous donne plus d'explications sur la création de liens entre documents :

Soit US_IDSOC l'attribut identifiant le document société de la famille personne. Pour créer un hyperlien vers le document lié il faut saisir l'URL suivante :

%S%app=FDL&action=FDL_CARD&id=%US_IDSOC%

Cette URL indique que l'application FREEDOM va effectuer l'action FDL_CARD (affichage d'un document) dont l'identificateur est celui défini dans l'attribut US_IDSOC.

Il est possible d'indiquer un texte lorsque le curseur est sur le lien en utilisant l'option “ltitle”.

Link Options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltitle=détail de la société

Créer un extra lien

L'extra lien permet d'afficher un bouton supplémentaire lors de l'édition d'un document. Ce bouton est spécifié par un lien comme pour les hyperlien défini ci-dessus. Cet extra-lien est utilisé le plus souvent pour que l'utilisateur crée ou modifie un document secondaire lors de l'édition d'un document principal.

Il est possible de préfixer le lien pour changer le caractère sur la bouton (par défaut '+') et le texte surgissant affiché.

id type vislink eLink Options
MA_RELATION docid(“FACT”) W %S%app=GENERIC&action=GENERIC_EDIT&classid=FACT&id=%MA_RELATION% eltitle=éditer une facture¦elsymbol=$

L'exemple ci-dessus affichera le bouton '$' avec le texte surgissant « éditer une facture ». Le lien GENERIC_EDIT est l'action par défaut d'édition de document.

Créer une entrée de menu contextuel

FIXME : Ce document donne d'autres informations concernant la modification des menus.

But

Ces attributs permettent d'ajouter des actions particulières dans le menu contextuel du document. Le lien définit l'url qui sera activée lors de la sélection du menu.

Mise en place

FIXME : Chapitre à expliciter

idattr (ou ID) label (ou Nom) type link (ou Lien) phpfunc (ou ft) option
CMC_M_M1 Proposition n°1 menu %S%app=FDL&action=FDL_CARD&id=%CMC_IDPROPO1%
submenu=proposition
CMC_M_M2 Proposition n°2 menu %S%app=FDL&action=FDL_CARD&id=%CMC_IDPROPO2%
submenu=proposition
CMC_M_PROPO Voir la proposition menu %S%app=FDL&action=FDL_CARD&id=%CMC_IDPROPO% ::verifyProposition() lconfirm=yes

La colonne “phpfunc” permet d'indiquer un pré-condition à l'affichage du menu. Cette méthode de l'objet documentatire retourne l'activité possible du lien (actif, inactif, invisible).

Modifier la fenêtre de destination

Par défaut, le résultat de l'activation d'un item de menu s'ouvre dans une fenêtre autonome. Chaque item de menu à sa propre fenêtre de résultat. La fenêtre cliente de destination peut être modifiée en spécifiant le nom de la fenêtre dans l'option “ltarget”.

Exemple, pour avoir le résultat dans la fenêtre 'test' :

link (ou Lien) options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltarget=test


Pour avoir le résultat dans la fenêtre courante on utilisera le nom '_self'

link (ou Lien) options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltarget=_self


Pour avoir le résultat dans une fenêtre différente à chaque activation, on utilisera le nom '_blank'

link (ou Lien) options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltarget=_blank


Demander une confirmation pour une action critique

Si le résultat d'une action menu est critique, une confirmation peut-être demandée avant l'exécution de l'action. Cette confirmation est indiquée en mettant l'option “lconfirm=yes”

link (ou Lien) options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltarget=test|lconfirm=yes


Mettre le menu accessible uniquement avec la touche CTRL

Si l'item du menu ne doit être utilisé que dans de rare occasion, il peut être visible que lors de l'appui conjugué avec la touche 'Ctrl'. On indique cette possibilité en mettant l'option “lcontrol=yes”.

link (ou Lien) options
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% lcontrol=yes
%S%app=FDL&action=FDL_CARD&id=%US_IDSOC% ltarget=test|lconfirm=yes|lcontrol=yes

Fichier de test

Ces fichiers contiennent des exemples de menu :

Vous pouvez suivre les instructions de cette page pour importer ces familles dans Freedom.

Ajouter une aide à la saisie

FIXME : LES DOCUMENTS CI-DESSOUS SONT PLUS COMPLETS ET DEVRAIENT ETRE INTEGRES DANS CE CHAPITRE

But

FIXME

Mise en place du fichier PHP et modification du paramétrage de la famille

Défini le nom du fichier PHP qui contient la fonction décrite ci-après. Ce fichier se trouve sur la machine serveur dans le répertoire

/usr/share/what/EXTERNALS

Les fonctions de base sont décrites dans le fichier “fdl.php”.

Mise en place

Les fonctions d'aide à la saisie doivent être des fonctions PHP décrites dans le fichier défini. Leur spécification est décrite dans le manuel de programmation.

La spécification de l'appel suit la syntaxe suivante :

NomFonction(P1,P2,...):R1,R2,R3,...
  • NomFonction : Nom de la fonction PHP à appeler
  • P1,P2,…: Paramètres de la fonction. Pour ces attributs, il est possible de mettre:
    • D : coordonnée de la base de donnée Freedom
    • I : numéro de référence du document
    • {FAMNAME} : FAMNAME étant le nom interne de la famille. Est remplacé par le numéro de référence de la famille
    • {PARAM} : PARAM étant un identificateur de paramètre. Est remplacé par la valeur du paramètre
    • un chiffre : chiffre mis en argument tel quel
    • chaîne de caractère : mise en argument telle quelle
  • R1,R2,R3,…: Identificateur du ou des attributs à modifier

La fonction d'aide à la saisie calcule une liste de choix en fonction des paramètres “P”. Lorsque l'utilisateur fait son choix les attributs “R” sont modifiés.

Une fonction générale est décrite dans le fichier fdl.php. Elle peut être utilisée pour la recherche et pour lier des documents.

Cette fonction est la suivante

lfamily($dbaccess, $famid, $name, $catgid=0)

(plus d'info sur lfamily)

Elle possède quatre paramètres dont un optionnel :

  • $dbaccess : coordonnées de la base de données
  • $famid : identificateur de la famille recherchée
  • $name : restriction de la recherche au document dont le titre comprend $name
  • $catgid : identificateur de la catégorie, soit le numéro de référence du dossier dans lequel on cherche le document. Zéro indique que la recherche est faite dans toute la base.

La fonction retourne deux paramètres : identificateur du document et titre du document.

Exemple

soit la famille test dont les attributs sont :

  • TST_IDSOC : identificateur de la famille société
  • TST_SOC : nom de la société

on met un hyperlien sur TST_SOC pour pointer sur le document société qui est lié à la famille test:

%S%app=FDL&action=FDL_CARD&id=%TST_IDSOC%

Le fichier de TST_SOC est fdl.php et la fonction d'aide à la saisie est : lfamily(D,SOCIETY,TST_SOC):TST_IDSOC,TST_SOC

ceci permet de choisir parmis les documents de la famille société dont le titre contient ce qui est déjà saisi dans l'attribut TST_SOC. Le choix déclenche la mise à jour de l'identificateur et du titre. Une fois le document validé (ou créé), l'hyperlien sera visible sur l'attribut TST_SOC.

Ajouter un attribut calculé

FIXME A mon avis, le document ci-dessous devrait être fusionné avec ce chapitre :

But

Un attribut calculé est un attribut dont la valeur est défini par une méthode. Cette valeur ne peut pas être modifié directement par l'utilisateur. Par conséquent, ce type d'attribut ne peut pas avoir d'aide à la saisie. Sa visibilité est soit H (caché) soit R (lecture).

Mise en place du fichier PHP et modification du paramétrage de la famille

FIXME

Exemple de fonctions

La définition du calcul se fait dans la même colonne que celle de l'aide à la saisie. Le calcul est effectué en appelant la méthode décrite. La valeur retournée par la méthode est affectée à l'attribut. La définition de l'appel de la méthode commence par '::'. Toutes les méthodes de la classe du document peuvent être appelées (méthodes générales (Classe Doc) et méthodes spécifiques).

Par exemple si on veut qu'un attribut de type 'date' contienne la date du jour on indiquera la méthode suivante.

::getDate()

L'attribut sera remis à jour à chaque rafraîchissement du document (à chaque visualisation complète).

Des paramètres peuvent être ajoutés si la méthode le requiert. Ces paramètres peuvent être des valeurs d'attributs ou des chaînes de caractères quelconques.

::getFutureDate(3)
::getFutureDate(ZOO_DELAY)
::getStrDate(%d/%m/%Y,ZOO_CDATE)

S'il y a plusieurs paramètres, ils doivent être séparés par des virgules.

Le résultat du calcul peut être appliqué à un autre attribut que celui où on a défini le calcul. Cela est utile dans la cas où on utilise un attribut avec aide à la saisie qui sera recalculé avec les paramètres issus de l'aide à la saisie.

Exemple classique : Mettre un hyperlien calculé sur un document:

::getTitle(ZOO_IDDOC1):ZOO_DOC1
idattr label vis link phpfile phpfunc
CMC_IDPROPO id propo H

::getTitle(CMC_IDPROPO):CMC_PROPO
CMC_PROPO proposition W '%S%app=FDL&action=FDL_CARD&id=%CMC_IDPROPO% Ext.php lpropo(D,CMC_PROPO):CMC_IDPROPO,CMC_PROPO

Dans cet exemple, l'utilisateur choisi une proposition avec la fonction d'aide à la saisie. Ceci à pour but de récupérer l'identificateur. Ensuite, cet identificateur est utilisé pour remettre à jour le titre du lien en cas de changement du titre du document lié.

Contraintes d'attributs

But

Certains attributs peuvent faire l'objet de contraintes spécifiques. C'est à dire que la valeur de l'attribut peut être soumis à certaines conditions que ce soit de syntaxe ou plus générales. La contrainte fait appel à une méthode de la classe d'objet documentaire.

Mise en place

idattr label vis link constraint
SI_MAIL couriel W mailto:%SI_MAIL% ::parseMail(SI_MAIL)

On peut comme pour le champ ”phpfunc” mettre comme paramètre à la méthode des attributs du document.

Si la contrainte de l'attribut n'est pas respectée, le document ne peut être enregistré. Par contre, si vous êtes connecté en temps que utilisateur 'admin', un bouton 'Valider!' apparaîtra afin d'outrepasser les contraintes. Seul cet utilisateur peut utiliser et voir ce bouton.




Importation de documents famille

But de ce chapitre

  • Expliquer comment importer des familles dans Freedom en utilisant l'interface Web ou la ligne de commandes.
  • Expliquer comment construire un fichier OpenOffice.org ou .csv permettant de définir les attributs d'une famille à importer.

Masque de création d'une famille sous OpenOffice.org

Vous trouverez dans les chapitres suivants toutes les explications pour créer un fichier .csv ou OpenOffice.org permettant de définir les attributs d'une famille.

Mais pour vous éviter de construire complètement ce fichier, vous pouvez partir de ce fichier OpenOffice.org pour définir vos familles et les importer dans freedom et les exporter depuis freedom.

Si vous voulez juste spécifier les structures de familles pour les importer dans freedom vous pouvez utiliser ce fichier : Spécification des structures

En complément vous pouvez mémoriser cette macro Fdl Color dans votre tableur openoffice afin de mettre en évidence les différents types d'attributs.

Importer des familles en utilisant l'interface Web

Avant d'importer une famille, il est conseillé de suivre le chapitre concernant l'importation de documents en général.

Mais en résumé, voici ce qu'il faut faire :

  • Construire un fichier OpenOffice.org ou .cvs en suivant les instructions des chapitres suivants
  • Se placer dans le module “Gestion documentaire” de Freedom
  • Utiliser le menu “Outils / Importer des documents”
  • Cliquer sur le bouton “Parcourir” et sélectionner le document .csv ou OpenOffice.org
  • Cliquer sur le bouton “Analyse” pour détecter les anomalies
  • Cliquer sur le bouton “Importer les document”

Importer des familles en utilisant la ligne de commandes

Pour importer des familles en utilisant la ligne de commandes, , il est conseillé de lire ce chapitre pour avoir plus d'explications sur l'utilisation de scripts dans Freedom.

Mais en résumé, voici la commande qu'il faut utiliser pour importer un document dans Freedom :

/usr/share/what/wsh.php --api=freedom_import --file=VotreFichier.ods

Remarque : Vous pouvez importer directement un fichier OpenOffice.org .ods ou un fichier .csv

Supprimer une famille

Une fois l'importation d'une famille effectuée, il n'est plus possible de supprimer des attributs ni de les renommer. Vous serez donc certainement amené pendant votre phase de mise au point à supprimer des familles.

ATTENTION : La suppression d'une famille entraîne la suppression de tous les documents de cette famille.

Pour supprimer une famille, vous pouvez consulter ce chapitre

Pour savoir ce qu'il est possible de faire comme modifications sur une famille, il faut suivre ce chapitre.

Description du fichier d'importation

Dans les chapitres suivants, vous trouverez la description complète d'un fichier d'importation. Ce fichier peut-être au format OpenOffice.org ou au format .csv.

Remarque : Une ligne vide ou une ligne commençant par // ne sera pas prise en compte lors de l'importation.

Entête

L'entête défini le titre, le nom et l'héritage de la famille.

1 2 3 4 5 6
// famille portail url titre id class name
BEGINGATE_SERVICEservice url GATESERVICE_URL

Définition des colonnes :

  1. BEGIN
  2. identifiant numérique ou logique de la famille père. Mettre vide s'il n'y a pas d'héritage.
  3. titre de la famille.
  4. identifiant numérique de la famille. Le laisser à vide pour utiliser un identifiant logique. S'il est valué il faut que cet identifiant ne soit pas déjà pris par un autre document. Les valeurs entre 900 et 999 peuvent être utilisée pour vos besoins spécifiques.
  5. le nom d'un fichier de définition de classe PHP qui doit être présent sur le serveur (/home/httpd/what/FDL). Ne sert que pour des documents systèmes. Permet un héritage autre que celui prévu par défaut par les classes documentaire.
  6. nom logique de la famille. Ne doit contenir que des caractères alphanumériques (pas d'espace, ni de ponctuation).

Caractéristiques générales

Les caractéristiques permettent d'affecter les propriétés du documents. La syntaxe est toujours la même : 1ère colonne : nom de la propriété, 2ème colonne valeur de la propriété.

propriété description
TYPE toujours mettre C. Défini la propriété doctype du document. 'C' signifie famille de document.
ICON nom du fichier image définissant l'icône de la famille. Cette icône doit être une image de taille 48×48 pixels. Elle doit être présente sur le serveur. Cette icône peut être modifié à postériori par l'interface. Si une icône est déjà présente pour cette famille, elle ne sera pas modifiée.
PROFID identifiant du document profil pour cette famille. Ce document doit être de la famille 'profil de famille'.
CPROFID identifiant de profil qui sera affecté à tout nouveau document crée par cette famille. Ce document doit être de la famille profil de document. Si la famille hérité de dossier, le document doit être de la famille profil de dossier. Si la famille hérite de recherche, le document doit être de la famille profil de recherche.
DFLDID identifiant du dossier par défaut dans lequel tout nouveau document de la famille sera crée. Peut être égal au 'auto', ce qui a pour effet de créer un dossier par défaut automatiquement. Si cette propriété est déjà renseignée, la nouvelle valeur ne sera pas prise en compte.
METHOD Indique le nom du fichier contenant les méthodes supplémentaires de la famille. Cette propriété peut être utilisé sur plusieurs lignes. Dans ce cas les valeurs de lignes suivant devront être précédée du caractère '+'.
Si on précède le valeur par '*', cela indique que ce fichier n'est pas intégré directement dans la famille; mais qu'il est utilisé comme méthodes héritées. Cela implique que les méthodes définies dans ce fichier peuvent être redéfinies dans un autre fichier méthodes.
WID identifiant du cycle de vie associé à la famille
CVID identifiant du contrôle de vue associé à la famille
SCHAR caractéristique spéciale pour le révision : 'R' : signifie auto révision à chaque modification 'S' : signifie document non révisable
USEFOR caractère désignant une utilisation spéciale. Seulement pour les documents systèmes : 'W' : pour les cycles de vie 'G' : pour les intercalaires de chemise 'P' : pour les profils
TAG caractère désignant une marque applicative. Cette marque peut être utilisé sur plusieurs lignes ce qui a effet d'ajouter une marque. Les documents crées auront aussi cette marque.



Attributs

Les caractéristiques des attributs suivent les explications données au paragraphe 5.1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
idattr idframe label T A type ord vis need link phpfile phpfunc elink constraint option
ATTR US_FR_SEARCHLDAP LDAP Recherche N N frame 0 W
ATTR LDAP_GETINFO US_FR_SEARCHLDAP login LDAP N N text 500 O nu.php searchLDAPinfo(LDAP_GETINFO): US_LOGIN,US_FNAME,US_LNAME esize=20

Définition des colonnes :

  1. ATTR
  2. identifiant de l'attribut
  3. identifiant du cadre ou du tableau englobant
  4. désignation de l'attribut
  5. 'Y' signifie qu'il fait partie du titre, 'N' il ne fait pas partie du titre
  6. 'Y' signifie qu'il fait partie du résumé, 'N' il ne fait pas partie du résumé
  7. type de l'attribut
  8. ordre de l'attribut
  9. visibilité de l'attribut
  10. 'Y' signifie qu'il est obligatoire, 'N' il ne fait pas obligatoire
  11. définition de l'hyperlien
  12. nom du fichier php pour l'aide à la saisie
  13. nom et attributs de la fonction pour l'aide à la saisie ou nom et attributs de la méthode de calcul (précédé de ::) s'il s'agit d'un attribut calculé (visibilité W)
  14. extra lien
  15. nom et attribut de la méthode de contrainte
  16. options de présentation séparées par des '|'.
Options des attributs

Option Description Restriction
esize taille de champs de saisie en caractère pour les attributs de type text
elabel texte du tootips apparaissant lorsque la souris est sur le zone de saisie pour les attributs de type text
ititle texte du tooltip du bouton '…' de l'aide à la saisie. Par défaut : « choisissez une valeur »
submenu nom du sous menu pour les attributs de type menu et action
barmenu mettre à yes si l'affichage nécessite la barre de menu du navigateur pour les attributs de type menu et action
bmenu mettre à no si l'attribut ne doit pas apparaître dans les menus des application GENERIC. pour les attributs de type enum
system mettre à yes si les éléments de l$-1'énuméré doivent être écrasé par la nouvelle définition pour les attributs de type enum
ltitle Texte affichable en popup sur l'hyperlien lorsque la souris passe dessus hyperlien valide
ltarget Nom de la fenêtre destinataire de l'hyperlien. Par défaut _self. hyperlien valide
global Mettre à yes si le lien n'a pas de relation directe avec un document particulier. Dans ce cas, le menu apparaîtra aussi dans le menu 'outils' des applications issues de GENERIC. Ce menu apparaîtra aussi dans le menu contextuel du document famille. pour les attributs de type menu
onlyglobal Mettre à yes si option est déjà global et si vous ne voulez pas que le menu n'apparaisse pas dans le menu contextuel du document mais uniquement dans le menu 'outils' des applications issues de GENERIC. pour les attributs de type menu
lconfirm Mettre à yes pour afficher un message de confirmation avant l'activation du lien pour les attributs de type menu
mwidth Largeur de la fenêtre destinataire de l'hyperlien. Par défaut 400px. pour les attributs de type menu ou action (version >= 2.9.6)
mheight Hauteur de la fenêtre destinataire de l'hyperlien. Par défaut 300px. pour les attributs de type menu ou action (version >= 2.9.6)
eltitle Texte affichable surgissant sur le bouton généré par l'extra-lien. extra-lien valide
elsymbol Caractère symbolique affiché sur le bouton généré par l'extra-lien. extra-lien valide
eltarget Nom de la fenêtre destinataire sur le bouton généré par l'extra-lien. extra-lien valide (version >= 2.9.6)
batchfolder Mettre à yes' si l'action défini doit être appliqué sur tous les éléments du dossier Pour les attributs de type action. Uniquement dans le cadre de famille hérités de dossier
version Mettre à 'yes' pour indiquer que la valeur de l'attribut fait partie de la composition de la version
cwidth largeur de la colonne pour des attributs présents dans un tableau peut être exprimer en pixel (100px) ou en poucentage (30%) pour les attributs de tableaux
editheight hauteur de la zone d'édition : (400px par exemple) . Les valeurs exprimées en pourcentage ne sont pas possibles. pour les attributs de type htmltext
toolbar référence de la barre de menu. pour les attributs de type htmltext. Soit Simple (le défaut), Basic (juste gras et souligné), Default (complet).
toolbarexpand indique si la barre de menu doit être repliée ou non. Mettre à 'yes' (par défaut) pour la voir. Mettre à 'no' pour la replier pour les attributs de type htmltext.
align alignement horizontal pour les cellules de tableau. Valeur possible left, right, center, justify uniquement pour les attributs insérés dans un tableau.
color couleur du texte pour les cellules de tableau. Soit #RRGGBB soit nom de couleur (red,yellow,…) uniquement pour les attributs insérés dans un tableau.
bgcolor couleur du fond des cellules de tableau. Soit #RRGGBB soit nom de couleur (red,yellow,…) uniquement pour les attributs insérés dans un tableau.
height hauteur du corps du tableau. En pixel uniquement (pas de pourcentage).
Si le corps du tableau dépasse la hauteur spécifiée, un ascenseur vertical apparaitra
:!:Ne fonctionne qu'avec firefox
uniquement pour les attributs de type tableau. (version >= 2.8.1)
iwidth largeur des images affichées pour la vue par défaut (défaut 80px). Les valeurs doivent être exprimées en pixel uniquement (ex: '100px'). Si la valeur est 'auto', l'image sera affichée à sa taille originale uniquement pour les attributs de type image.
vlabel visualisation du libellé en consultation et en édition [left¦up¦none]. left par défaut affiche le libellé à gauche de la valeur. up l'affiche dessus en souligné. none ne l'affiche pas. Dans le cas de up et none, la valeur de l'attribut prend la largeur de la fenêtre affichée. version ≥ 2.7.0.
showempty En consultation, voir le libellé de l'attribut même si sa valeur est vide. Par exemple showempty=RIEN pour afficher RIEN s'il n'y a pas de valeur. Pour afficher juste le libellé mettre simplement un espace comme valeur showempty= version ≥ 2.7.4.
boolcolor En consultation, au lieu d'afficher le libelle, un carré de couleur est affiché. Exemple : boolcolor=red,green va afficher un carré rouge si pas coché et un carré vert si coché version ≥ 2.8.1
autosuggest En édition, sur une aide à la saisie, indique que la recherche est lancée à chaque modification du texte saisi. (par défaut yes).
Mettre à no pour désactiver l'auto-suggestion
version ≥ 2.9.1
search Indique si l'attribut est recherchable.
Mettre à 'no' (par défaut yes) indique que l'attribut ne fera pas l'objet d'une indexation plein texte.
version ≥ 2.9.3 - Limité au type file
inline Indique si l'image doit être affichée dans la navigateur (mettre inline=yes). Par défaut inline=no. version ≥ 2.9.4 - Limité au type image
rn Méthode renommage d'un fichier. Le fichier est renommé lors du transfert du fichier sur le serveur.
La syntaxe est par exemple rn=::myNewName(). myNewName est une méthode de l'objet documentaire qui retourne une chaine de caractères.
Le premier argument de la méthode est le nom du fichier téléchargé. Il est recommandé que la méthode fournisse une extension compatible avec le type mime pour l'utilisation ultérieure sur le poste client et les transformations. (pour récupérer l'extension d'un nom de fichier vous pouvez utiliser la fonction getFileExtension de la librairie Lib.FileMime.php)
version ≥ 2.11.1 - Limité aux types file et image
isuser Sert à indiquer à l'interface d'accessibilité des profils quels sont les identificateurs qui peuvent être pris en compte.
Ceci sert à filtrer les liens vers des documents qui ne sont pas des utilisateurs ou des groupes d'utilisateurs
Mettre isuser=yes pour indiquer l'usage dans les profils dynamiques
version ≥ 2.11.3 - Limité au type docid
htmlclean Nettoie les balises de fonts, de style etc. qui sont généralement issu d'un copier/coller (syntaxe : htmlclean=yes) version ≥ 2.11.3 - Limité au type htmltext
firstopen Indique que cet onglet doit être sélectionné à l'ouverture du document (consultation et rédaction). version ≥ 2.11.6 - Limité au type tab
empty Indique que le tableau s'il est vide ne doit pas afficher la première rangée.
empty=yes
version ≥ 2.11.8 - Limité au type array
sorttable Indique que le tableau est triable
L'utilisateur peut clique sur les entête de tableau pour trier
sorttable=yes
version ≥ 2.11.8 - Limité au type array
mselectsize Indique le nombre d'items présentés pour les attributs énumérés multiples. Par défaut 3 version ≥ 2.11.11 - Limité au type enum multiple sans option eformat
multiple Indique si un énuméré est à choix multiple (anciennement enumlist). Ceci est applicable aussi aux types docid typé afin d'indiquer la possibilité de lier plusieurs documents d'une même famille
Mettre multiple=yes
version ≥ 2.11.11 - Limité aux types enum et docid
bgcolor Indique si la couleur de fond d'un cadre. cela peut être une couleur simple (exemple : yellow) ou une couleur exprimée en RGB hexadécimal (exemple #FF335A) version ≥ 2.11.13 - Limité au type frame
doctitle Pour les attributs relation, indique si un attribut contenant le titre du document pointé par le lien doit être créé automatiquement.
Si doctitle=auto le nom de l'attribut titre sera le nom de l'attribut relation suivi de '_title'. Sinon le nom sera celui précisé dans la valeur de l'option doctitle
version ≥ 2.11.13 - Limité au type docid
preventfilechange Pour les attributs fichiers, cela ajoute une contrainte pour que le fichier à remplacer provienne de la dernière version du serveur. Cela ne bloque pas un changement de fichier mais cela averti l'utilisateur dans le cas où le fichier ne correspond pas à cette dernière version
Cela implique aussi que lors du téléchargement du fichier un code identifiant la version est ajouté dans le nom du fichier (exemple todo{i47307-56}.ods pour le fichier todo.ods)
Mettre preventfilechange=yes pour activer cette option
version ≥ 2.12.9 - Limité aux types file et image
offline Pour les attributs fichiers, cela permet d'inhiber une synchronisation avec l'outil freedom-offline. Par défaut tous les fichiers présents dans une famille sont synchronisés.
Mettre offline=no pour ne pas synchroniser le fichier
version ≥ 2.14 - Limité aux types file et image
docrev Pour les attributs docid, si docrev=latest, cela indique que la relation pointe vers la dernière révision document (ceci est la valeur par défaut).
Dans ce cas ce sera l'initid du document pointé qui sera stocké en base
Si docrev=fixed, cela sera l'id de la dernière révision au moment de l'appel qui sera affecté.
Si docrev=state(keystate) alors le lien portera vers le document à l'état keystate. L'aide à la saisie filtrera aussi sur les documents à cet état
version ≥ 3.0 - Limité aux types docid en visibilité W

exemple : esize=3|elabel=saisissez votre prénom 

Pour modifier la définition d'un attribut d'une famille mère, on utilisera MODATTR au lieu de ATTR. Cela indique que toute propriété non valué aura la valeur de l'attribut défini dans la famille mère.

Types Spéciaux

Options

:!: A reprendre (obsolète) La définition d'un attribut option est identique à celle d'un attributs normal. Il suffit de mettre OPTION dans la première colonne au lieu de ATTR.

// idattr idframe label T A type ord vis
OPTIONUSGATE_URLSGATE_FR_PARAMurlNNtext60W
// idattr idframe label T A type ord vis Need Link
ATTRGGATE_IDSERV1GGATE_FR_SERV1id serviceNNdocid10N
ATTRGGATE_SERV1GGATE_FR_SERV1serviceNNtext10N %S%app=FDL&action=IMPCARD&id=%GGATE_IDSERV1%&opt=%GGATE_IDENT1%
ATTRGGATE_IDENT1GGATE_FR_SERV1l'optionNNoption (“GGATE_IDSERV1”)30N


Ces attributs sont utilisables par les documents qui référencent les documents avec options à l'aide des attributs de type 'option'. Ne pas confondre les attributs normaux de type 'option' qui référence des options avec les attributs 'option' qui définissent les possibles options du documents lors du lien.

IATTR

Copie d'attributs d'une frame d'une autre familles.

famille portail id class name
BEGIN DIR dossier événements SCALENDAR
TYPE C
idattr idframe id famille
IATTR DCAL_FR_PRESENT DCALENDAR
END

Cette exemple copie les attributs et le frame DCAL_FR_PRESENT de la famille DCALENDAR dans la famille SCALENDAR que l'on défini. Cela est utile dans la cas de ressemblance de famille mais sans héritage souhaité.

Paramètres

La définition d'un paramètre est identique à celle d'un attribut normal. Il suffit de mettre PARAM dans la première colonne au lien de ATTR.

// idattr idframe label T A type ord
PARAMWSGAT_FR_PAR météoNNframe10
PARAMWSGATE_URLWSGAT_FR_PARurl site météoNNtext20

Valeurs par défaut

Les valeurs par défaut sont déclarées à l'aide du mot-clef DEFAULT dans la première colonne.

1 2 3
DEFAULTSGATE_ACTION GATE_WEATHER
DEFAULTSGATE_IDRED ::userDocId()
DEFAULTSGATE_RED ::getTitle(SGATE_IDRED)
DEFAULTSGATE_DATE ::getDate()
DEFAULTSGATE_ARRAY ligne1\nligne2\nligne3

Définition des colonnes :

  1. DEFAULT
  2. identifiant de l'attribut
  3. valeur par défaut. Soit du texte statique. Soit l'appel à une méthode connue de la famille. Pour les attributs à l'intérieur d'un tableau (array), il est possible d'initialiser plusieurs lignes du tableau en séparant chaque ligne par un '\n'

Fin de définition

Toutes définitions de familles doit ce terminer par le mot-clef END .

END

Remarque : Ensuite, après cette ligne, il est possible de définir une autre famille.

Exemples de familles à importer dans Freedom

Vous trouverez dans ce chapitre des familles à importer dans Freedom. Le but est de vous familiariser dans la création de familles et vous donnant des exemples.

Pour importer ces familles, il faut suivre ce chapitre.

Mais en résumé, cette commande permet d'importer un document dans Freedom :

/usr/share/what/wsh.php --api=freedom_import --file=VotreFichier.ods

* Utilisation des frames

Cycle de vie

Créer un Cycle de vie (Workflow)

But de ce document

Le but de ce document est de décrire les étapes pour mettre en place un Workflow.

Dans Freedom un Workflow est appelé “Cycle de vie”.

Principe général

Pour mettre en place un cycle de vie, il faut créer ou modifier plusieurs choses :

  • Un fichier PHP qui définit le fonctionnement du cycle de vie (Etats, transitions,..)
  • Une famille de cycle de vie utilisant le fichier PHP précédent
  • Un document cycle de vie basé sur la famille précédente. Il est possible de créer plusieurs cycles de vie basés sur la même famille de cycle de vie.
  • Une famille de documents sur laquelle le cycle de vie sera appliqué. Il est possible d'affecter un cycle de vie à plusieurs familles de documents.
  • Un profil général affecté au cycle de vie ou un profil particulier pour chaque étape du cycle de vie. Cela permet de gérer qui a le droit de faire quoi sur chaque étape du cycle de vie.
  • Il est possible également de créer un masque particulier pour chaque étape du cycle de vie pour afficher ou masquer certains champs en fonction de l'état d'avancement du document dans le cycle.
  • Les modèles de courriel à envoyer.
  • Les déclencheurs pour ajouter des alarmes suivant des critères de temps.

Exemple de cycle de vie

Dans ce document, nous allons décrire toutes les étapes nécessaires à la mise en place du cycle de vie ci-dessous :

Dans cet exemple, un document peut avoir 4 états :

  • Brouillon
  • Validé,
  • Archivé
  • Poubelle

Les transitions pour passer d'un état à un autre sont nommées :

  • Validation : Pour passer de l'état « Brouillon » à l'état « Validé »
  • Correction : Pour passer de l'état « Validé » à l'état « Brouillon »
  • Archivage : Pour passer de l'état « Validé » à l'état « Archivé »
  • Destruction : Pour passer de l'état « Brouillon » à « Poubelle » ou de l'état « Validé » à l'état « Poubelle »

Pour décrire ces états et ces transitions, il faut créer un fichier PHP comme indiqué au chapitre suivant.

Création du fichier PHP de définition du cycle de vie

Le fichier PHP définissant le cycle de vie, sera placé dans le dossier « /usr/share/what/FDL » Son nom sera sous la forme : « Class.WDocTestCycle1.php » correspond au nom de la classe de la famille de cycle de vie que nous allons créer au chapitre suivant. Voici le contenu de ce fichier qui permet de définir notre cycle de vie :

 <?php
include_once("FDL/Class.WDoc.php");
 
Class WDocTest extends WDoc {
 
var $attrPrefix="WDT";
var $firstState="wdt_Draft";
 
var $transitions = array("wdt_Approvement"=>array(),
			 "wdt_Correction"=>array(),
			 "wdt_Chechin"=>array(),
			 "wdt_Destroy"=>array());
 
 var $cycle = array(array("e1"=>"wdt_Draft",
			  "e2"=>"wdt_Approved",
			  "t"=>"wdt_Approvement"),
		    array("e1"=>"wdt_Approved",
			  "e2"=>"wdt_Check",
			  "t"=>"wdt_chechin"),
		    array("e1"=>"wdt_Approved",
			  "e2"=>"wdt_Draft",
			  "t"=>"wdt_Correction"),
		    array("e1"=>"wdt_Draft",
			  "e2"=>"wdt_Obsolete",
			  "t"=>"wdt_Destroy"),
		    array("e1"=>"wdt_Approved",
			  "e2"=>"wdt_Obsolete",
			  "t"=>"wdt_Destroy"));
}
?>

Commentaires sur les variables :

  • $firstState : État initial. Si cette variable n'est pas initialisée, le document sera dans un état indéterminé à la création ce qui en général, n'est pas souhaitable.
  • $cycle : Cette variable permet de définir le nom des états et des transitions. Elle permet également de définir quelle transition utilisée pour passer d'un état à un autre
  • $transition : Cette variable détermine le nom des transitions

Attention :

  • Le nom de la « class » doit correspondre au nom du fichier et au nom indiqué dans les attributs de la famille (attention également au respect des minuscules/majuscules).
  • Il est possible de modifier ce fichier à tout moment1). Les modifications sont immédiatement prises en compte dans tous les documents utilisant cette famille de cycle de vie.
  • Il ne faut pas utiliser de caractères spéciaux (accents) et d'espaces dans le nom des transitions et des étapes (Pour avoir des accents dans les documents finaux, il faut passer par gettext pour traduire les différents termes)

Création de la famille « Cycle de vie » dans OOo

Il n'est pas possible de créer une famille cycle de vie dans Freedom. Il faut donc créer cette famille dans OOo et l'importer dans Freedom. Vous trouverez dans ce fichier la définition de cette famille :

// héritage titre id class name
BEGINWDOCTest Cycle WDocTestTestCycle
ICONcycle.gif
TYPEC
USEFORW
END

Dans ce paramétrage, la seule chose vraiment importante est le nom de la classe et donc du fichier PHP à utiliser. Dans notre cas, c'est « WDocTest »

Pour importer dans Freedom ce fichier (wtest.ods) OpenOffice.org contenant la définition de la famille, il faut se rapporter à la documentation concernant l'importation de familles. Mais en résumé, cette commande, permet d'importer cette famille dans Freedom :

/usr/share/what/wsh.php --api=freedom_import --file=wtest.ods

Remarques :

  • Il faut obligatoirement créer le fichier PHP de définition du cycle avant d'importer la famille sinon l'importation échouera.
  • Une fois cette famille de cycle de vie importée, elle apparaît dans la liste des familles mais pas dans la liste des cycles de vie.

Création d'un document « Cycle de vie »

Une fois la famille importée, il faut créer un document basé sur cette famille. Ce document apparaîtra dans la liste des cycles de vie disponible. C'est sur ce document qu'il sera possible d'affecter un profil et donc des droits différents en fonction des besoins.

Voici comment créer ce document :

  • Sélectionnez la famille de cycle de vie “Test” importée précédemment.
  • Faire un clic-droit sur cette famille et sélectionnez “Créer cycle de test”.
  • Donnez un titre à votre document cycle de vie.

Une fois ce document créé, il est possible de voir graphiquement le cycle de vie en cliquant sur le 'Voir le graphe' :

Remarque :

  • Il est possible de modifier le fichier PHP « Class.WDocTest.php » et de voir instantanément le changement au niveau du graphe dans ce document cycle de vie et dans tous les documents créés à partir de la famille cycle de vie importée précédemment.
  • Il est possible de supprimer, modifier et ajouter des états et des transitions

Affectation d'un cycle de vie à une famille de documents

Le cycle de vie créé doit être associé à une famille de document.

Pour affecter un cycle de vie à une famille, il faut :

  1. Sélectionner la famille de documents de votre choix
  2. Sélectionner « Choisir un cycle »
  3. Sélectionner le cycle de vie créé précédemment

Une fois le cycle choisi, les document de cette famille sont lié à ce nouveau cycle. Si des documents de cette famille étaient déjà liés à un autre cycle, ceux-ci ne sont impactés par ce changement.

Remarque : Il est possible d'utiliser un même cycle de vie pour plusieurs familles de documents.

Initialisation du document cycle de vie

L'initialisation du cycle de vie permet de réinitialiser les attributs du cycle. Ceci est nécessaire lors de la première édition ou lors du modification du fichier de définition du cycle (classe documentaire). ensuite en éditant ce dernier de sélectionner :

  • un profil en fonction de l'état
  • une couleur en fonction de l'état
  • un masque en fonction de l'état

Pour initialiser un cycle de vie, il faut :

  • Sélectionner le document cycle de vie créé précédemment
  • Cliquer sur “Initialisation”

Une fois le cycle de vie initialisé, des attributs correspondants aux états sont ajoutés à la famille du cycle de vie.

Pour voir ces attributs ajoutés, il faut :

  • Faire un clic droit sur la famille de cycle de vie importée
  • Sélectionner “Éditer les attributs”

ATTENTION : Il est conseillé d'initialiser le cycle de vie une fois les états et transitions figés car ensuite, il n'est plus possible de supprimer les attributs ajoutés à la famille du cycle de vie.

Affectation d'un profil dédié au document cycle de vie

L'affectation d'un profil au document cycle de vie permet d'affecter des droits différents pour chaque étape de ce cycle. Pour cela, il faut :

  • Sélectionner le document de cycle de vie dans le dossier de recherche « les cycles »
  • Sur le document du cycle de vie, sélectionner « Sécurité/Changer de profil » et sélectionner « Contrôle dédié »
  • Sur le document du cycle de vie et sélectionner « Sécurité / Accessibilité »
  • Dans le tableau qui apparaît, il faut cliquer sur les petits rectangles gris à droite des groupes pour faire apparaître des cases à cocher

* Il faut sélectionner les cases à cocher en fonction de vos besoins et valider

Pour plus d'information sur la gestion des profils, il faut suivre la documentation correspondante.

Pour plus d'explications sur la modification des droits du profil, il faut suivre la documentation sur les profils

Remarques :

  • Par défaut, un simple utilisateur n'a pas accès aux transitions du cycle de vie. Il faut donc obligatoirement modifier le profil pour autoriser les personnes à modifier les étapes du cycle de vie.
  • L'administrateur de Freedom a accès à toutes les étapes d'un cycle de vie et à tout moment et quelque soit les transitions autorisées.
  • Il n'est pas possible d'affecter un profil à un document cycle de vie. Il faut obligatoirement créer un « Contrôle dédié ». Cependant, il est possible d'affecter un profil différent pour chaque étape du cycle de vie une fois le cycle initialisé.
  • Il est possible de créer un cycle de vie générique avec de nombreuses étapes et transitions. A partir de là, il est possible de créer plusieurs documents de cycles de vie avec chacun un profil différent.

Test du cycle de vie

Avant de tester le cycle de vie, il faut affecter des droits différents à au moins deux utilisateurs au niveau du profil et voir comment évolue le document en fonction des états. En fonction de l'état du document et de l'utilisateur, les boutons permettant de passer d'un état à un autre sont modifiés.

Pour tester le cycle de vie il faut simplement créer un nouveau document basé sur la famille utilisant ce cycle de vie.

Remarque : L'administrateur de Freedom a toujours accès à tous les boutons de changement d'état quelque soit le paramétrage du cycle de vie.

Affectation d'un profil différent pour chaque étape du cycle de vie

Pour gérer encore plus finement les droits, il est possible d'affecter un profil différent sur chaque étape du cycle de vie.

Pour cela, il faut créer un profil différent pour chaque étape du cycle de vie. Pour créer un profil, il faut suivre cette documentation.

Ensuite, il faut modifier le document cycle de vie et affecter les profils aux différents états

Remarque : Cela est possible seulement si le cycle de vie à été initialisé comme indiqué dans un chapitre précédent.

Ajouter un repère de couleur à chaque étape du cycle de vie

Pour identifier plus facilement dans quel état est le document, il est possible d'affecter des couleurs différentes pour chaque état du cycle de vie. Pour cela, il faut :

  • Modifier le document cycle de vie
  • Indiquer pour chaque état du cycle de vie, la couleur souhaitée

Une fois les couleurs définies, voici le résultat obtenu dans les différents écrans :

  • Changement d'état d'un document sous forme de liste déroulante

  • Liste des documents dans le module “Une Famille”

Ajouter un masque différent à chaque étape du cycle de vie

En fonction de l'état du document il est possible d'afficher ou masquer certains champs en appliquant un masque différent à chaque étape.

Pour créer un masque, il faut :

  • Depuis le module “Gestion documentaire”, sélectionner le menu “Création / Document système”.
  • Dans la liste “hérite de”, sélectionner “masque de saisie.
  • Dans la liste “pour” sélectionner une famille.
  • Indiquer le nom du masque de saisie
  • Pour chaque attribut, il est possible de modifier sa visibilité et son obligation

Pour affecter un masque sur une étape du cycle de vie, il faut :

  • Créer un masque différent pour chaque étape comme expliqué ci-dessous.
  • Modifier le document cycle de vie.
  • Indiquer pour chaque état du cycle de vie, le masque souhaité.

Remarque : Pour retrouver facilement la liste des masques de saisie, il est possible de sauvegarder une recherche simple basée sur la famille “masque de saisie”

Ajouter un contrôle de vue par état

Si le masque ne suffit pas pour renseigner différentes parties du document, il est possible d'associer un contrôle de vue par état. Le contrôle de vue permettra d'avoir des masques différents par états. Le profilage de chaque contrôle de vue permettra d'appliquer différent masques suivant l'utilisateur.

Définir les activités par états

Version 2.11.12

Les états du cycle définissent l'état du document à un moment donné. Il sont définis par des adjectifs comme 'validé', 'archivé', 'contrôlé'. Pour chacun de ces états, une activité peut être définie afin d'indiquer ce que doit faire celui qui a en charge du document. Cette activité peut être par exemple 'rédaction','vérification','à confirmer'. Les activités peuvent être notées dans les attributs 'activité' du cycle de vie. Ils peuvent ainsi être différent par instance de cycle. Ils peuvent aussi être définis dans la classe du cycle, dans ce cas les attributs seront non modifiable par l'interface. Dans l'exemple ci-dessous, pour l'état 'validé' nous avons défini l'activité 'en cours d'archivage'.

Affecter un utilisateur

Lorsqu'on a défini une activité, on peut aussi définir qui doit faire l'activité. Bien qu'une activité puisse être réalisée à plusieurs, un seul responsable peut être désigné. Un document ne peut être affecté qu'à un seul utilisateur à la fois.

On peut récupérer l'acteur à partir d'attribut relation (type 'docid') référençant un utilisateur. Cet attribut peut être récupéré à partir du document (attribut ou paramètre de famille) ou à partir du cycle (attribut ou paramètre de famille du cycle). Dans l'exemple ci-dessus, le documentaliste sera affecté comme responsable lorsque le document passera dans l'état archivé. Si vous cochez “auto-verrouillage” le document sera verrouillé pour l'acteur. Si vous cochez “courriel automatique”, un courriel d'affectation sera envoyé à l'acteur au moment du changement d'état.

Une fois l'utilisateur affecté, il peut ré-affecter le document s'il a le droit d'éditer le document. Dans ce cas le menu “ré-affecter” apparaîtra sur le document. L'affectation est une des propriétés du document. On retrouvera la personne responsable lorsqu'on consulte les propriétés du document. Pour connaître la liste des documents qui vous sont affectés on peut utiliser le service portail “mes documents affectés” depuis l'application portail. Ce service utilise la recherche 'MY_AFFECT_DOCS' qui peut être utilisés aussi dans la gestion documentaire et comme flux RSS.

Pour aller plus loin

Pour aller plus loin dans l'utilisation des cycles de vie, il faut suivre le chapitre correspondant dans le manuel de programmation.

Créer un cycle de vie localisé

But de ce document

Dans la définition des étapes et des transitons d'un cycle de vie, nous avons vu qu'il n'était pas possible de mettre des espaces et des caractères accentués dans les noms.

En effet, ces noms sont utilisés comme attributs de la famille cycle de vie. Ils correspondent également aux noms des champs de la table dans la base de données.

Le but de ce document est donc d'expliquer comment utiliser la localisation pour traduire ces attributs en textes plus complet dans la langue de votre choix (en français ou en anglais)

Voici l'exemple de cycle que nous allons réaliser dans ce document :

Pré-requis

Avoir déjà mis en place un cycle de vie simple comme indiqué dans cette documentation :

Exemple de définition de cycle de vie utilisé pour ce docuement

Pour ce document, nous allons mettre en place un cycle de vie très simple avec seulement deux étapes et deux transitions.

Attention : Les lignes en commentaire avec les _() et N_() sont importantes car ce sont elles qui nous permettrons de localiser les textes dans les différentes langues (français et anglais)

<?php
include_once("FDL/Class.WDoc.php");
 
define ("i18n","i18n"); 
 
Class WDocTest extends WDoc {
  public $attrPrefix="WDT";
  public $firstState="wdt_Draft"; 
 
  public $transitions = array("wdt_Approvement"=>array(),# _("wdt_Approvement") _("wdt_Correction") _("wdt_Chechin") 
			      "wdt_Correction"=>array(),
			      "wdt_Chechin"=>array(),
			      "wdt_Destroy"=>array());
 
  public $cycle = array(array("e1"=>"wdt_Draft", # _("wdt_Destroy") _("wdt_Draft") _("wdt_Approved") _("wdt_Check") _("wdt_Obsolete")
			      "e2"=>"wdt_Approved",
			      "t"=>"wdt_Approvement"),
			array("e1"=>"wdt_Approved",
			      "e2"=>"wdt_Check",
			      "t"=>"wdt_Chechin"),
			array("e1"=>"wdt_Approved",
			      "e2"=>"wdt_Draft",
			      "t"=>"wdt_Correction"),
			array("e1"=>"wdt_Draft",
			      "e2"=>"wdt_Obsolete",
			      "t"=>"wdt_Destroy"),
			array("e1"=>"wdt_Approved",
			      "e2"=>"wdt_Obsolete",
			      "t"=>"wdt_Destroy"));  
  function postConstructor() {
    $this->stateactivity=array("wdt_Draft"=>N_("writting"),
			       "wdt_Approved"=>N_("check in"));
  }
}
?>

Traduction des constantes dans différentes langues

La première étape consiste à récupérer le contenu des constantes du fichier .php précédent pour générer un nouveau fichier .po qui nous permettra de renseigner les traductions :

# xgettext --keyword='N_' --language=c --keyword='_'  -j  -o test_fr.po Class.WDocTest.php

Ensuite, il faut éditer ce fichier texte « .po », indiquer le bon encodage sur la ligne « Content-Type » et ajouter les traductions. Exemple :

msgid ""
msgstr ""
"Project-Id-Version: TEST\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-01-02 23:42+0100\n"
"PO-Revision-Date: 2009-01-02 23:56+0100\n"
"Last-Translator: me\n"
"Language-Team: french <LL2@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"

#: Class.WDocTest.php:10
msgid "wdt_Approvement"
msgstr "Approbation"

#: Class.WDocTest.php:10
msgid "wdt_Correction"
msgstr "Correction"

#: Class.WDocTest.php:10
msgid "wdt_Chechin"
msgstr "Archivage"

#: Class.WDocTest.php:15
msgid "wdt_Destroy"
msgstr "Destruction"

#: Class.WDocTest.php:15
msgid "wdt_Draft"
msgstr "Initialisé"

#: Class.WDocTest.php:15
msgid "wdt_Approved"
msgstr "Validé"

#: Class.WDocTest.php:15
msgid "wdt_Check"
msgstr "Archivé"

#: Class.WDocTest.php:15
msgid "wdt_Obsolete"
msgstr "Obsolète"

#: Class.WDocTest.php:31
msgid "writting"
msgstr "En rédaction"

#: Class.WDocTest.php:32
msgid "check in"
msgstr "En cours d'archivage"

Remarques : * Pour mettre en place une traduction en anglais, il faut créer un deuxième fichier .po et indiquer les traductions en anglais.

  • Pour éditer ce fichier, il est possible d'utiliser des interfaces graphiques spécialisées comme gtranslator (gnome), kbabel (kde) ou poedit (gtk)

Mise en place de la traduction

Il faut commencer par convertir le fichier texte « .po » en fichier binaire « .mo » :

# msgfmt test_fr.po -o /usr/share/what/locale/fr/LC_MESSAGES/test.mo

Remarque : La commande « msgunfmt » permet de faire l'inverse :

# msgunfmt fichier.mo -o fichier.po

Remarque : Pour mettre en place une traduction en anglais, il faut utiliser le dossier “locale/en/LC_MESSAGES/”

Assembler les différents fichiers « .mo » dans « what.mo » utilisé par Freedom :

# /usr/share/what/whattext

Recharger Apache :

# /etc/init.d/apache2 reload

Remarque : Le cycle de vie doit apparaître traduit immédiatement.

Pour avoir le graphe en anglais, on procède de la même façon en copiant le fichier de traduction dans le répertoire “locale/en/LC_MESSAGES/”.

Paramétrer Freedom pour avoir une interface en anglais

Pour avoir l'interface de Freedom en anglais pour tout les utilisateurs, il faut modifier ce paramètre :

  • Administration / Gestion des applications / paramètres applicatif / Noyau / langue

Pour avoir l'interface de Freedom en anglais pour un utilisateur particulier, il faut modifier ce paramètre :

  • Administration / Gestion des applications / mes paramètres / Noyau / langue

Remarques :

  • Après avoir modifié la langue, il est nécessaire de se déconnecter et de se reconnecter à Freedom.

Version > 2.11.12

Modèle de courriel pour les cycles

Il est possible de paramétrer le cycle par l'interface afin d'envoyer des courriels lors d'un changement d'état. Les courriels peuvent être définis pour un état ou pour une transition. Si on associe un ou plusieurs courriels à un état, ils seront envoyés à chaque fois qu'un document aura ce nouvel état (quel que soit la transition). Les courriels liés aux transitions seront envoyés lors du passage de la transition.

Soit un document basique associé au cycle de test. Nous prenons comme exemple la famille déclarée dans le fichier wbasictest.ods. Cette famille est associée au cycle 'Cycle de test' défini dans le fichier Class.WDocTest.php - à mettre dans le répertoire '/usr/share/what/FDL' du serveur (voir Création de cycle pour plus de détail). Voici le document de test en édition. Il comprend un rédacteur et un valideur.

Le but est d'envoyer un courriel pour avertir le documentaliste d'archiver le document lorsque celui-ci est validé (passage à l'état validé).

Pour cela on édite le cycle de test et clique sur le '+' de l'attribut 'Modèle de courriel Validé'. Cela affiche le document suivant :

Le modèle de courriel permet de définir l'émetteur, les destinataires et le corps du message.

Définir l'émetteur

L'émetteur doit faire référence à une adresse email valide. Si l'émetteur reste vide, c'est l'adresse de l'utilisateur qui fait la transition qui sera utilisée.

Plusieurs possibilités de choix de l'émetteur sont possibles:

  • adresse fixe : choisir dans la carnet d'adresse une personne. C'est l'adresse mail de cette personne qui sera utilisée. (attribut US_MAIL).L'adresse indiquée doit uniquement contenir l'adresse “pure” : préférez jean.dupont@mail.fr à jean dupont jean.dupont@mail.fr.
  • attribut texte : un attribut du document portant le cycle. Cet attribut doit renseigner une adresse email. Il est possible d'utiliser la notation ':' (TST_MYID:THE_MAIL) pour aller chercher des valeurs sur les documents liés.
  • attribut relation : un attribut de type 'docid' du document portant le cycle. Cet attribut doit renseigner une personne ou un groupe. Ce sera l'attribut 'US_MAIL'/'GRP_MAIL' de la personne/groupe lié à cet attribut qui sera utilisé pour renseigner l'émetteur.
  • attribut paramètre : un attribut paramètre (PARAM) de la famille du document portant le cycle. Cet attribut doit renseigner une adresse email. Il est possible d'utiliser la notation ':' pour aller chercher des valeurs sur les documents liés.
  • attribut cycle : un attribut du document cycle de vie. Cet attribut doit renseigner une adresse email. Il est possible d'utiliser la notation ':'.
  • relation cycle : un attribut de type 'docid' du document cycle de vie. Ce sera l'attribut 'US_MAIL'/'GRP_MAIL' de la personne/groupe lié à cet attribut qui sera utilisé pour renseigner l'émetteur.
  • paramètre cycle : un attribut paramètre (PARAM) de la famille du cycle de vie portant le cycle. Cet attribut doit renseigner une adresse email. Il est possible d'utiliser la notation ':' pour aller chercher des valeurs sur les documents liés.

Définir les destinataires

La définition des destinataires se fait comme pour l'émetteur. Vous pouvez choisir ensuite le mode d'envoi :

  • à : destinataire principal
  • cc : destinataire en copie
  • bcc : destinataire en copie cachée

Définir le sujet

Le sujet est un texte libre. Il peut contenir des parties variables issues du document qui va être envoyé. On notera les attributs (en majuscules) entre crochets. Exemple [BT_APPROVDATE] si le document à un attribut 'BT_APPROVDATE'. La partie entre crochets sera remplacée par la valeur de l'attribut.

Définir le corps du message

Le corps du messages est un texte HTML. Il peut contenir des parties variables qui sont les attributs du document et les paramètres de transitions du cycle. Ces parties variables peuvent être notées de 2 formes :

  1. [MY_ATTR] : cela affichera la valeur brute , c'est à dire la valeur inscrite en base de données.
  2. [V_MY_ATTR] : cela affichera la valeur formatée, c'est à dire telle qu'elle est présentée à l'utilisateur sur l'interface web.

Concrètement, par exemple, la valeur brute d'un énuméré sera la clef, la valeur formaté sera la traduction du libellé. Le barre de menu de l'éditeur de texte propose les différentes possibilités pour les attributs formatés du document. Le commentaire de transition peut être récupéré par le mot clef '[WCOMMENT]'. Les propriétés du document peuvent aussi être affichée : [ID] [TITLE] [CDATE]. Par contre, les [V_ID] ne sont pas possibles; ce ne sont pas des attributs. Seul [V_TITLE] est possible pour afficher un lien vers le document.

Si on utilise les valeurs formatées, des hyperliens peuvent apparaitre dans le courriel à destination du serveur d'envoi. Si vous ne souhaitez pas avoir de liens il faut décocher la case 'avec liens'. Ceci est à faire si vous destinez votre courriel à des personnes extérieures à votre système d'information.

Tout mail sans corps ne sera pas envoyé.

Ajouter des fichiers attachés

Les fichiers attachés font référence à des attributs de type fichier (ou image) du document. Les fichiers seront alors en pièce jointe du courriel. Bien sûr ces attribut peuvent être des listes de fichiers (attribut fichier ou image dans un tableau).

Enregistrer le messages

Depuis la version 2.14.2 de freedom, vous pouvez conserver l'enregistrement du message envoyé. Celui-ci sera stocké dans la famille “message envoyé”. Son profil sera celui du document servant à l'envoi. Pour stocker le message il faut cliquer sur le champ “Enregistrer une copie”.

Ajout de courriel pour les cycles

Une fois le modèle de courriel créé, il faut l'associer au cycle (utiliser les '…' pour sélectionner le modèle. Les envois de courriel sont visibles dans le graphe du cycle avec l'option 'avec les traitements'.

Les modèles de courriels peuvent être associés à un état ou à une transition. Lorsqu'on mets le courriel sur un état il sera envoyé dès que le document changera vers cet état, même si la transition est non définie (cas possible lorsque l'utilisateur 'admin' utilise le cycle).

Version > 2.11.12

Minuteurs

Les minuteurs (“timers” in english language) permettent de déclencher des actions sur des documents à des moments définis.

Définition

Le minuteur dans le cadre du cycle de vie va permettre par exemple de donner une durée limite pour l'activité à réaliser dans un état défini.

Exemple : “vous avez une semaine pour valider ce contrat sinon il sera automatiquement déclaré comme obsolète.”

Nous reprenons ici le même cycle que pour les paragraphes précédents.

Pour mettre en place l'exemple, nous allons créer un minuteur qui fera un changement d'état vers “obsolète” 7 jours après le passage en “initialisé” (ou ici dès que le document est créé). Pour avertir le rédacteur, nous allons l'avertir 3 jours avant en lui précisant qu'il faudrait y penser et ensuite un jour avant, avec en copie le valideur, avant afin qu'il finisse son travail (non non on lui mets pas la pression :-)).

Création

Pour faire cela nous allons créer un minuteur. Nous éditons le cycle et avec le bouton ”+” de l'attribut “Minuteur Initialisé”.

Nous pouvons indiquer les actions à faire une fois que le minuteur sera attaché au document. Trois types d'actions sont possibles :

  1. envoyer un courriel (ou plusieurs) en utilisant les modèles de courriel
  2. changer d'état
  3. appeler une méthode du document.

Lors d'un changement d'état le minuteur associé à l'état précédent est enlevé. S'il y a un autre minuteur pour l'état suivant il sera activé. Le minuteur peut être mis sur un état ou sur une transition.

Pour associer un minuteur à un état, il faut éditer le cycle de vie et renseigner les attributs minuteurs dans le cadre état ou dans le cadre de la transition voulu. Sur les transitions, les minuteurs “persistants” ne sont pas détachés de manière implicite lors d'un changement d'état. Ils sont détachés lorsqu'ils sont indiqués dans les attributs “Minuteur à détacher”. Ceci permet de lancer des actions qui peuvent durer sur plusieurs transitions.

Lorsqu'un niveau est exécuté (le délai est écoulé), le niveau suivant (rangée suivante du tableau 'configuration') est armé s'il existe. Il est possible de faire des répétitions. Je veux envoyer le même courriel tous les jours pendant 7 jours. Pour faire cela on mettra le nombre d'itérations à 7.

S'il n'y a plus de niveau le minuteur est détaché du document.

Dans notre exemple, nous avons associé le minuteur à l'état “initialise”. Dès que l'on crée un document “test de base”, le minuteur sera activé.

Si l'on regarde l'historique après la création de notre document nous y voyons l'affectation du minuteur.

Date dynamique

:!: version > 2.13.12

La date de déclenchement de la première action peut être liée à un des attributs de type 'date' ou 'timestamp' du document auquel est attaché un timer. Ainsi, on peut indiquer que le changement d'état vers 'diffusée' sera exécuté à la date marquée dans l'attribut 'sert_testdate'. Si on veut que ce soit 3 jours après cette date, il faudra ajouter au document un attribut 'sert_threedayafter' qui sera calculé en fonction de 'sert_testdate'.

Administration

L'interface d'administration des minuteurs est disponibles à partir de l'application 'Administration'.

Lorsque l'on clique sur le titre d'un document, cela affiche les prochaines actions qui vont être exécutées.

Prochains minuteurs

Cela affiche par ordre chronologique les prochaines actions qui vont s'exécuter. freedom vérifie toutes les 5 minutes les minuteurs qui doivent être exécuté. L'heure d'activation a donc une précision de 5 minutes. Si l'heure d'activation est dépassé de plus de 2 heures (paramètre FDL_TIMERHOURLIMIT) le minuteur sera ignoré.

Historique des minuteurs

Cela affiche les actions, issus de minuteurs, déjà exécutés. Il sont ordonnés par ordre chronologique d'éxecution.

Minuteurs dépassés

Liste les minuteurs qui aurait due se déclencher depuis plus de 2 heures (FDL_TIMERHOURLIMIT). Cela peut arriver si le serveur a été arrêté pendant plus de 2 heures. Le paramètre applicatif FDL_TIMERHOURLIMIT est modifiable avec l'application de paramétrage :administration/paramètre de configuration/paramètres applicatifs/Bibliothèque freedom.

Nettoyage de l'historique

Permet d'effacer les traces des minuteurs déjà exécutés depuis un certain nombre de jours. Ce nombre de jour est par défaut de 7. Il peut être modifié dans la zone de saisie contigüe. Le nettoyage prend en compte le filtre sur les documents : ne seront nettoyer que ceux dont le titre contient le filtre.

Désactiver les minuteurs

Cela permet d'annuler des minuteurs actifs. Si le filtre est vide tous les minuteurs seront annulés. Si le filtre n'est pas vide seul les minuteurs attachés aux documents filtrés seront pris en compte.

Cycle de vie de publication de documents

But de ce document

Expliquer comment mettre en place un cycle de vie de publication de documents classique du genre « Bouillon → Validé » mais avec la possibilité de repasser à l'état brouillon tout en laissant la dernière version validée accessible aux utilisateurs.

Règles à mettre en place

Voici les règles de fonctionnement que devra respecter notre famille de documents :

  • Un document à l'état brouillon n'est ni visible ni modifiable par le groupe « Lecteurs »
  • Un document à l'état brouillon est modifiable uniquement par le groupe « Rédacteurs »
  • Seule le groupe « Rédacteur » peut changer l'état du document pour le passer à l'état « Validé » ou le repasser à l'état « Brouillon »
  • Un document à l'état « Validé » est visible du groupe « Rédacteur » et « Lecteur », mais n'est pas modifiable
  • Pour modifier un document « Validé », le groupe « Rédacteur » doit le repasser à l'état « Brouillon »

Cycle de vie et profils

Notre cycle de vie aura donc deux états avec deux profils associés :

  • Brouillon : Le profil associé donne accès au document uniquement au groupe « Rédacteurs »
  • Validé : Le profil associé donne un accès en lecture seule à tout le monde

Droits sur les changements d'états :

  • Les rédacteurs seront les seules à accéder au cycle de vie pour changer le document d'état et seront également les seules à pouvoir modifier le document quand il sera à l'état « Brouillon »

Au final, il faut donc :

  • Créer la famille de cycle de vie
  • Créer le document cycle de vie
  • Associer le cycle de vie la famille
  • Créer les deux profils
  • Associer les deux profils au cycle de vie

Rapports permettant d'accéder aux documents

Un rapport pour le groupe « Lecteur » permettra de consulter la liste de tous les documents à l'état « Publié » et d'y accéder. Un autre rapport pour le groupe « Rédacteur » permettra d'accéder aux documents à l'état « Brouillon »

Liste des profils nécessaires

  • Profil pour la famille
  • Profil pour le document à l'état « Brouillon »
  • Profil pour le document à l'état « Publié »
  • Profil du cycle de vie (Contrôle dédié)

Envoi d'un mail Un mail sera envoyé aux personnes du groupe « Lecteurs » lors de la publication du document.

Menu personnalisés pour la famille

  • Un menu dans le document permettra d'accéder au rapport affichant la liste des documents publiés
  • Un autre menu accessible uniquement par le groupe « Administrateur » affichera le rapport des documents à l'état Brouillon
  • Le menu « Révision courante » sera accessible uniquement au groupe « Rédacteur ».

Installation des documents de l'exemple

Voici la liste des documents à installer :

  • Ce fichier contient la Class de notre cycle de vie. Il faut enregistrer le contenu de ce fichier dans “FDL / Class.WPublication.php”
  • Ce fichier contient la Méthode associé à notre famille pour limiter l'accès aux menus. Il faut enregistrer le contenu de ce fichier dans “FDL / Method.Publication.php”
  • Ce fichier contient le contenu du message envoyé aux lecteurs lors du passage à l'état “Publié”. Il faut enregistrer le contenu de ce fichier dans “FDL / Layout / mail_publication.xml”
  • Ce fichier OOo permet d'importer dans Freedom tous les documents nécessaires

Une fois le fichier OOo importé, vous devriez avoir dans le dossier “Freedom Master / Publication”, les fichiers suivant :

Remarques :

  • Après avoir importé une première fois le document OOo, il faut initialiser le document cycle de vie et importer une deuxième fois le document OOo pour que le cycle de vie soit correctement paramétré.
  • Il faut également activer les profils et modifier les accessibilités pour que le système soit opérationnel (ex : Il faut compléter le groupe des rédacteurs pour que le rapport permettant d'accéder aux brouillons soit accessible)

Résultats

Exemple de document à l'état publié :

Exemple de document à l'état brouillon en édition :

Rapport affichant la liste des documents publiés :

index du manuel

Définitions des profils

L'administrateur a en charge de définir les profils de création associés aux familles.

Afin de spécifier de manière globale l'ensemble des profils, vous pouver vous aider du fichier suivant :definition_droits_familles.ods

Définition des droits

Quatre familles de profils sont définies :

  • profil de famille (droit de créer des documents ou de voir la famille)
  • profil de document (droit de voir, modifier ou supprimer des documents)
  • profil de dossier (droit de voir le contenu du dossier)
  • profil de recherche (droit d'exécuter la recherche)

Les droits définis sont :

Nom interne Description Description longue Pour
view voir Voir les caractéristiques du document, du dossier ou de la recherche. Le fait de ne pas voir un dossier n'implique pas de ne pas voir les documents contenus dans le dossier. DFR
edit éditer Modifier les caractéristiques du document, du dossier. Les recherches ne sont pas modifiables. DF
delete supprimer Supprimer le document, le dossier, la recherche; c'est à dire le mettre à la poubelle. DFR
send envoyer Envoyer par email le document. D
unlock déverrouiller déverrouiller le document. DFR
viewacl voir les droits Voir les droits du document. DFR
modifyacl modifier les droits Modifier les droits du document. DFR
open ouvrir Ouvrir le dossier. Permet de voir le contenu du dossier F
modify modifier Modifier le contenu du dossier. Permet d'ajouter ou de supprimer des documents dans le dossier. F
execute executer Permet d'exécuter la recherche. R
create créer Autorise la création de document de cette famille. C
icreate créer manuellement Autorise la création de document de cette famille à partir de l'interface. Si ce droit n'est pas mis est que create est mis, l'utilisateur ne pourra créer le document que de manière indirecte (soit sur une transition, soit sur toutes autres actions particulière mis en place par l'administrateur). Sans ce droit les menus de création de cette famille sont inaccessibles. Si ce droit est mis il faut que le droit 'create' soit aussi mis. C
confidential voir document confidentiel Permet d'utiliser normalement un document qui est confidentiel. (Confidentiel est une propriété de document). DFR
forum poster sur un forum Autorise le post sur un forum de document (utilisateur n'ayant pas le droit d'édition). DF



D pour document, F pour dossier (folder), R pour recherche et C pour Famille (classe)

Modification

Le moyen de création et de modification des profils est décrit dans le manuel utilisateur. Nous décrirons dans ce manuel la méthode de création de profil.

Le but du profil est de décrire un ensemble de droits pour les groupes de travail de l'entreprise. Les groupes de travail doivent représenter des groupes fonctionnels (groupe des achats, groupe commercial, groupe invité, groupe administration) et peuvent être déclarés de manière hiérarchique : le groupe direction commerciale est un sous groupe du groupe commercial.

Pour que les profils soient utilisées de manière optimum, il est conseillé de ne travailler les profils que sur les groupes et non sur les personnes. Les droits des personnes doivent être déduits de leurs groupes d'appartenances. Si les droits sont bien placés pour chaque groupe, il suffit de placer les personnes dans les groupes pour changer leur droits. Il n'est alors plus nécessaire de modifier les profils.

Pour placer les droits nous vous conseillons de remplir un tableau comme celui-ci pour chaque droit :

Droit Voir (view)
Groupes/Familles Fichier Contrat Facture Personne
défaut


+
- administrateur
+ + o
- commercial
+
o
- - direction commerciale
o + o
- achat

+ o
invité


+

Les cellules vertes (+) représentent les droits ajoutés, les cellules grises (o) représentent les droits déduits suivant la hiérarchie des groupes. Ici, on a décidé que la famille fichier n'avait pas de droit par défaut donc chaque nouveau document de la famille fichier est accessible de tout le monde. Le groupe achat a le droit de voir les factures et les personnes (du fait de l'appartenance au groupe défaut). Par contre il n'a pas le droit de voir les contrats. On peut aussi utiliser des cellules rouges (-) pour indiquer les restrictions de droits.

Une fois les tableaux remplis il suffit de créer un profil par famille avec les droits indiqués dans les cellules vertes (et rouges). Si des familles ont la même définition de profil, on peut associer le même profil à ces familles. Le but est d'avoir le moins de profil possible pour simplifier les modifications ultérieures.

Normalement pour changer les droits d'une personne, il suffit de changer ses groupes d'appartenances<sup>2</sup>.

Bien sûr, il est toujours possible de modifier un profil pour une personne particulière si cette personne ne correspond à aucun groupe.

Affecter manuellement un profil à un document

Pour affecter manuellement un profil à un document existant, il faut utiliser le menu :

  • Autre / Sécurité / Changer de profil

Profil par défaut des nouveaux documents

Pour chaque famille, il est possible d'indiquer le profil à appliquer aux nouveaux documents de cette famille :

  • Menu “Sécurité / Changer le profil pour les nouveaux documents

Profil par défaut lors de l'enregistrement d'un document dans un dossier

Pour chaque document de type dossier, il est possible d'indiquer le profil à appliquer aux nouveaux documents ajoutés au dossier :

  • Menu “Édition restriction”

Profil dynamique

Les profils dynamiques permettent de mettre des droits par rapport au contenu du document. Si un attribut est du type docid, et qu'il référence un document de la famille Utilisateur ou Groupe d'utilisateurs sa valeur peut être utilisée pour définir des droits sur le profil dynamique. Pour indiquer qu'un profil est dynamique, il suffit d'indiquer une famille dans le cadre dynamique lors de l'édition.


Dans l'exemple montré ci-dessus, on crée un profil pour la famille compte-rendu. Dans cette famille plusieurs attributs sont de type docid. Dans l'interface d'accessibilité ces attributs sont présentés en bas avec un bouton jaune pour les attributs qui ne sont pas dans un tableau; en orange pour ceux qui sont dans un tableau.


Tous les attributs de type docid sont présentés. Cependant seuls ceux qui font référence à un utilisateur ou à un groupe d'utilisateurs auront une pertinence dans le calcul des droits. Dans l'exemple ci dessus, l'attribut « id affaire » ne doit pas être pris en compte pour l'élaboration du profil.

Si l'attribut de type docid est dans un tableau, il ne peut pas être pris en compte dans le profil dynamique. (version < 2.11.3) Depuis la version 2.11.3, le docid peut être dans un tableau. Les attributs visibles sont de type 'docid' et depuis la version 2.11.3 pensez à utiliser l'option d'attribut isuser pour ne pas prendre en compte l'attribut “id affaire” par exemple.

Si un profil n'a pas besoins de dynamique, il ne faut pas renseigner la famille dans le cadre dynamique car cela implique des calculs supplémentaires qui ne sont pas nécessaires.

Profil de transitions de cycle de vie

Les famille cycle de vie définissent une famille de profil spécifique. Les droits des documents cycles de vie permettent de savoir qui a le droit d'effectuer les transitions. Ces droits sont applicables à tous les documents associés à ce document de cycle de vie.




Les droits d'un cycle de vie comportent cinq droits classiques (voir, éditer, supprimer, voir les droits et modifier les droits), et N droits portant sur les transitions. Ces droits sur les transitions sont définis lors de la programmation du cycle de vie<sup>3</sup>.

Lorsque l'utilisateur effectue un changement d'état, il ne peut choisir l'état suivant que parmis ceux dont il a le droit. Dans l'exemple ci-dessus, le droit vers qualifié doit être activé si l'utilisateur veut changer d'état vers qualifié. Si ce droit n'est pas accordé, le changement d'état n'est pas proposé. Pour placer les droits sur une famille cycle de vie, il faut se rapporter à sa fiche de description. Chaque cycle de vie décrit ces droits de transition particuliers en fonction de son cycle de vie.

Profils d'état de cycle de vie

Les profils par défaut ne sont pas applicables aux familles cycle de vie. Dans les documents cycle de vie un profil par état peut être défini. Le profil par défaut peut être considéré comme le profil associé à l'état initial du document. On modifie les profils du document en éditant le document cycle.

À chaque changement d'état, le profil associé est affecté au document. Si un état n'a pas de profil associé, le document conserve son profil courant.


Si le cycle contient des spécificités par rapport à une famille, c'est à dire qu'il contient des actions particulières utilisables seulement par une famille, il est nécessaire de spécifier cette famille. Ainsi le cycle ne pourra être associé qu'avec cette famille ou ses descendants.

Administration des profils

:!: Version 2.14.3 Afin de réaliser la mise en place des droits les plus courants, le document famille dispose d'une interface permettant d'accéder directement à la définition du paramétrage des droits.

Famille sans cycle de vie

Pour une famille sans cycle de vie par défaut vous avez accès aux droits pour le document famille et pour les documents de la famille.

Si vous n'avez encore effectué aucun profilage, les liens “initialisé les droits” apparaitrons. Si vous cliquez sur le lien concernant la famille cela va créer un profil de famille avec aucun droits positionnés hormis les droits pour celui qui vient de la faire. Le lien est alors remplacé par “modifier les droits”. Si vous cliquez dessus, l'interface de modification des droits apparait et vous pouvez affecter les différents droits aux groupes et utilisateurs.

De même pour les droits sur les documents. L'initialisation va créer un document profil qui sera activé avec aucun droit sauf pour l'utilisateur qui a créé le profil. Vous cliquez ensuite sur “modifier le profil” pour placer les droits des groupes et utilisateurs.

Famille avec cycle de vie

Si la famille a un cycle de vie par défaut, les différents profils associés aux états apparaitrons. Le profil par défaut des documents n'apparait pas car c'est le rôle du cycle d'imposer sa sécurité. Si vous vous voulez quand même mettre un profil par défaut, le menu “sécurité/changer le profil pour les nouveaux documents” est toujours accessible. Pour chacun des états vous pouvez “initialiser les droits” si aucun profil n'est déjà associé. Si le profil est déjà associé, vous pouvez alors le modifier ou le désactiver. La liste des états associés au profil est indiqué dans la liste (exemple “rédigé, publié”). Si vous voulez lier un profil à plusieurs état, il faudra passer par le cycle de vie pour le faire. Lorsqu'un profil est indiqué en rouge, cela signifie qu'aucun droits n'est positionné (tout le monde peut tout faire).

Cette interface ne donne pas accès à toutes les possibilités de mise en place de sécurités liées à une famille. Son rôle est de permettre à un administrateur d'accéder aux modifications ponctuelles de droits.

index du manuel

Importation et exportation de documents

Exportation

Le contenu d'un dossier ou le résultat d'une recherche peut être exporté dans un fichier au format CSV avec comme délimiteur le point-virgule.

L'export n'est possible que si l'administrateur a le droit EXPORT sur l'application FDL et l'acl FREEDOM_MASTER de FREEDOM.

Pour exporter, il faut cliquer sur le menu outils/exportation du dossier depuis la fenêtre d'ouverture de dossier (ou de recherche). L'accès à l'exportation est aussi disponible sur le menu contextuel affichable en cliquant sur les icônes de dossier ou de recherche présentes dans l'arborescence.

L'export produit un fichier CSV (séparé par des point-virgules) ou un fichier archive (Zip) si vous avez sélectionnez avec les fichiers. Explications des options :

option signification
Encodage Deux encodages sont proposés. Cela est nécessaire pour les valeurs textuelles qui comportent des accents. Si votre poste client est sur le système Windows et que vous voulez utiliser MicroSoft Excel, il est préférable de choisir Latin1. Sinon pour openOffice.org il est conseillé d'utiliser UTF-8. Lors d'une importation FREEDOM détecte automatiquement l'encodage et supporte correctement ces 2 encodages.
Profil Cela est utile pour sauvegarder les profils associé à un document. Seuls les profils des documents avec profils dédiés (généralement les documents profils) sont exportés. Cette option est surtout utile lorsqu'un concepteur de famille veut récupérer son paramétrage profil.
Fichiers L'option sans les fichiers indique que seul le fichier csv contenant les valeurs des attributs sera exporté. Les fichiers liés aux attributs de type file ou image ne sont pas exportés. L'option avec les fichiers indique que l'exportation génèrera un fichier archive de type Zip. Cette archive contiendra le fichier fdl.csv qui contient les valeurs des attributs et les fichiers attachées aux documents exportés. Cette archive peut être réimporté à l'importation d'archive de FREEDOM (Voir ci après). Pour des raison de compatibilité avec les différents systèmes d'exploitations les noms des fichiers exportés ne comportent pas d'accents
Identificateur Permet de sauvegarder les identificateurs numériques des documents. Cela implique que votre fichier ne sera ré-importable que dans la même base. Cela identifie de manière non ambiguë le document dans l'objectif d'une restauration. Dans tous les cas, si les documents comportent des noms logiques (propriété name), ces noms sont exportés.

Chaque ligne commençant par DOC présente les attributs visibles et invisibles (type hidden) d'un document. Les documents sont rangés par famille. À chaque changement de famille, une rangée indique les définitions des attributs de la famille (1ère colonne : / /FAM).

L'ordre de présentation des attributs suit l'ordre défini par les attributs de la famille. Les quatre premières colonnes sont communes pour tous les documents.

  • 1ère colonne : toujours égale à DOC
  • 2ème colonne : identificateur de la famille
  • 3ème colonne : identificateur du document
  • 4ème colonne : identificateur du dossier (ou de la recherche) où a été extrait le document

Le document est exploitable sur tout tableur tel que Microsoft Excel, OpenOffice.org ou Gnumeric en spécifiant que le caractère séparateur est le point-virgule.

Importation

Constitution du fichier d'importation

Le fichier d'import peut être au format :

  • CSV (séparateur point-virgule / pas virgule) avec un encodage latin9 ou utf-8
  • OpenDocument Spreadsheet (tableur OpenOffice.org .ods)

Généralités

Comme pour l'export les quatre premières colonnes définissent les paramètres du document :

  • 1ère colonne : toujours DOC
  • 2ème colonne : identifiant de la famille
  • 3ème colonne : identifiant du document. Utiliser un identifiant existant indique une modification du document existant. Un identifiant vide ou égal à zéro indique une création de document.
  • 4ème colonne : identifiant du dossier où insérer le document. Si un identificateur est précisé le document est référencé dans le dossier (s'il n'y est pas déjà). Si l'identificateur n'est pas précisé (vide ou zéro), le document est référencé dans le dossier courant (celui qui est sélectionné dans l'arborescence). Si l'identifiant est '-' alors il ne sera référencé dans aucun dossier.

Les colonnes suivantes décrivent les valeurs des attributs du document.

Ordre des attributs

FIXME ORDER

Clés d'imports

FIXME KEYS

Importation générale de documents sans fichier

L'importation de document utilise un fichier de même format que pour l'exportation. Par contre, certains attributs présents dans le fichiers d'exportation peuvent ne pas être présents dans le fichier d'importation. Pour réutiliser un fichier issu de l'exportation, il faudra bien s'assurer que les colonnes soient les mêmes (ordre et définition) que celles demandées.

On ne peux pas importer des attributs qui sont calculés en fonction des données de la base : ils seraient systématiquement écrasé par le nouveau calcul.




Pour importer un fichier décrivant des documents, il faut sélectionner import de documents dans la barre de menu Outils. Afin de voir les formats d'importation des familles il suffit de sélectionner la famille souhaitée.

L'import de fichiers associés aux attributs de type file et image n'est pas possible dans ce cas.

Avant l'import, il est nécessaire d'analyser le fichier d'import pour être sûr de ce qu'on importe. L'analyse indique le titre du document importé si le document est un nouveau ou une mise à jour et dans quel dossier il va être placé.

S'il y a au moins un document, les boutons d'importations sont activés. Si le nombre de documents est supérieur au paramètre FDL_MAX_FGEXPORTDOC, l'importation directe reste désactivée seul l'importation en tâche de fond est possible.

Les nouveaux documents (pas d'identificateur spécifié) qui ont le même titre qu'un document existant de la même famille sont ignorés par défaut. Ils peuvent être ajouté si on change la politique d'import. Dans le cas 'Ajout nouveau document', un nouveau document avec le même titre qu'un document existant sera créé.

Dans le cas de l'importation en tâche de fond, le rapport d'importation sera envoyé au mail spécifié (par défaut celui de l'utilisateur) une fois l'import effectué.

Importation spécifique de documents sans fichier

Plus d'options d'importation sont disponibles avec ce type d'importation. Par contre la construction du fichier CSV reste la même. Cette importation est disponible via l'application 'Gestion par famille', dans le menu 'outils' choisir 'fichier à importer' ou par le bouton 'import spécifique' disponible sur l'interface d'importation générale.

Cette importation peut être utilisée pour l'importation d'un ensemble de documents de la même famille. Il faut auparavant sélectionner la famille que l'on veut importer avant de sélectionner 'fichier à importer'.

Avec ce type d'importation, l'utilisateur peut choisir l'ordre des colonnes composant le CSV en cliquant sur 'ordre des colonnes'. Les quatre premières colonnes (DOC;<id famille>;<id document>; <id dossier> restent immuables. Par défaut l'ordre des colonnes est celui défini par la famille. Vous pouvez soit supprimer des colonnes, soit modifier leur ordre. Pour supprimer il faut sélectionner la (les) colonne(s) et les déplacer dans le cadre de droite (bouton $-3ÌÎ). Pour changer l'ordre des colonnes, il faut utiliser les boutons ÌÍ et ÌÏ .L'ordre et la définition des colonnes utilisés sera celui du cadre de gauche. Lorsque vous modifiez cet ordre, l'écriture des colonnes en bas est aussitôt modifié. Vous pouvez utiliser ces deux lignes inscrites dans le cadre pour votre fichier CSV afin d'indiquer l'ordre de vos colonnes. La première ligne 'ORDER' indique au logiciel le nouvel ordre des attributs d'importation établi pour cette famille. S'il n'y a pas de ligne ORDER dans le fichier, l'ordre sera celui défini dans le cadre gauche. Dans le cas contraire ce sera l'ordre défini dans le fichier qui sera pris en compte. Les quatre premières colonnes d'une ligne ORDER sont composées du mot-clef 'ORDER', de l'identificateur de la famille puis de deux colonnes non utilisées (servant seulement pour l'alignement avec les lignes DOC). Les colonnes suivantes contiennent les identifiant des attributs de la famille. La deuxième ligne inscrite dans le cadre du bas ('#DOC') sert juste à aider l'utilisateur sur la signification des colonnes.

Le cadre dossier indique tous les dossiers fils et petit-fils du dossier par défaut défini par la famille. Lors d'un importation, vous pouvez choisir l'emplacement des documents importé dans un ou plusieurs des dossiers proposés.

Le cadre 'Politique' permet de choisir la politique d'importation lorsqu'un document à importer possède des similitudes avec un document existant. La similitude est détectée par défaut si un document d'une même famille possède le même titre. L'utilisateur peut modifier les clefs de recherche de similitude en utilisant un ou deux attributs de la famille (exemple : pour un article manufacturé on peut définir que l'on a affaire à un même document si la référence constructeur et le constructeur sont identiques).


La cadre 'valeurs par défaut' permet d'affecter des valeurs à toutes valeurs nulles (vides) définies dans le fichier d'importation. Ces valeurs par défaut sont uniquement utilisées pour des nouveaux documents, pas pour les mise à jours.


La case 'Analyse seulement' est cochée par défaut. Si vous appuyez sur 'Importation CSV' alors l'analyse du fichier sera effectuée et le résultat sera affiché dans le cadre du bas.


Les ajouts sont notifiés en vert, les modifications en jaune et les document ignorés en rouge.

Le résultat de l'analyse indique le nombre de documents à prendre en compte (ajouté ou modifié). Il indique pour chaque ligne du fichier, l'interprétation effectuée et l'action qu'il entreprendra. Si l'analyse est conforme aux attendus vous pouvez décocher 'analyse seulement' est lancer réellement l'importation. Le résultat apparaîtra dans le cadre du bas à la place de l'analyse.

Importation d'arborescence

L'importation d'une arborescence de fichiers peut être effectuée avec l'importation d'archive. L'archive contient une arborescence de répertoires contenant des fichiers. L'arborescence de répertoires sera rattachée au plan de classement en créant une arborescence de dossiers. Ensuite les fichiers ou les descriptions de documents seront insérés dans ces dossiers.

Cette archive permet :

  • de créer un plan de classement
  • d'ajouter des documents contenant des fichiers avec des caractéristiques
  • d'insérer des fichiers sans caractéristique



Constitution de l'archive

Vous devez créer sur votre machine locale votre arborescence de répertoires. Dans chacun de vos répertoires vous placez les fichiers à importer. Ces fichiers seront par défaut ajoutés dans le dossier correspondant à votre plan de classement.

Dans chaque répertoire, un fichier de description nommé fdl.csv doit être créé pour indiquer les caractéristiques des fichiers. Si ce fichier n'est pas présent la conversion par défaut sera effectuée et aucune caractéristique ne sera présente dans les documents contenant les fichiers du répertoire. Ce fichier de description est tel qu'il est décrit dans le paragraphe précédant. Pour les attributs de type fichiers, il suffit d'indiquer le chemin relatif vers le fichier.

FAM image(IMAGE) <specid> <fldid> titre image description
ORDER IMAGE img_title img_file img_description
DOC IMAGE - place principale photos/Carnaval 005.jpg vue du balcon\navec les bandas
DOC IMAGE - animations photos/Carnaval 006.jpg

Dans l'exemple ci-dessus, le fichier fdl.csv indique la création de trois documents en attachant trois fichiers de l'archives. Le répertoire courant contient ici un sous répertoire photos contenant les fichiers jpeg.

Pour chaque fichier de description, le mot-clef DFAMID indique la famille de conversion par défaut pour les fichiers non référencés. Ces fichiers sont ceux qui n'ont pas été spécifiés dans un des fichiers de description de l'archive. S'il n'y a pas de redéfinition de DFAMID dans les sous répertoires, la famille par défaut définie par le répertoire père sera réutilisé. Le fichier de description décrit le document du dossier courant. Il ne peut pas décrire des documents d'autres dossiers. Les colonnes <special id> et <special dirid> doivent être vides dans ce cas pour l'ajout de document.

De même que pour la famille des fichiers par défaut, le mot-clef DFLDID indique la famille du container par défaut pour les répertoires. Par défaut DFLDID est l'identifiant de la famille dossier. Il faut obligatoirement que cet identificateur soit une famille dérivée de dossier.

Une fois l'arborescence, les fichiers et les fichiers de description remplis, il suffit de créer une archive sur votre poste local. Le format de fichier de l'archive peut être un tar compressé (tar.gz, tgz, tar.bz2). La compression du tar peut être effectuée soit par gzip (par défaut), soit par bzip2. Ce format peut aussi être un Zip (répertoire compressé par défaut sous Windows).

Voici un exemple très simple d'une archive contenant 2 images :Exemple d'archive

Téléchargement de l'archive

Une fois l'archive créé, il faut la transférer sur le serveur documentaire. Si l'archive est assez petite en taille, un transfert classique peut être effectué. La taille maximum d'importation dépend de la configuration de PHP (Upload configuration) au niveau du serveur. Une modification de ce paramètre implique un redémarrage de Apache.

Si l'archive est trop volumineuse, un transfert plus classique (scp, ftp) peut être effectué par l'administrateur. Il faut alors la placer sous le répertoire suivant du serveur : <FREEDOM_UPLOADDIR>/<login>/tars

Où FREEDOM_UPLOADDIR est le paramètre applicatif indiquant le répertoire de stockage (par défaut /tmp/upload), login est le nom de connexion de l'utilisateur. Par exemple pour jean.martin le répertoire de stockage des archives sera /tmp/upload/jean.martin/tars/.

Une fois l'archive téléchargée, il suffit d'aller aux archives pour voir le résultat de l'extraction.

Les fichiers commençant par un point sont ignorés.

Analyse de l'archive


Le résultat de l'extraction est visible dans la première partie de la fenêtre. S'il y a plusieurs archives on peut sélectionner celle que l'on souhaite. Seules les archives téléchargées par l'utilisateur sont présentées ici. Ces archives sont dans un espace temporaire et elles peuvent être supprimées.

La seconde partie montre ce qui sera effectué lors de l'importation dans la base documentaire.

Trois options d'importation sont proposées:

Dans tous les cas les dossiers sont créés conformément à l'arborescence de fichiers.

  • Seul fichier CSV : si coché ne traite que des documents qui sont décrits dans les fichiers fdl.csv. Sinon traite d'abord les documents issus des fichiers de description puis des fichiers non référencés.
  • Famille fichier par défaut : famille utilisée pour les fichiers non référencés dans le cas où DFAMID n'est pas renseigné
  • Famille dossier par défaut : famille utilisée pour les répertoires dans le cas où DFLDID n'est pas renseigné
  • Dossier racine : ajoute un dossier pour contenir l'ensemble de l'importation de l'archive. Le nom du dossier est celui de l'archive. Il peut être modifié après l'importation.

À chaque modification d'options, il faut relancer l'analyse pour effectuer l'importation.






Importation de l'archive

Une fois que l'analyse est conforme à vos attentes il suffit de lancer l'importation en tâche de fond. Un email vous sera envoyé avec le résultat de l'analyse dès que l'importation sera finie.

Après importation, vous pouvez alors supprimer l'archive afin d'éviter une deuxième importation non souhaitée.

Importation de profils

Création de profil

FIXME PROFIL

Affectation de profil

FIXME PROFIL

Définitions des accessibilités

FIXME ACCESS

Divers

Affectation d'icone

FIXME DOCICON

Balise applicative

FIXME ATAG

Importation de documents famille

Voir chapitre Importation famille

Importation de table d'échanges FREEDOM -> LDAP

FIXME LDAPMAP

Importation de masse

Pour les importations importantes de document sans fichier, vous pouvez accélérer votre importation en utilisant le script wsh csv2sql. Ce script transforme un fichier CSV (avec ';' comme séparateur) (ou ODS) contenant des DOC en commande sql prêtes à l'insertion en base de données.

Ce script permet une importation brute. C'est à dire pas d'appel aux méthodes Doc::PostModify ou Doc::postCreate, pas de vérification d'unicité.

# . /etc/freedom.conf
# wsh --api=csv2sql --file=/var/tmp/test.csv | psql freedom anakeen

Il est bien sûr fortement conseillé de bien vérifier la sortie du script avant l'injection.

Dans les fichiers CSV, il faut obligatoirement que les DOC soient précédés d'une ligne ORDER indiquant la correspondance entre les colonnes et les attributs.

index du manuel

Fonctions Wsh

Les fonctions bash sont activables via le programme “wsh.php”. Elles doivent être exécutées dans une fenêtre shell sur la machine serveur.

Comment exécuter une fonction WSH

Pour exécuter une fonction WSH, il y a deux méthodes :

1 - Indiquer le chemin complet de la fonction. Exemple :

<wiff_context_root>/wsh.php --listapi

Le <wiff_context_root> est le répertoire d'installation de freedom.

2 - Utiliser un alias wsh. Exemple :

alias wsh="<wiff_context_root>/wsh.php"
wsh --listapi

Remarque : Il est possible de charger ce fichier de configuration automatiquement au démarrage en ajoutant ces lignes au fichier ”~/.bashrc”:

alias wsh="<wiff_context_root>/wsh.php"

ATTENTION : Pour faciliter la lecture et la saisie des commandes, nous allons utiliser uniquement l'alias “wsh” dans ce document.

listapi

Cette commande, permet de connaître les fonctions de l’API disponible :

wsh --listapi

Remarque : Le résultat de cette commande, donne en faite la liste des fichiers .php du répertoire ”/usr/share/what/API

fdl_adoc

Permet de reconstruire les classes PHP conformément à la définition décrite dans la table docattr de la base Postgresql Freedom.

Paramètres :

  • docid : référence de la famille à mettre à jour. Si non précisé toutes les familles sont mises à jour.
wsh --api=fdl_adoc --docid=100



À utiliser si des modifications ont été faites directement dans la base de données.

freedom_clean

Supprime les documents temporaires et nettoie les contenus des dossiers.

Paramètres : aucun.

wsh --api=freedom_clean

Ce nettoyage est effectué tous les jours de manière automatique.

freedom_convert

Convertit un document dans une autre famille. Le document perd tous les attributs qui n'existent pas dans la nouvelle famille.

Paramètres :

  • tofamid : référence de la nouvelle famille
  • docid : référence du document
wsh --api=freedom_convert --tofamid=124 --docid=4568

freedom_groups

Mets à jour la table des groupes FREEDOM par rapport à base de données WHAT. Copie la table groups de la base anakeen vers la base freedom.

Paramètres : aucun

wsh --api=freedom_groups

Cette fonction est appelée par l'application USER de WHAT à chaque changement de groupes.

freedom_import

Permet d'importer des documents au format CSV ou OpenOffice.org dans la base Freedom.

Paramètres :

  • file : chemin du fichier
  • analyze : (optionnel) si Y alors analyse le fichier seulement. Si N (défaut), l'importation est effectuée.
  • dirid : (optionnel) référence du dossier par défaut pour classer les documents. Le document est classé dans ce dossier si sa référence de dossier (3ème colonne) est vide ou égale à zéro. Si cet attribut vaut zéro et qu'il n'a pas de référence dossier, alors le document n'est pas classé. Si cet attribut n'est pas précisé et qu'il n'a pas de référence dossier, il est classé dans le dossier par défaut de la famille s'il existe sinon il est classé dans le dossier« Import » (référence 10).
  • double : (optionnel) : si Y alors autorise l'import d'un nouveau document de même titre et de même famille qu'un document existant. Si N (défaut), les nouveaux documents de même titre sont ignorés.
  • reinitattr : (optionnel) : si yes, dans le cas d'un import de description de famille, alors les précédentes descriptions des attributs (dans la table docattr) sont supprimées. Le fichier de Class (Method.*.php) est re-généré. Dans le cas de l'import des familles de type cycle de vie, il faut “initialiser” tous les documents de ces familles pour reconstituer les attributs. Dans tous les cas, les valeurs en base de données ne sont pas affectées. Remarque : cette option n'a pas à être utilisée autrement que pour importer des familles (par exemple, à ne pas utiliser pour l'import de paramétrages de documents “système” (masque, contrôle de vue, profils, …))
wsh --api=freedom_import --file=/home/eric/Banques.csv --analyze=Y

Le rapport des documents importés est écrit sur la sortie standard.

freedom_refresh

Permet de recalculer les valeurs des attributs dynamiques d'un document ainsi que de leur titre. Le raffraichissement se fait pour tous les documents d'une même famille.

Paramètres :

  • famid : référence de la famille des documents à raffraîchir.
wsh --api=freedom_refresh --famid=100

freedom_refresh avec une méthode en argument

La méthode freedom_refresh permet de passer une méthode en argument. Cet exemple montre comment changer le profil d'un document et de tous les documents d'une famille.

Paramètres :

  • famid = id (logique ou nombre) de la famille
  • method = méthode de la famille à activer
  • docid (OPTIONNEL) = id du doc (si pas précisé = tous les documents)
  • arg = chaîne de caractère étant les arguments passé à la méthode

Affecter le profil 1234 au document 8776 de la famille MA_FAMILLE :

wsh --api=freedom_refresh --famid=MA_FAMILLE --docid=8776 --method=setProfil --arg=1234

Affecter le contrôle de vue 2345 à tous les documents de la famille MA_FAMILLE :

wsh --api=freedom_refresh --famid=MA_FAMILLE --method=setcvid --arg=2345

Affecter le contrôle de vue 2345 uniquement au document 8776 de la famille MA_FAMILLE :

wsh --api=freedom_refresh --famid=MA_FAMILLE --docid=8776 --method=setcvid --arg=2345

ods2csv

Cette fonction permet de convertir un fichier OpenOffice.org Calc (.ods) en fichier CSV. Le fichier CSV peut ensuite être utilisé pour réaliser des importations avec la fonction “freedom_import” documentée ci-dessus.

Paramètres :

  • odsfile : Permet d'indiquer le nom du fichier .ods à convertir
  • csvfile (optionnel) : Permet d'indiquer le nom du fichier .csv de destination. Si cette option n'est pas utilisée, le résultat est donné sur la sortie standard.
wsh --api=ods2csv --odsfile=/MonChemin/MonFichier.ods
wsh --api=ods2csv --odsfile=/MonChemin/MonFichier.ods --csvfile=/MonChemin/MonFichier.csv

Remarque : Il n'est pas nécessaire de convertir un fichier OpenOffice.org en fichier CSV avant de l'importer dans Freedom, car Freedom est capable d'importer directement le fichier OpenOffice.org.

Exporter la page au format Open Document

# ID Links
1wiki:pagename4 : Show backlinks
2freedom_3:install:dev:repomngt2 : Show backlinks
3some:namespaces2 : Show backlinks
4documentation:manuel_admin_user2 : Show backlinks
5freedom_2.14:cookbook:k:attributes1 : Show backlinks
6freedom_2.14:cookbook:onefam-instance1 : Show backlinks
7freedom_2.14:cookbook:workflow1 : Show backlinks
8freedom_2.14:cookbook:interfaces:ctxmenu1 : Show backlinks
9freedom_2.14:use:9_revision_document1 : Show backlinks
10shortcuts:legacy1 : Show backlinks
11freedom_2.14:install:freedom1 : Show backlinks
12documentation:modules:dav1 : Show backlinks
13shortcuts:stable1 : Show backlinks
14shortcuts:devel1 : Show backlinks
15shortcuts:install1 : Show backlinks
16shortcuts:roadmap1 : Show backlinks
17wiki:nonexisting1 : Show backlinks
18freedom_2.14:cookbook:interfaces:interattribute1 : Show backlinks
19example:budget1 : Show backlinks
20edito:wishlist1 : Show backlinks
21freedom_2.14:install:wiff:dev:repomngt1 : Show backlinks
22documentation:modules:dav:installation_wiff1 : Show backlinks
23documentation:manuel_d_exploitation:authentification1 : Show backlinks
24documentation:gestion_des_utilisateurs1 : Show backlinks
25modules:freedom-api:all1 : Show backlinks
26mailto:login_domain1 : Show backlinks
27mailto:login_domaine1 : Show backlinks
28freedom_3:install:tuning_postgresql1 : Show backlinks
29freedom_3.1:install:tuning_postgresql1 : Show backlinks
30freedom_2.14:cookbook:interfaces:fdc:getdoc1 : Show backlinks
31freedom_2.14:cookbook:interfaces:fdc:setparamu1 : Show backlinks
32documentation:manuel_de_programmation1 : Show backlinks
33documentation:mad:wsh1 : Show backlinks
34documentation:manuel_de_programmation:creation_application1 : Show backlinks
35documentation:manuel_de_programmation:actions_particulieres1 : Show backlinks
36contribution:wishlist1 : Show backlinks
37edito:portage_oracle1 : Show backlinks
38freedom_2.14:cookbook:interfaces:fdc:inserthtml1 : Show backlinks
39freedom_2.14:install:tuning_postgresql1 : Show backlinks
40freedom_2.14:cookbook:attributes:computing1 : Show backlinks
41modules:freedom-webdesk:freedom1 : Show backlinks
42documentation:manuel_de_programmation:vue_edition1 : Show backlinks
1) à éviter sur un site en production
freedom_2.14/admin/all.txt · Dernière modification: 11/03/2010 11:49 par jerome.auge