Paramétrage > Workflow > Règles Workflow

Lorsque des événements particuliers se produisent dans le progiciel, il estpossible de déclencher de façon automatique l'exécution d'événements deWorkflow. On entend par là la possibilité de déclencher un ou plusieursdes processus suivants :

 l'enregistrementd'une trace dans une table de log (les éléments enregistrés étantparamétrables).

 l'envoi de messagespar la messagerie

 le lancement d'untraitement particulier, référencé sous la forme d'une actiondu progiciel.

La consultation du fichier log se fera à l'aide de la fonction Moniteur Workflow qui permet de faire des recherchessuivants plusieurs axes de critères.

L'envoi des messages est conditionné par l'utilisation d'une messagerieacceptant l'interface MAPI lors de l'envoi depuis le poste client ou SMTPPOP3 lors de l'envoi depuis le serveur (ce qui est le cas de la plupart desmessageries du marché).

Il est aussi possible de définir, dans le corps du message envoyé, desliens déclenchant, de façon automatisée, des actions données, sans qu’il soitnécessaire de se connecter directement au progiciel. Cette possibilité permetde créer des liens de type Signature/ Refus par exemple. Ellepeut supposer l’écriture spécifique d’une action de mise à jour, et nécessitede faire fonctionner une tâche batch pour que les actions soient prises encompte.

Le principe de base de cette interface est le suivant :

*  on définitd'abord un événement déclenchant en précisant des conditions.

*  on décritensuite suivant le besoin la composition de la trace à enregistrer dans lefichier log, et/ou le message à envoyer avec principalement son sujet, sontexte et sa liste de destinataires et/ou l'action à déclencher avec lesparamètres correspondants.

Pré-requis

Paramètres généraux

Les paramètres généraux suivants ont une influence sur le comportement de la fonction :

 TYPMES(défini au niveau Utilisateur) : Type de messagerie

 SERMES(défini au niveau Dossier) : Serveur messagerie

Habilitations

Cette fonction est de type objet. Les opérations de création, modification, etsuppression de fiche peuvent être activées ou désactivées pour un utilisateur donné.Des filtres par rôlespeuvent également être mis en place sur cette fonction.

Autres pré-requis

Menus locaux

Les menus locaux paramétrables suivants sont utilisés par la fonction. Ils doivent donc être renseignés :

 Menu local numéro 233

Divers

Outre le type d'interlocuteurs, il est nécessaire d'avoir renseigné desadresses e-mail sur les fiches correspondant aux destinataires potentiels (fichesutilisateur, et fiches tiers).

De même, si on souhaite lancer des actions autres que les actions standarddu progiciel, il faut avoir défini les actionsspécifiques que l'on souhaitera lancer.

Enfin, la prise en compte de retours de Workflow via clic dans un lien surdes messages envoyés suppose que les pré-requis suivants aient été pris encompte :

  Installation etconfiguration du serveur http recevant les réponses, et renseignement desparamètres WRKRMTMAC, WRKRMTDIR1/2, WRKRMTHTTP

  Abonnement de latâche batch AWRKLNKACT, qui déclenchera les actions définies dans le message.

Gestion de l'écran

Le paramétrage des règles de Workflow se fait à l'aide de quatreonglets :

Informations d'en-tête

Champs

Les champs suivants sont présents dans cet onglet :

