3.3 Lignée documentaire et révisions

Afin de manipuler correctement les documents, il est important de comprendre les notions de révision et de lignée documentaire.

3.3.1 Révision

Une révision est une capture d'un document à un instant donné. Les valeurs (attributs, propriétés et fichiers) de ce document sont mémorisées et figées, et peuvent être consultées ultérieurement.

À un instant donné, une et une seule révision est active (c'est la révision courante) alors que les autres sont figées (ce sont les révisions passées).

Seule la révision active est modifiable, les révisions figées sont uniquement consultables.

3.3.2 Lignée documentaire

L'ensemble des révisions d'un document constituent une lignée documentaire. Alors que chaque document est identifié de manière non ambigüe par son id, unique, une lignée documentaire est identifiée par son initid.

3.3.3 révision, id et initid

Lors de l'enregistrement en base d'un document, s'il ne possède pas encore d'id, un nouvel id est attribuée au document. Cette valeur est également affectée à la propriété initid. La propriété révision, quand à elle, est positionnée à 0.

Lorsqu'un document est révisé, techniquement, un nouveau document est créé (c'est à dire qu'une nouvelle ligne est créée en base de données).
La propriété révision est incrémentée, la propriété initid est conservée, et un nouvel id est affecté au document. L'ancienne révision est également marqué comme figée (voir la propriété locked).

Exemple :

  • création d'un nouveau document
    • ancienne révision
      • aucune
    • nouvelle révision
      • initid : 1234
      • id : 1234
      • revision : 0
      • locked : 0
  • révision du document
    • ancienne révision
      • initid : 1234
      • id : 1234
      • revision : 0
      • locked : -1
    • nouvelle révision
      • initid : 1234
      • id : 2345
      • revision : 1
      • locked : 0

Note : les valeurs des id et initid sont arbitraires, elles sont, dans les faits, affectées par la base de données.

3.3.4 Révisions et relations

Dans l'interface d'édition, par défaut, les attributs de type docid sont valués avec l'initid du document cible. Lors de la consultation, le lien est ajusté pour pointer vers la dernière révision de sa lignée documentaire.

Ce comportement peut être modifié au moyen de l'option docrev des attributs relation.

3.3.5 Révisions et new_doc

Par défaut, la fonction new_doc récupère la révision correspondant à l'id passé en paramètre ; ce qui veut dire que ce n'est pas nécessairement la révision courante. Le troisième paramètre de new_doc permet de récupérer systématiquement la révision courante.

Si l'identifiant de la fonction new_doc désigne un nom logique, c'est toujours la version courante qui est retournée.

Le nom logique est le même sur toute la lignée documentaire.

3.3.6 Révisions et recherche

Lors des recherches de documents avec un critère sur une relation, si la relation ne contient pas l'initid, on risque de ne pas trouver le document. C'est pour cette raison que les relations contiennent l'initid par défaut. Dans le cas où d'autres révisions peuvent être référencées, il faut ajouter un critère plus complexe tenant compte des ids de toutes les révisions.

×