13.6.3.33 Doc::revise()

Cette méthode crée une révision du document courant. Cela permet de garder une version figée du document pour historique.

13.6.3.33.1 Description

string revise ( string $comment = '' )

Le document courant est enregistré en base et est figé. Sa propriété locked vaut alors -1. La méthode Doc::isFixed() permet de savoir si un document est figé.

Une copie du document est créée. Un nouvel identifiant est créé et est affecté à la propriété id. Le document conserve le même identifiant initial (propriété initid) et son numéro de révision (propriété revision) est incrémenté de un.

L'objet courant devient le nouveau document avec un nouvel identifiant.

13.6.3.33.1.1 Avertissements

Un document figé ne peut pas être révisé. Un document qui n'a pas d'identifiant ne peut pas être révisé.

13.6.3.33.2 Liste des paramètres

(string) comment
Si comment n'est pas vide, le message sera ajouté à l'historique avant la révision.

13.6.3.33.3 Valeur de retour

Message d'erreur : Si un message non vide est retourné alors la révision a été abandonnée (la raison est donnée par le message d'erreur).

13.6.3.33.4 Erreurs / Exceptions

Les causes d'erreur sont :

  • document figé,
  • problème de droits : la révision nécessite le droit edit sur le document et le droit create sur la famille du document,
  • retour d'erreur de l'hameçon preRevise().

13.6.3.33.5 Historique

Cette méthode était anciennement nommée addRevision.

13.6.3.33.6 Exemples

Exemple de création d'une révision.

/** @var \Dcp\Family\MyFamily */
$d = new_Doc("", "MY_DOCUMENT");
if ($d->isAlive()) {
    printf("Identifiant %d\n", $d->id);
    $err=$d->revise();
    if (empty($err)) {
        printf("Nouvel identifiant %d", $d->id);
    } else {
        printf("Erreur de révision %s", $err);
    }
}

13.6.3.33.7 Notes

Lors d'un ajout de documents les hameçons suivants sont lancés :

  1. Doc::preRevise()
  2. Fige le document et enregistrement en base
  3. Doc::preCreated()
  4. Copie du document et création nouvel identifiant
  5. Doc::postCreated()
  6. Doc::postRevise()

13.6.3.33.7.1 Hameçon preRevise

L'hameçon preRevise a pour rôle de valider les conditions de révision du document. Si cette méthode retourne une chaîne de caractère non-vide alors elle est considérée comme un retour d'erreur et la révision n'est pas effectuée. Ce message est retourné par la méthode Doc::revise().

13.6.3.33.7.2 Hameçon postRevise

L'hameçon postRevise a pour rôle de réaliser un post-traitement après la révision. Cette méthode utilise la nouvelle révision. Si cette méthode retourne une chaîne de caractères non-vide alors elle est considérée comme un message d'erreur. Ce message est enregistré dans l'historique du document.

13.6.3.33.8 Voir aussi

×