En effet, comme on a besoin de tester des informations issues de la structure de l’objet et de la table, le code modèle associé à la règle d’affectation a pour table principale la table ATEXTE (une des rares tables ouvertes quel que soit le contexte). On lui lie, par un lien artificiel, la table des objets (lien 1,1). La clé de lien est ""+GABREV : en effet, GABREV est une variable globale qui permet, dans un contexte objet, de connaître le code de l’objet courant. Comme un contrôle d’existence est fait dans la table d’origine du lien si ce lien se résume à un champ, on inhibe ici le contrôle en mettant une expression résultant de la concaténation d’un champ vide et de cette variable.
Ainsi, dans l’événement OBJCRE, on dispose en ligne de la table AOBJET (structure de l’objet), et de la table ATABLE (table principale de l’objet). Ceci permet ensuite de tester l’existence du champ ENAFLG dans le dictionnaire de la table principale.On est en gestion d’objet (sans code objet précisé), en création de fiche.Critères de déclenchement
Les critères complémentaires de déclenchement sont les suivants :
- Le champ [ABV]ENAFLG n’existe pas (ABV étant l’abréviation de la table associée à l’objet, ce qui explique que l’on passe par une fonction evalue).
- La règle d’affectation des destinataires doit avoir rendu une valeur ([L]USER non vide).
- Un champ Intitulé doit exister dans la table principale de l’objet (ce pour permettre de renvoyer un intitulé dans le mail).
- Cet intitulé ne peut pas être dépendant de la langue. De ce fait, ce Workflow ne pourra pas être utilisé pour des objets qui présentent cette particularité. Dans ce cas, on écrira une règle Workflow non générique qui sera d’ailleurs infiniment plus simple.
Destinataires
Le choix des destinataires est défini de la façon suivante :
- Le destinataire du message et du suivi est [L]USER (utilisateur issu de la règle d’affectation)
Message et suivi
L'exemple de message donné ci-dessous s'appuie sur la création d'une fichier tiers. Dans ce cas, l’objet du message envoyé suivrait le modèle suivant :
Fiche Tiers MARTIN créée
Pour obtenir ce modèle, on retrouve l’intitulé de l’objet en partant du champ LIBEL de la table objet. Ce champ est de type « texte dictionnaire », il faut donc utiliser la fonction AFNC.TEXTE pour avoir le texte dans la langue courante de l’utilisateur envoyant le mail. La clé courante de l’objet est donnée par la variable CLEOBJ, qui est toujours renseignée dans un contexte objet.
Le corps du message suivra alors le modèle suivant :
Désignation : MARTIN et Associés
Créé par : DOE ( John DOE )
La désignation est obtenue en évaluant le champ intitulé de la table associée à l’objet, et les variables GUSER et GNOMUSER donnent le code et le nom de l’utilisateur courant (celui qui a créé la fiche).
Le suivi réalisé ici est minimal, puisqu’il n’y a pas de processus de signature. On se contente d’envoyer une ligne dans le moniteur Workflow du même utilisateur, avec l’intitulé :
Fiche créée : Tiers MARTIN (Martin et associés)
On a ici concaténé le nom de l’objet, la clé créée, et l’intitulé entre parenthèses.
La case Suivi étant cochée, l’utilisateur pourra simplement mettre un visa sans signature pour signifier qu’il a lu la ligne en question.
Tables mises en oeuvre
Les tables suivantes sont concernées par la règle OBJCRE :