index du manuel

Les familles

Une famille définit un ensemble d'attributs.



Définition des attributs

Pour accéder à la définition des attributs, il faut sélectionner l'item éditer les attributs dans le menu contextuel du document famille. 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 de nouveau “éditer les attributs”.

Cette interface sert juste à ajuster les attributs d'une famille. Pour une définition complète d'une famille il faut se référer au manuel de programmation.

Identificateur

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<sup>1</sup>. 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.

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.

Nom

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

Type

Défini le type syntaxique de l'attribut. Les types peuvent être :

  • 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.
  • docid : identifiant de document
  • image : image à télécharger. Formats image supportés : GIF, JPEG, PNG.
  • menu : défini une action particulière qui sera disponible dans le menu contextuel.
  • array : définition d'un tableau d'attributs
  • integer : nombre entier
  • double : nombre réel
  • money : nombre réel avec 2 chiffres après la virgule
  • doc(“id attr”) : permet de voir la miniature associée à l'attribut 'id attr' qui doit être du type docid. Il s'utilise à la place du type text lorsque celui-ci est utilisé pour lier un document.
  • idoc(“id famille”): document intégré de la famille 'id famille'. Permet d'intégrer un document à l'intérieur d'un autre document.
  • option(“id attr”) : pour voir et éditer les attributs options définis dans le document lié à 'id attr' “qui doit être du type docid. Le document lié doit contenir des attributs de type options.
  • enum : défini une liste de choix fini. Un seul choix parmi la liste est possible
  • enumlist : défini une liste de choix fini. Plusieurs choix parmi la liste sont possibles
  • 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.

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

text(”%.02f”) “pour afficher un nombre avec 2 décimales,

text(”<B>%s</B>”) “pour afficher l'attribut en gras.

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 ».

Cadre

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

Résumé

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

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é.

Visibilité

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

  • 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
  • I : invisible : l'attribut n'est pas présent dans les documents en consultation et en édition.

Au contraire de l'attribut caché qui est présent mais non visible.

Obligatoire

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

HyperLien

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.

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 “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.

Soit US_IDSOC l'attribut identifiant le document société de la famille personne. Pour créer un hyperlien vers le document famille 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 FREEDOM_CARD (affichage d'un document) dont l'identificateur est celui défini dans l'attribut US_IDSOC.



Cas particulier : pour les menus :

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”. Toutes les options sur les menus sont décrites dans le paragraphe §7.2.4.3.

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

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


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



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<sup>2</sup>”.




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”.




Cas particulier pour les liens

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




Cas particulier pour les extraliens

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




L'exemple ci-dessus affichera le bouton '$' avec le texte surgissant « éditer une facture ».

Fichier d'aide à la saisie

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 ”/home/httpd/what/EXTERNALS”.

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

Fonction d'aide à la saisie

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 :

”&lt;nom fonction&gt;(&lt;P1&gt;,&lt;P2&gt;,…):R1,R2,R3,…”

nom de fonction : nom de la fonction PHP à appeler

Pi : soit l'identificateur d'un attribut

soit D : coordonnée de la base de donnée Freedom

soit I : numéro de référence du document

soit {FAMNAME} : FAMNAME étant le nom interne de la famille. Est remplacé par la numéro de référence de la famille

soit {PARAM} : PARAM étant un identificateur de paramètre. Est remplacé par la valeur du paramètre

soit un chiffre : chiffre mis en argument tel quel

soit chaîne de caractère : mise en argument telle quelle

Ri: identificateur de l'attribut à modifier

La fonction d'aide à la saisie calcule une liste de choix en fonction des paramètres Pi. Lorsque l'utilisateur fait son choix les attributs Ri 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)”

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=FREEDOM&action=FREEDOM_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.

5.1.12.Attributs calculés

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).

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%&amp;app=FDL&amp;action=FDL_CARD&amp;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é.

5.1.13.Attributs énumérés

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 sera présenté sur l'interface; la clef la valeur qui sera 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 ce sera 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.

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$-1òù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.

Certaines variantes de sélection sont possibles :

  • pour les énumérés simples :
  • vcheck : boutons radio (exclusifs) alignés verticalement
  • hcheck : boutons radio alignés horizontalement
  • 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

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, ce sera le premier choix qui sera 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 label type phpfunc 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 [hcheck]red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no
TST_COLOR3 la couleur de la table enum [vcheck]red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no
TST_COLOR4 aimez-vous le vert ? enum [bool]red¦rouge,green¦vert bmenu=no
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 [hcheck]red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no
TST_COLOR7 les couleurs du ciel enumlist [vcheck]red¦rouge,lightgreen¦vert,darkblue¦bleu foncé,yellow¦jaune bmenu=no


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.

5.1.14.Attribut de type menus

Ces attributs permettent d$-1òù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.

“idattr” “label” “type” link “phpfunc” option
“CMC_M_M1” “Proposition n°1” “menu” ”%S%&amp;app=FDL&amp;action=FDL_CARD&amp;id=%CMC_IDPROPO1%”
“submenu=proposition”
“CMC_M_M2” “Proposition n°2” “menu” ”%S%&amp;app=FDL&amp;action=FDL_CARD&amp;id=%CMC_IDPROPO2%”
“submenu=proposition”
“CMC_M_PROPO” “Voir la proposition” “menu” ”%S%&amp;app=FDL&amp;action=FDL_CARD&amp;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).

5.1.15.Contraintes d'attribut

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.

“idattr” “label” “vis” link “phpconstraint”
“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.






Hiérarchie

La hiérarchie dans les familles permet d'hériter des attributs des ancêtres.

Ajout d'attributs

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

Modification d'attributs père

Si vous voulez modifier un des attributs, il suffit de mettre le même identifiant dans les rangées prévues pour les nouveaux attributs. Par contre, 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 ces 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é.

Suppression d'attributs

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

Suppression d'attribut père

Si on ne veut pas hériter d'un des attributs des ancêtres, on modifie l'attribut en le rendant invisible comme on le fait pour la suppression de ces propres attributs.

Paramétrage des familles

Le paramétrage de la famille se fait au moyen du menu contextuel du document famille.

Dossier par défaut

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.

Les catégories

Les attributs de type catégories peuvent être modifiés par l'interface ONEFAM. Il suffit de sélectionner l'onglet de la catégorie et choisir 'éditer la catégorie'.

Les recherches

De même que des dossiers, on peut sauvegarder des recherches dans le dossier par défaut. Ces recherches seront ensuite disponibles depuis les applications de type GENERIC dans la barre de menu recherche.

Profil de création

On associe un profil par défaut à la famille pour protéger les nouveaux documents créés.

Ce profil de document est associé à tous nouveaux documents lors de leur création. Si on modifie le profil par défaut les documents de la famille déjà créé ne sont pas impactés. Il est donc nécessaire de créer un profil pour la famille dès la définition de celle-ci si on veut rendre homogène les droits sur les documents de la famille.

L'administrateur peut aussi choisir un contrôle de vue (cf §6.4.4) par défaut qui sera appliqué lors de nouvelle création de document.

Cycle de vie

On peut associer un document cycle de vie à une famille. Ce document défini les états et les transitions du cycle. Les documents cycle de vie ne peuvent être créés via l'interface<sup>3</sup>.

Si le document cycle de vie de la famille est remplacé, les documents déjà créés conservent leur cycle de vie initial.

freedom_2.14/admin/family_hold.txt · Dernière modification: 05/03/2010 11:48 (édition externe)