DILA

Contexte

Les équipes travaillant à la rédaction du site service-public.fr ont une organisation très structurée. Des rédacteurs en chef ont la responsabilité de valider les contenus produits pour le site. Une intervention sur le graphe documentaire se fait soit à l'initiative d'un rédacteur, soit à la demande d'un rédacteur en chef. Étant donnée l'importance légale des documents publiés, toute modification doit à la fois être contrôlée pour valider son contenu et documentée pour faciliter la compréhension de son origine et ainsi, faciliter sa maintenance.

Modélisation

La modélisation de ce contexte s'appuie sur le système de tâches. Deux fragments tâches ont été modélisés : un fragment de commande et un fragment de demande de validation. Ces deux fragments sont exploités par le moteur de tâches. L'intégralité de l'activité est à la fois enregistrée (qui a fait quoi et quand) et documentée (dans quel contexte et pour répondre à quel objectif).

Modélisation - fragment de commande

Le fragment de commande est initié par un rédacteur en chef ou un simple rédacteur. Il dispose de trois champs responsabilité (responsable pour le rédacteur, suiveur pour un rédacteur ayant initié une commande et souhaitant être informé de l'évolution de la commande et responsable de la validation pour le rédacteur en chef), d'un titre, d'une date de planification, d'une date d'échéance et d'un fil de discussion. Une commande est le plus souvent effectuée suite à un retour fait par des usagers de la documentation (les lecteurs de la documentation). Le modèle documentaire associé à une tâche contient des informations dédiées à la remontée de l'erreur (date et provenance), une description textuelle du problème et une synthèse des modifications à apporter.

Le fragment de commande peut ainsi être modélisé comme illustré sur la figure 56.

Figure 56 : modèle d'un fragment de commande

Le fichier suivant est un exemple de fragment de commande :

1
<stk:task>
2
  <stk:update by="BC0605AB" date="1382370761770">
3
    <stk:execTransition transition="initEnCours" newState="aTraiter" newActStage="pending"/>
4
    <stk:putUser account="GM1001AB" resp="e"/>
5
    <stk:putUser account="RedacChefSpTel" resp="v"/>
6
    <stk:setTitle newTitle="Santé Info Droits"/>
7
    <stk:setDeadline newDt="1385052626845"/>
8
    <stk:setDescription>
9
      <dic:commandeDetails>
10
        <dic:commandeDetailsM>
11
          <sp:date>2013-10-21</sp:date>
12
          <sp:origine>tel</sp:origine>
13
        </dic:commandeDetailsM>
14
        <sp:txt>
15
        <dic:taskTxt>
16
            <sc:para xml:space="preserve" sc:id="t2">
17
<sc:objectLeaf role="item" sc:id="t3" sc:refUri="id:6RASFlGTRHK3hdImiTGnLp"/> : il faut expliquer à quoi sert le 2ème n° de téléphone.
18
            </sc:para>
19
          </dic:taskTxt>
20
        </sp:txt>
21
      </dic:commandeDetails>
22
    </stk:setDescription>
23
  </stk:update>
24
  <stk:update by="GM1001AB" date="1382535749637">
25
    <stk:execTransition transition="aValider" newState="aValider" newActStage="pending"/>
26
    <stk:addComment>
27
      <dic:taskTxt>
28
        <sc:para xml:space="preserve" sc:id="t2">précision apportée ; lien formulaire vérifié</sc:para>
29
      </dic:taskTxt>
30
    </stk:addComment>
31
  </stk:update>
32
  <stk:update by="BC0605AB" date="1382541368567">
33
    <stk:execTransition transition="close" newState="close" newActStage="completed"/>
34
    <stk:addComment>
35
      <dic:taskTxt>
36
        <sc:para xml:space="preserve" sc:id="t2">OK</sc:para>
37
      </dic:taskTxt>
38
    </stk:addComment>
39
  </stk:update>
40
</stk:task>

Une fois interprété par le moteur de tâches, ce fichier XML est mis en forme comme illustré sur la figure 57.

Figure 57 : capture d'écran d'une tâche commande du modèle Copéria

Le cycle de vie de la tâche de commande est défini comme illustré sur la figure 58 :

Figure 58 : cycle de vie d'un fragment de commande

À traiter

Planifié

À valider

À revoir

Clos et re-planifié

Clos

Responsable

Exécutant

Aucun

Suiveur

Exécutant

Aucun

Aucun

Suiveur

Suiveur

Aucun

Suiveur

Suiveur

Aucun

Aucun

Responsable de la validation

Suiveur

Aucun

Exécutant

Suiveur

Aucun

Aucun

Lors de son initialisation, le fragment de commande est directement placé en état À traiter si l'intervention est urgente ou Planifié le cas échéant. Un fragment en état planifié ou clos et re-planifié n'est associé à aucun utilisateur. Un déclencheur automatique transforme le fragment en état À traiter le jour de la date de planification. Un fragment validé et clos peut systématiquement être ré-ouvert. L'état Clos et Re-planifié est utilisé pour programmer une réouverture de tâche à effectuer de façon routinière. Il est utilisé dans deux contextes :

  • Certaines fiches du site sont activées uniquement à certaines périodes de l'année (comme par exemple la fiche sur les primes de fin d'année). L'état Clos et Re-planifié est utilisé afin de réactiver la tâche lorsqu'une fiche doit être ajoutée ou supprimée.

  • Certaines fiches deviennent fausses soit par changement législatif, soit en raison d'une péremption (par exemple, la fiche sur le calcul des allocations familiales peut contenir des exemples avec des dates de naissance fictives. Ces dates doivent être remises à jour régulièrement afin que les exemples restent justes). L'état Clos et Re-planifié est alors utilisé pour réactiver la tâche lorsque la fiche doit être mise à jour.