Identifiant de la règle de Workflow.

  • Intitulé (champ DESIG)

    Intitulé utilisé par défaut dans les états et les écrans (dès lors qu'il y a suffisamment de place). Si on dispose de peu de place, on peut également utiliser un intitulé court s'il existe.

    • Actif (champ ENAFLG)

      Indicateur permettant d'activer ou non la règlede Workflow.

      Une règle de Workflow se définit dans l'entête par un code associé à unintitulé. A ce niveau, il est possible d'activer ou non une règle deWorkflow.

      Onglet Général

      Champs

      Les champs suivants sont présents dans cet onglet :

      Bloc numéro 1

      Ce champs permet de faire des regroupement partypologie des règles de workflow.

      Evénement déclenchant

      • Type (champ TYPEVT)

        Le type d'évènement peut être:

        - Objet : dans ce cas, l'évènement est déclenché dans la gestion d'un OBJet sur une opération (modification/création/etc.) ou l'utilisation d'un bouton spécifique ou standard.

        - Entrée fonction : cet évènement correspond au choix d'un menu.

        - Edition : à chaque utilisation du bouton Imprimer dans la gestion des impressions.

        - Fin de tâche : à la fin de chaque de chaque tâche lancée à partir du serveur batch.

        - Arrêt de tâche : à chaque interruption d'une tâche provoquée par l'utilisateur, un time-out, etc.

        - Divers : évènements particuliers (connexion/déconnexion d'une session normalement ou par time-out,arrêt d'un processus dans la fonction PSADX, envoi d'une trace).

        • Code (champ CODEVT)

          Ce champ n'est obligatoire que pour le type d'évènement Divers.

          Pour les autres types d'évènements, il permet de permet de préciser l'OBJet, la tâche, la fonction, l'état.S'il n'est pas renseigné, l'évènement s'applique à tous les codes.

          • Champ LIBEVT

             

            Bloc numéro 3

            • Opérations (champ OPERATION)

              Dans le cas d'un évenement attaché à un OBJet,ce champs permet de décrire la ou les fonctions attachées à larégle.
              - C : création
              - M : Modification
              - S : Suppression
              - V : Validation
              - I : Impression
              - B : Bouton

              Les codes avec l'option B seront sélectionnés en utilisant lebouton Workflow dans la gestion OBJet.

               


              • Boutons (champ BOUTON)

                 

                Tableau numéro 1

                • Conditions (champ CONDITION)
                  Formule de calcul) incluant desvariables en ligne au moment de l’exécution de la règle (contenusde masques d’écrans ou de tables en ligne…)

                  Ces champs permettent des conditionscomplémentaires sous la forme d’expressions logiques ( Formule de calcul) incluant des variables enligne au moment de l’exécution de la règle (contenus de masquesd’écrans ou de tables en ligne…).
                  Si ces conditions sont toutes vraies, le message sera envoyé et/oula trace écrite dans le fichier log.




                  Bas de tableau

                  • Champ BASPAG

                    Cette partie permet de stipuler les variablesbas de page qui pourront intervenir dans l’évaluation desconditions, des destinataires et du texte du message.
                    Elle n’a de sens que sur les événements concernant des OBJets duprogiciel avec des tableaux.

                    Options

                    • Trace active (champ ENALOG)

                      Indicateur permettant d'activer ou non lagestion du log.

                      • Message actif (champ ENAMES)

                        Indicateur permettant d'activer ou non lagestion des messages.

                        • Mise au point (champ DEBUG)

                          Indicateur permettant d'activer une aide à lamise au point.

                          Lors de l’exécution d’une règle et si cette optionest active, le moteur de workflow émet à l’écran les messageséventuels d’erreur d’évaluation sur les conditions, le log et lemessage.


                          • Message modifiable (champ INTERV)

                            Indicateur permettant ou pas la modification dumessage avant l'envoi.

                            Type d'envoi

                            • Champ TYPMES

                                

                              Cet onglet contient les caractéristiques générales de l'événementWorkflow. Les champs à saisir sont détaillés ci-dessous.

                              La catégorie permet un regroupement des règles dans la liste gauche. La gestiondes catégories est faite par la table diverse numéro 51 (CatégoriesWorkflow).

                              L'événement déclenchant permet de préciser dans quelle fonction ledéclenchement Workflow va se faire. Cet événement se définit par un type, etun code complémentaire.

                              Ce type peut être :

                               Objet :dans ce cas, le déclenchement se fait sur une action réalisée dans un objet standard du progiciel. Rappelons qu'un objet debase correspond à la gestion des fiches du progiciel (client, articles,factures, commandes, écritures... sont des objets).

                               Entrée fonction :l'entrée dans une fonction est alors le critèredéclenchant du Workflow. Une fonction correspond à l'exécution d'uneopération quelconque du progiciel, accessible depuis les menus (l'objet XXXest un cas particulier de fonction - le nom de la fonction correspondante estGESXXX - mais on a d'autres types de fonctions, en particulier lesconsultations, les traitements, etc. ).

                               Edition :il s'agit du lancement d'un état via Crystal Reports.

                               Fin de tâche :le déclenchement se fait sur la fin normale d'une tâche lancée via le serveurbatch (on entend par fin normale une fin déclenchée par le déroulement de latâche elle-même, que ce soit sur une erreur ou sans erreur). Pour que cetteoption fonctionne, il faut que la tâche batch soitdéclarée avec la case Message utilisateur cochée.

                               Arrêt de tâche :le déclenchement se fait sur arrêt d'une tâche batch (c'est-à-dire d'une finde tâche provoquée par une interruption soit de l'opérateur par un fichier.kil ou via le gestionnaire des requêtes, soit du serveur batch surdépassement du temps autorisé).

                               Divers :il s'agit là d'événements particuliers (connexion, déconnexion...).

                              En fonction du type d'événement déclenchant, les informationscomplémentaires à saisir seront différentes, et le contexte accessible seradifférent. Les différents cas possibles sont décrits plus précisémentci-dessous.

                              Evénement de type « objet »

                              Lorsqu'un événement de type Objet est défini, on précise d'abord lenom de l'objet concerné. Il est possible de ne pas définir d'objet, mais dansce cas, il s'agirait d'un événement de Workflow générique sur tous les typesd'objet (il est à noter que l'on pourrait tester de façon particulière dansles expressions la valeur de la variable GABREV, qui donne le code del'objet, ou GFONCTION, qui donne le code de la fonction,  pour connaîtreplus précisément le contexte).

                              Ayant défini l'objet, on précise quelles actions vont effectivementdéclencher le Workflow. Celles-ci peuvent être :

                               des fonctionsstandards de l'objet (correspondant aux boutons standards de bas d'écran).Les fonctions en question sont la Création, la Modification, laSuppression , l'Impression par Fichier/Imprimer, lafrappe du Bouton Fonction / Workflow, et le Changement de clépar Fichier / Changement de clé(la lettre en gras représente le codeà saisir dans la liste des opérations, le changement de code étant symbolisépar X).

                               l'exécution deboutons particuliers ou de fonctions accessibles depuis la barre de menu. Cesfonctions sont représentées par des lettres particulières liées à leurdéclaration dans la fenêtre associée à l'objet. Ilest à noter qu'une fenêtre de sélection permet de visualiser et de choisirles boutons ou fonctions accessibles.

                              Il est à noter que l'on peut saisir plusieurs codes, aussi bien dans lesfonctions standards que dans les boutons particuliers. Ainsi, en gestion desclients, on pourrait déclencher un Workflow à la fois en création et enmodification (code CM dans la zone Opérations) et en zoom sur Parcet sur Impayés(code IM dans la zone Boutons).

                              La fonction Best un peu particulière, dans la mesure où ellepermet de déclencher automatiquement un Workflow prédéfini sur frappe de lacommande Fichier / Workflow. Lorsque cette fonction est déclenchée, untest est fait pour vérifier s'il existe au moins un événement Workflow actif,basé sur l'objet courant, et se déclenchant sur la fonction B. Selonle résultat de cette recherche, le comportement est le suivant :

                              *  si aucunerègle n'existe, on saisit le texte du message et la liste des destinataireset on l'envoie sur validation de l'opérateur, en y incluant une icônepointant sur l'objet et la fiche courante.

                              * si uneseule règle existe, cette règle est exécutée (l'opérateur n'intervient dansce cas sur le message que si la case à cocher Message modifiable estactive)

                              * siplusieurs règles existent, un choix de la règle à appliquer est proposé àl'opérateur avant déclenchement du Workflow.

                              Dans tous les cas de Workflow sur objet, le déclenchement a lieu lorsquela fonction est réalisée (ie. en fin d'exécution du bouton, c'est-à-dire auretour d'un zoom, par exemple, ou lorsque la création d'une fiche a étéréussie). Ceci permet, le cas échéant, de tenir compte d'informations liéesau résultat d'une opération, si elles peuvent être connues dans un contextedonné.

                              Dans ce type d'événement, les variables en ligne utilisables pour évaluerdes conditions ou des expressions utilisables sont :

                               Les variables desmasques (classes [M :XXX]) contiennent la valeur de ce qui a été saisiet qui va être validé (ainsi, en cas de modification, on y retrouve lesvaleurs modifiées).

                               Les variables de latable principale liée à l'objet (classe [F:XXX]) contiennent la valeurcourante de la fiche. En cas de modification, elle contiennent la valeurantérieure (avant modification), ce qui permet de détecter les modificationsde champs.

                               Les variables de latable [F:AUS] contiennent les informations liées à l'utilisateur courant (ellessont en ligne dans tous les types d'événements de Workflow). De même, uncertain nombre de variables globales, dont le nomcommence par G, sont en ligne.

                              L'éditeur de formule, accessible par clic droit en mode client-serveur surles formules de calcul, donne une liste des variables, tables, et écransutilisables dans le contexte.

                              Dans le cas de Workflow sur Fichier / Imprimer,il est à noterque :

                              *   le Workflow ne se déclenche pas sur l'action d'impression si l'utilisateurabandonne son impression (ie. s'il ne valide pas sa saisie de paramètresd'impression).

                              *   la variable GOLDETAT permet de connaître l'état imprimé, et la variableGIMPETAT permet de connaître la destination (pré-visualisation, imprimante,mail...) conformément aux valeurs données par le menu local numéro 95.

                              Evénement de type « Entréefonction »

                              Lorsqu'un événement de type Entrée fonctionest défini, on précisele nom de la fonction concernée. Il est possible dene pas définir de nom de fonction, mais dans ce cas, il s'agirait d'unévénement de Workflow générique sur toutes les fonctions parcourues (il est ànoter que l'on pourrait tester de façon particulière dans les expressions lavaleur de la variable GFONCTION pour savoir dans quelle fonction on setrouve).

                              Il est important de noter que seule l'entrée directe depuis le menu esttestée ; une entrée par le biais d'un tunnel depuis un champ situé dansl'écran associé à une autre fonction n'est pas considérée comme une entréedans une fonction.

                              Les seules variables en ligne à ce stade sont les variables globales etcelles de la classe [F:AUS].

                              Evénement de type« Edition »

                              Lorsqu'un événement de type Editionest défini, on précise le nomde l'état concerné. Il est possible de ne pasdéfinir de nom d'état, mais dans ce cas, il s'agirait d'un événement deWorkflow générique sur tous les états lancés (il est à noter que l'onpourrait tester de façon particulière dans les expressions la valeur de lavariable [F:ARP]RPTCOD pour savoir quel état on lance).

                              Les variables en ligne à ce stade sont :

                               les variablesglobales et celles de la classe [F:AUS].

                               les variables liéesaux paramètres de lancement. On les trouve dans l'écran des paramètresaccessible en mode client-serveur via l'assistantde formules.

                              Comme pour le bouton Fichier / Imprimer, la variable GOLDETATpermet de connaître l'état imprimé, et la variable GIMPETAT permet deconnaître la destination (pré-visualisation, imprimante, mail...)conformément aux valeurs données par le menulocal numéro 95. Par ailleurs, la variable GFONCTION permet de savoir lafonction ayant déclenché l'impression. Ainsi, au lieu de passer par unWorkflow sur Fonction / Imprimer, on peut aussi passer par un Workflowsur l'impression, en testant la fonction appelante.

                              L'utilisation des variables liées au paramètres de lancement est un peucomplexe. En effet, ces paramètres sont stockés dans les valeurs de tableau[M :RPT]VALEUR1 et [M :RPT]VALEUR2 (la deuxième valeur étantutilisées pour les valeurs début/fin), à un indice qui peut être retrouvé enrecherchant le code du paramètre dans le tableau [M :RPT]PARDES (entreles indices 0 et [M :RPT]NBPAR-1). Par exemple, en supposant qu'un paramètrenommé SITE existe dans les paramètres de l'état, on retrouverait sa valeurpar la formule suivante :

                                [M :RPT]VALEUR1(find("SITE",[M :RPT]PARDES(0..[M :RPT]NBPAR-1))-1)

                              Si un paramètre SITEDEB existait dans les paramètres de l'état, les deuxvaleurs début fin seraient obtenues successivement par :

                                [M :RPT]VALEUR1(find("SITEDEB",[M :RPT]PARDES(0..[M :RPT]NBPAR-1))-1)

                                [M :RPT]VALEUR2(find("SITEDEB",[M :RPT]PARDES(0..[M :RPT]NBPAR-1))-1)

                              Evénement de type « Fin detâche »

                              Lorsqu'un événement de type Fin de tâcheest défini, on précise lenom de la tâche batch concernée. Il est possible dene pas définir de nom de tâche, mais dans ce cas, il s'agirait d'un événementde Workflow générique sur toutes les tâches lancées (il est à noter que l'onpourrait tester de façon particulière dans les expressions la valeur de lavariable [F:ABR]TACHE pour savoir quelle tâche on lance).

                              Les variables en ligne à ce stade sont :

                               les variablesglobales et celles de la classe [F:AUS].

                              * lesvariables liées aux paramètres de lancement. On les trouve dans les écransassociés à la fenêtre de lancement ; ces écrans sont accessibles parl'intermédiaire de l'assistant de formules.

                              * lesvariables liées aux conditions de fin d'exécution de la tâche (codes d'erreuréventuels). On retrouve ces variables dans l'annexetechnique liée au serveur batch.

                              Evénement de type « Arrêtde tâche »

                              Lorsqu'un événement de type Arrêt de tâcheest défini, on précisele nom de la tâche batch concernée. Il est possiblede ne pas définir de nom de tâche, mais dans ce cas, il s'agirait d'unévénement de Workflow générique sur tous les arrêts de tâches lancées (il està noter que l'on pourrait tester de façon particulière dans les expressionsla valeur de la variable [F:ABR]TACHE pour savoir quelle tâche on arrête).

                              Les variables en ligne à ce stade sont :

                              * le nom dela tâche arrêtée ( [F:ABR]TACHE)

                               les variables du contextedu serveur batch (en effet, ce type d'événement est lancé depuis le serveurde tâches batch et pas depuis l'instance exécutant la tâche).

                              Evénement de type« Divers »

                              Les événements de ce type sont d'une part des événements génériquesdu superviseur, d'autre part d'éventuels événements plus fonctionnelsdépendant des modules utilisés dans le progiciel (ces événements fonctionnelssont décrits dans une documentation annexe) :

                              * la Connexiond'un utilisateur (de code GUSER), ou une tentative de connexion. Ladifférence entre les deux est connue par la variable  GERR : GERR=0  signifie connexion réussie, et GERR=1,2,3 signifierespectivement code utilisateur inexistant ou inactif, code bloqué (trop detentatives de connexion infructueuses), mot de passe incorrect. Dans le cas d’uneerreur, on dispose en plus de la variable GMESSAGE, qui contient un message d’erreurexplicite (la chaîne est vide si la connexion a été réussie). On peut dans cecas connaître les paramètres de connexion du poste ayant tenté une connexionpar la fonction getenv$("ADXCLIENT"). Cette fonction renvoieune chaîne sous la forme suivante :

                                   (client=adresse_ip_client , port=numéro_interne,service=numéro_de_service)

                              * sa Déconnexion(de façon normale, par un arrêt décidé par l'utilisateur)

                              * sa déconnexionen Time-out (c'est le cas où l'utilisateur n'a rien tapé sur son écranpendant une durée paramétrable, définie par le paramètre utilisateur TIMEHGUP1).

                              * l'Arrêtdela tâche par le biais de la surveillance des connexions.

                              * l'entréedans la trace.

                              Pour les trois premiers événements, on ne dispose, à ce stade, que desvariables liées à l'utilisateur en ligne.

                              Pour le quatrième événement, l'utilisateur en ligne est celui qui arrêtela session, les caractéristiques de la tâche arrêtée étant définis dansl'écran associé à la fonction de surveillance (c'est l'écran PSADX). Dans cetécran, on retrouve un tableau présentant l'ensemble des processus en cours.L'indice courant de la ligne décrivant le processus arrêté est défini par[M:PSA]LIGSES-1. On retrouve dans le tableau en question l'identification duposte client, de l'utilisateur connecté, de la fonction en cours d'exécution,ainsi que les numéros de processus correspondants. Par ailleurs, le deuxièmetableau de l'écran (dimensionné par la variable NBPROC) donne les numéros deprocessus ayant été supprimés.

                              L'événement TRACE permet quant à lui de disposer d'un bouton Workflowactif en lecture de trace, afin de pouvoir envoyer un mail à desutilisateurs. Le fichier trace est alors automatiquement joint à l'envoi. Lemail peut être ou pas modifiable selon les informations définies dans leparamétrage du Workflow.

                              Enfin, il existe un événement générique nommé MSG, qui estutilisable en spécifique dans les actions déclenchées en retour de mail deWorkflow. L’utilisation de cet événement se fera par une ligne telle quecelle ci-dessous :

                              CallWORKFLOW("MSG",” ”,” ”) From SUBAMSC

                              Il faudra que le contexte déclenchant soit complété par le développeurpour qu’un événement Workflow basé sur ce type d’événement puisse êtreexécuté avec un contexte significatif.

                              Autres informations liées aucontexte de déclenchement

                              Des conditions complémentaires sont saisies sous la forme d'expressions logiques incluant des variablesen ligne au moment de l'exécution de la règle (contenus de masques d'écransou de tables en ligne...). Si ces conditions sont toutes vraies, le Workflowsera effectivement déclenché.

                              Un tableau nommé bas de page peut également être saisi dans cetonglet. On y décrit des variables de bas de page qui pourront intervenir dansl'évaluation des conditions et des expressions évaluées (notamment la listedes destinataires et du texte du message). Elle n'a de sens que sur lesévénements déclenchants concernant des objets du progiciel. Son utilisationsera abordée plus largement dans le paragraphe 'Utilisation des variables basde page'.

                              Enfin, des cases à cocher précisent ce qui se passe lorsque le Workflow sedéclenche :

                              * Traceactivepermet d'activer ou non l'enregistrement de la trace (log)

                              * Messageactif permet de déclencher l'émission du message.

                              * Mise aupoint provoque l'affichage d'une boîte détaillant les erreurs de calcul àl'exécution

                              * Messagemodifiable provoque l'ouverture d'une boîte permettant la modification dumessage, des pièces jointes, et des destinataires par l'opérateur lors dudéclenchement du Workflow.

                              Enfin, un radio-bouton permet d'imposer le mode d'envoi du message, quipeut être envoyé depuis le Serveur, le Client, ouindifféremment les deux (dans ce cas, le paramètre TYPMES le détermine). Implicitement,certains événements déclenchants imposent le mode d'envoi (par exemple, pourtous les événements liés à une tâche batch, événement pour lequel aucunutilisateur n'est en ligne, le seul mode d'envoi possible est Serveur).

                              Onglet Actions

                              Champs

                              Les champs suivants sont présents dans cet onglet :

                              Suivi

                              • Icône de retour (champ RETOUR)

                                Permet d'indiquer en pièce jointe, dans lemessage envoyé, un icône contenant le contexte permettant derappeler la fiche.

                                Permet d'indiquer une fonction de retour plutôtque la fonction courante. On pourra ainsi en gestion de commandegénérer un contexte permettant de rappeler le client sur lequel lacommande vient d'être passée.

                                • Retour menu (champ BAKMEN)

                                  Dans le cas d'un retour, il est possible derester dans x3 en sortant de la fonction appelée.

                                  • Clé de lien (champ BAKLNK)

                                    Si la fonction de retour correspond à un OBJet,il faut indiquer le lien correspondant à la description de la clédu fichier associé à cet OBJet.

                                    • Accusé lecture (champ REQREC)

                                        

                                      Action

                                        

                                      Bloc numéro 3

                                      • Condition d'exécution (champ CONACT)

                                          

                                        • Condition suite (champ CONSUI)

                                            

                                          Tableau

                                           

                                          • Type (champ TYPPAR)

                                             

                                            • Retour (champ ADRVAL)

                                               

                                              • Valeur paramètre (champ VALPAR)

                                                  

                                                Cet onglet permet de définir :

                                                * lesconditions de retour vers le progiciel si des messages sont envoyés par leWorkflow. En effet, la case à cocher Icône de retourdéfinit si lemessage doit inclure une icône permettant de lancer le progiciel afin quel'utilisateur se retrouve dans les conditions de l'appel déclenchant (cecisuppose bien entendu que le destinataire du message ait accès au progiciel).Si cette case est cochée, on peut définir la fonction dans laquellel'utilisateur va se retrouver après son double clic (si cette fonction n'estpas renseignée, c'est la fonction appelante), et également l'expressionpermettant de calculer la valeur de clé courante de la fiche (si la fonctionde retour est un objet). Dans le cas où le retour se fait sur la fonctiondéclenchante, on se retrouvera par défaut sur la fiche courante au moment dudéclenchement du Workflow. La case à cocher Retour menu permet dedéfinir si l'utilisateur reviendra au menu ou fermera sa session lorsqu'ilquittera la fonction sur laquelle il s'est connecté via double-clic. Enfin,la case à cocher Accusé réception permet, si elle est cochée, dedemander un accusé de réception lorsque le mail est envoyé. Attention, cettedemande d'accusé de réception ne peut fonctionner que si le message estenvoyé depuis le poste client, et pas depuis le serveur.

                                                * le fait quele Workflow déclenche l'exécution d'une action. Cette action sera exécutée enpremier (ce qui permet d'utiliser les informations de retour dans les mailset/ou les log de Workflow générés). Son exécution ne sera lancée que si lacondition se trouvant sur l'onglet est vérifiée. L'action doit être de type Traitement(elle ne peut pas ouvrir de fenêtre),elle doit en outre avoir la caseWorkflowcochée. La valeur des paramètres passés à l'action est donnéesous la forme d'expressions. Les valeurs de retour peuvent être utiliséesdans les expressions liées au mail ou au log de Workflow. Les variablesentières GBIDI1, GBIDI2, GBID3, décimales GBIDD1, GBIDD2, GBIDD3,alphanumériques GBIDC1, GBIDC2, GBIDC3, dates GBIDA1, GBIDA2, GBIDA3 peuventêtre utilisées pour nommer ces variables de retour.

                                                Il est à noter que l'action Workflow peut avoir une action suite qui seraexécutée si la condition se trouvant sur l'action est réalisée.

                                                Cette fonctionnalité, nouvelle en version 140, permet d'étendreconsidérablement le champ du Workflow en déclenchant des traitementsspécifiques. En standard, seules deux actions sont livrées : une actionACRELNK permettant de créer des liaisons (visibles par l'explorateur deliaison), et une action ASUPLNK permettant de supprimer des liaisons.L'intérêt de cette action est de permettre la création automatique deliaisons conditionnelles, ce qui n'est pas possible directement dans ladéfinition des liaisons.

                                                Onglet Message

                                                Champs

                                                Les champs suivants sont présents dans cet onglet :

                                                Destinataires

                                                • Type (champ TYPDES)

                                                  Ce champs identifie les destinataires.
                                                  Son écriture se fait sous la forme d’expressions logiques (Formule de calcul) incluant des variables enligne au moment de l’exécution.

                                                   


                                                  • Destinataires (champ DESTIN)

                                                     

                                                    • Fonction (champ FNCDES)

                                                       

                                                      Cette information n'est saisi que si le type de destinataire estun tiers.

                                                      • Copie (champ COPIE)

                                                         

                                                        Si ce champ est à oui, le destinataire du message est en copiesinon il est en destinataire principal.

                                                        Objet

                                                        • Objet (champ SUJET)

                                                          Ce champs identifie le sujet du message.
                                                          Son écriture se fait sous la forme d’expressions logiques (Formule de calcul) incluant des variables enligne au moment de l’exécution.

                                                          Message

                                                          • Texte (champ TEXTE)

                                                            Ce champs permet d'écrire le corps dumessage.
                                                            Son écriture se fait sous la forme d’expressions logiques (Formule de calcul) incluant des variables enligne au moment de l’exécution.

                                                             


                                                            • Saut ligne (champ SAUTLG)

                                                               

                                                              Indiquer sur chaque ligne s'il faire un retour à ligne oupoursuivre la ligne suivante sur la même ligne.

                                                              • Lien action (champ LNKFLG)

                                                                 

                                                                 

                                                                • Paramètre (champ LNKPARFOR1)

                                                                   

                                                                  • Paramètre (champ LNKPARFOR2)

                                                                     

                                                                    Cet onglet permet de définir les conditions d'envoi du message.

                                                                    Le tableau des destinataires permet de définir la liste dedestinataires du message en renseignant :

                                                                    * un type dedestinataire. Les choix disponibles sont 'Utilisateur' ou 'Tiers'.

                                                                    * undestinataire. Cet élément est écrite sous la forme d'expressions. On peutfaire intervenir par exemple des champs de la table des utilisateurs qui esten ligne, pour envoyer un message à l'un des supérieurs hiérarchiques del'utilisateur ayant réalisé l'opération déclenchante.

                                                                    * unefonction. Ce choix n'est accessible que pour le type de destinataire 'Tiers'et définit quels sont les contacts répertoriés sur la fiche Tiers quirecevront le message. Seuls les contacts ayant la bonne fonction (définie parle menu local 233) recevront le message.

                                                                    * unindicateur Copie, qui permet de préciser si chaque destinataire estdestinataire principal ou reçoit le message en copie. Au moins undestinataire doit être destinataire principal (valeur = Non dans lacolonne).

                                                                    Si l’option permettant de recevoir des réponses directe au mail estactivée, des colonnes supplémentaires apparaissent  dans ce tableau :

                                                                    * unindicateur Lien action(oui/non) qui sera à Oui si on désiredéclencher une action par une réponse de l’utilisateur. Dans ce cas, le lienest inséré à la suite de la ligne courante.

                                                                    * un codeaction, suivi de l’expression de deux paramètres. C’est ce code action quisera déclenché en cas de clic sur le lien action. L’action définie par cecode ne doit pas ouvrir de fenêtre (elle doit définie comme étant de type Workflow).

                                                                    A l'exécution, les adresses d'envoi dépendent du résultat de l'expressiondestinataires :

                                                                    * si celui-cicontient le caractère '@', on considère qu'il s'agit de l'adresse e-mail eton ignore le type.

                                                                    * sinon, sic'est un utilisateur, on utilise l'adresse de messagerie définie dans safiche

                                                                    * sinon, sic'est un tiers, on prend toutes les adresses de messagerie des contactsassociés avec la bonne fonction.

                                                                    On définit ensuite, sous forme d'expressions, le sujet, et le texte dumail lui-même, sous la forme de ligne évaluées (formules de 250 caractèresmaximum). La colonne Saut ligne se trouvant dans le tableau des textespermet de provoquer une rupture de paragraphe. Il est aussi possibled'utiliser la formule chr$(13) pour provoquer un tel saut.

                                                                    Il est à noter que les messages envoyés via MAPI sont limités (parl'interface) à environ 700 caractères maximum (taille des pièces jointesexclue). L'interface messagerie sur le serveur limite à environ 65.000caractères la longueur du message (taille des pièces jointes toujoursexclue).

                                                                    Onglet Pièces jointes

                                                                    Champs

                                                                    Les champs suivants sont présents dans cet onglet :

                                                                    Pièces jointes

                                                                    • Pièce à joindre (champ JOINT)

                                                                      Le champ "Pièce jointe" permet d'associer une pièce jointe au message.

                                                                      Son écriture se fait sous la forme d’expressions logiques (Formule de calcul ) incluant des variables en ligne au moment de l’exécution.

                                                                      Le champ "Pièce jointe à la fiche" permet d'envoyer les pièces jointes associées à la fiche si cette dernière est gérée par une action de type Objet.

                                                                      Il est nécessaire que le paramètre général TYPMES soit Serveur et que les pièces jointes soient sur le serveur de l'application.

                                                                      Bloc numéro 2

                                                                      • Fichier trace lié (champ TRACE)

                                                                         

                                                                        Bloc numéro 3

                                                                        • Pièces jointes à la fiche (champ JOIOBJ)

                                                                           

                                                                          • Tous types (champ ALLTYPJOI)

                                                                             

                                                                             

                                                                            • Toutes catégories (champ ALLCATJOI)

                                                                               

                                                                              • Catégorie (champ CATJOI)

                                                                                 

                                                                                Cet onglet permet de définir, lorsqu'un message est envoyé, les pièces quel'on souhaite y adjoindre.

                                                                                Le champ pièce à joindredoit contenir le chemin d'accès au fichierque l'on désire joindre. Si on désire, par exemple, dans le cas d'un Workflowsur facture client, joindre le texte d'en-tête de facture, il suffirait d'yinsérer la formule suivante :

                                                                                 

                                                                                string$([F :SIV]SIHTEX1<>"",filpath("TXT",[F :SIV]SIHTEX1,"txt"))

                                                                                En effet, les textes sont stockés dans le répertoire TXT du dossier, avecune extension .txt (ce qui est géré par la fonction filpath). Le champSIHTEX1 contient le nom du fichier d'en-tête courant. Par ailleurs, si le nomdu fichier est vide, il convient de ne rien passer du tout (d'oùl'utilisation de la fonction string$).

                                                                                Lorsque l'événement est lié à une tâche batch, il est possible d'adjoindrele fichier de trace généré par la tâche au mail envoyé, en cochant la case Fichiertrace lié.

                                                                                Lorsque l'événement est lié à un objet, il est possible d'adjoindre lespièces jointes liées à la fiche courante de l'objet en cochant la case Piècesjointes à la fiche. Dans ce cas, il est possible de dire si tous lestypes de pièces sont concernés, ou un seul, et si toutes les catégories sontconcernées, ou une seule. Attention, l'envoi de ce type de pièces jointesne fonctionne que si les pièces jointes sont sur le même serveur que leserveur d'application, et si l'envoi est fait par le serveur. En effet, sil'envoi est fait depuis le client, on est limité à une seule pièce jointe, etpar ailleurs cette pièce jointe doit être accessible par un chemin réseau.

                                                                                Onglet Traçabilité

                                                                                Champs

                                                                                Les champs suivants sont présents dans cet onglet :

                                                                                • Modifiable message (champ LIGC)

                                                                                   

                                                                                  Cet élément est géré par la table diverse NatureWorkflow à la disposition de l’utilisateur pour classer cesinformations.
                                                                                  Le code ‘DES’ est réservé au classement des destinataires desmessages.

                                                                                  • Informations (champ INFORM)

                                                                                    Ce champs décrit l'information qui sera portéepar le log.
                                                                                    Son écriture se fait sous la forme d’expressions logiques (Formule de calcul) incluant des variables enligne au moment de l’exécution.

                                                                                    Cet onglet permet de décrire les renseignements qui seront portées par le fichierde log. Ces renseignements sont au nombre de cinq maximum et sont identifiéspar : 

                                                                                    * une nature.Cet élément est géré par la table diverse Nature Workflow à la disposition del'utilisateur pour classer ces informations. Le code 'DES' est réservé auclassement des destinataires des messages.

                                                                                    * uneinformation. L'écriture est analogue à celles des conditions et s'écrit doncsous la forme d'expressions logiques incluant des variables en ligne aumoment de l'exécution.

                                                                                    Un exemple sur l'objet commande des achats (OBJPOH) pourrait être lecouple nature = CDE et information = [POH0]POHNUM qui permettraitd'identifier une commande passée par cet objet.

                                                                                    Une consultation du log avec le moniteur de Workflow permettraitalors de retrouver les enregistrements concernant la nature CDE pour unnuméro de commande particulier.

                                                                                    Autres conditions

                                                                                    Variables disponibles dans lecontexte

                                                                                    Les éléments liés au Workflow étant exprimées sous la forme de formules decalcul susceptibles d'intégrer des variables issues du contexte. Ce contextedépend du type d'événement, ainsi que mentionné ci-dessus. Mais, en tout étatde cause, lorsque l'événement est connu avec précision, on dispose, avec l'assistant de formules, de la liste de cesvariables (écrans, variables globales, tables) en ligne. 

                                                                                    Utilisation des variables bas depage

                                                                                    Le tableau des variables de bas de page permet de traiter des règles faisantréférence à des lignes d'un tableau dans un objet. On peut ainsi notammentémettre plusieurs messages et structurer le texte en fonction des lignes dutableau.

                                                                                    Règles de saisie

                                                                                    Lorsqu'un onglet de saisie inclut des données organisées en tableau, ilexiste un champ particulier, appelé Variable de bas de page, dont lecontenu stocke le nombre de lignes valides du tableau. Il est nécessaire,pour pouvoir exprimer le fait que les règles de Workflow vont faire appel àplusieurs lignes, et permettre d'accéder aux colonnes des tableauxcorrespondants, de définir ces variables de bas de page qui sont à renseignerdans l'onglet Général. Elles sont au nombre de 3 maximum et une aide àla sélection est disponible.

                                                                                    Les variables bas de page peuvent intervenir dans les expressionsrelatives:

                                                                                    * auxconditionnements des règles,

                                                                                    * à lastructure du log,

                                                                                    * au sujet,aux destinataires et au texte du message.

                                                                                    Pour lever toutes ambiguïtés dans la syntaxe des expressions, elles sontencadrées par des parenthèses doubles. Par exemple :

                                                                                    * l'expression[POH2]LINBUY((NBLIG)) permet de faire référence à la colonne Acheteurde la ligne courante du tableau identifié par la variable NBLIG dansl'écran POH2. Le moteur de Workflow saura ainsi qu'il est nécessaired'évaluer cette expression autant de fois qu'il y a de lignes dans letableau.

                                                                                    * l'expression[POH2]LINBUY(NBLIG) suppose que l'on ne va utiliser qu'une seulevaleur de champ, en l'occurrence le champ LINBUY de la ligne NBLIG+1.

                                                                                    Dans l'écriture des expressions portant sur les conditions, lesdestinataires et les informations du fichier log, les contraintes suivantessont à prendre en compte :

                                                                                    * Si lesconditions sont définies avec utilisation d'une variable de bas de page,toutes les conditions doivent utiliser que la même variable bas de page. Parailleurs, les destinataires et les informations du fichier log ne peuvent seservir que de la variable bas de page utilisée par les conditions.

                                                                                    * Si lesconditions sont définies sans variable bas de page, les destinataires et lesinformations du fichier log ne peuvent utiliser que la même variable bas depage.

                                                                                    * Si lesdestinataires n'utilisent pas non plus de variable de bas de page, lesinformations du fichier log ne peuvent pas en utiliser.

                                                                                    * Enfin, lesujet et chaque ligne du message ne peuvent utiliser qu'une seule variable debas de page.

                                                                                    Principe de validation desrègles de Workflow

                                                                                    Si une variable bas de page intervient dans les conditions :

                                                                                    * Chaqueligne du tableau est scruté une à une. Si l'ensemble des conditions estrespecté pour une ligne, la règle est validé et engendre son exécution.

                                                                                    * Ainsichaque ligne validée peut se traduire par un enregistrement dans le log et/ouun message avec une liste de destinataires évaluée.

                                                                                    Si une variable bas de page intervient uniquement dans les destinataires

                                                                                    * Sil'ensemble des conditions est respecté, la règle est validée pour toutes leslignes du tableau et chaque ligne peut se traduire par un enregistrement dansle log et/ou un message avec une liste de destinataires évaluée.

                                                                                    Si aucune variable bas de page n'intervient dans les conditions ou lesdestinataires

                                                                                    * Sil'ensemble des conditions est respecté, la règle est validé une seule foisavec écriture d'un seul enregistrement dans le log et/ou un seul message.

                                                                                    Construction du texte desmessages

                                                                                    Lorsqu'une ligne de texte fait référence à une variable bas de page,

                                                                                    * Si la variablen'intervient pas dans les conditions ou les destinataires, la ligne estrépétée et évaluée pour chaque ligne du tableau.

                                                                                    * Si lavariable intervient dans les conditions ou les destinataires, la ligneest  éditée une fois par message selon la ligne du tableau en cours detraitement.

                                                                                    Boutons spécifiques

                                                                                    Ce bouton ne sert qu'à générer un traitement automatique lorsquel'événement de Workflow déclenche une action. Cette validation étantautomatique lorsqu'on enregistre un événement ou lorsqu'on le modifie, leseul intérêt de ce bouton est de permettre une régénération du traitements'il est perdu, ou une génération si l 'événement de Workflow a été créépar copie sur le dossier courant (dans ce cas, la génération du traitementn'a pas été faite).
                                                                                     

                                                                                    Ce bouton permet de copier l'événement Workflow dans un autre dossieraccessible à partir du serveur où se trouve le dossier courant.

                                                                                    Messages d'erreur

                                                                                    Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

                                                                                    Expression incorrecte Erreur desyntaxe

                                                                                    Ce message est affiché lorsqu'on saisit une expression adonix dont lasyntaxe est invalide (par exemple, lors de la saisie des conditions ou des destinatairesdu message). Un message plus explicite peut être affiché selon le contexte(par exemple, il manque une parenthèse ouvrante).

                                                                                    Tables mises en oeuvre

                                                                                    Les tables suivantes sont mises en oeuvre par la fonction :

                                                                                    Table

                                                                                    Intitulé Table

                                                                                    AMESSAGE [AMS]

                                                                                    Workflow header

                                                                                    ATABDIV [ADI]

                                                                                    Tables diverses

                                                                                    AMESSAGED [AMD]

                                                                                    Workflow message