Modélisation - fragment de demande de validation

Le fragment de demande de validation est initié par un rédacteur ayant pris l'initiative d'effectuer une intervention sur le graphe. Ce fragment sert à enregistrer le processus de validation de l'intervention. Deux responsabilités lui sont associées : le propriétaire (de la demande) et le responsable de la validation. Outre un intitulé, le modèle documentaire contient un champ de description et un champ de synthèse des modifications.

Figure 59 : modèle d'un fragment de demande de validation

Le fichier suivant est un exemple de fragment de demande de validation :

1
<stk:task>
2
  <stk:update by="GM1001AB" date="1363699882998">
3
    <stk:execTransition transition="init" newState="aValider" newActStage="pending"/>
4
    <stk:putUser account="GM1001AB" resp="p"/>
5
    <stk:putUser account="BC0605AB" resp="v"/>
6
    <stk:setTitle newTitle="Remontée messagerie du 13/03"/>
7
    <stk:setDescription>
8
      <dic:validationDetails>
9
        <sp:txt>
10
          <dic:taskTxt>
11
            <sc:para xml:space="preserve">
12
              Item :
13
              <sc:objectLeaf role="item" sc:refUri="id:6ZjSFlGTRHK3hdImiTGnLp"/>
14
            </sc:para>
15
          </dic:taskTxt>
16
        </sp:txt>
17
        <sp:commentaire>
18
          <dic:taskTxt>
19
            <sc:para xml:space="preserve" sc:id="t4">
20
              ajout du certificat d'examen portant la mention favorable
21
            </sc:para>
22
          </dic:taskTxt>
23
        </sp:commentaire>
24
      </dic:validationDetails>
25
    </stk:setDescription>
26
  </stk:update>
27
  <stk:update by="BC0605AB" date="1363700273666">
28
    <stk:execTransition transition="aRevoir" newState="aRevoir" newActStage="pending"/>
29
    <stk:addComment>
30
      <dic:taskTxt>
31
        <sc:para xml:space="preserve" sc:id="t3">J'ai 3 remarques :</sc:para>
32
        <sc:para xml:space="preserve">
33
          1) La formulation "pour les personnes qui n'ont pas encore reçu leur permis de conduire" n'est pas idéale, parce qu'une personne en attente de la réception d'un duplicata suite à perte / vol peut se sentir concernée. J'écrirais "l'original de votre permis de conduire ou, pour si vous avez réussi l'examen pratique du permis mais n'avez pas encore reçu votre titre définitif, l'original du certificat d'examen portant la mention favorable,".
34
        </sc:para>
35
        <sc:para xml:space="preserve" sc:id="t6">
36
          2) Dernière phrase : la construction est maladroite, on ne sait pas à quoi se réfère le "il".
37
        </sc:para>
38
        <sc:para xml:space="preserve" sc:id="t7">3) Il manque ton binôme.</sc:para>
39
      </dic:taskTxt>
40
    </stk:addComment>
41
  </stk:update>
42
  <stk:update by="GM1001AB" date="1363768389641">
43
    <stk:execTransition transition="aValider" newState="aValider" newActStage="pending"/>
44
    <stk:addComment>
45
      <dic:taskTxt>
46
        <sc:para xml:space="preserve" sc:id="t2">remarques intégrées</sc:para>
47
      </dic:taskTxt>
48
    </stk:addComment>
49
  </stk:update>
50
  <stk:update by="BC0605AB" date="1363777064848">
51
    <stk:execTransition transition="close" newState="close" newActStage="completed"/>
52
    <stk:addComment>
53
      <dic:taskTxt>
54
        <sc:para xml:space="preserve" sc:id="t2">OK, c'est validé.</sc:para>
55
      </dic:taskTxt>
56
    </stk:addComment>
57
  </stk:update>
58
</stk:task>

Une fois interprété par le moteur de tâches, ce fichier XML est mis en forme comme illustré sur la figure 60.

Figure 60 : capture d'écran d'une tâche de demande de validation du modèle Copéria

Le cycle de vie d'un fragment de demande de validation est défini comme illustré sur la figure 61.

Figure 61 : cycle de vie d'un fragment de validation

À valider

À revoir

Close

Propriétaire

Suiveur

Exécutant

Aucun

Responsable validation

Exécutant

Suiveur

Aucun

Le cycle de vie mobilisé par le fragment de demande de validation est extrêmement permissif. Il est possible de passer à chacun des états depuis chacun des autres états. On distingue bien ici l'objectif de produire un fragment d'assistance à l'organisation de l'activité plutôt qu'une gestion de l'activité par le processus.