13.6.2.7 Doc::preStore()

Hameçon (ou hook) utilisé par la méthode Doc::Store(). Elle est appelée avant l'enregistrement en base de données. Cette méthode doit vérifier si les conditions de modification de document sont valides.

13.6.2.7.1 Description

string preStore ()

Si cette méthode retourne un message d'erreur alors la modification est abandonnée et la méthode Doc::Store() retourne le message fourni par cette méthode afin d'indiquer l'échec.

13.6.2.7.1.1 Avertissements

Le document n'a pas encore d'identificateur lors d'une création. Cette méthode n'est pas appelée lors d'une révision.

13.6.2.7.2 Liste des paramètres

Aucun paramètre.

13.6.2.7.3 Valeur de retour

Message d'erreur. Si la méthode retourne une chaîne de caractères non vide, elle est considérée comme un message d'erreur et la création de document est abandonnée.

Ce message est aussi stocké dans le paramètre de sortie $info->preStore de la méthode Doc::Store().

13.6.2.7.4 Erreurs / Exceptions

Aucune.

13.6.2.7.5 Historique

Aucun.

13.6.2.7.6 Exemples

Dans la famille MyFamily, la modification d'un document ne doit être possible que si la somme des attributs MY_NUMBERONE et MY_NUMBERTWO est inférieure au paramètre MY_MAX de la famille.

Soit la famille suivante :

BEGIN Ma famille MYFAMILY
CLASS My\MyFamily
// idattr idframe label T A type ord vis
ATTR MY_IDENTIFICATION Identification N N frame 10 W
ATTR MY_NUMBERONE MY_IDENTIFICATION nombre 1 Y N int 20 W
ATTR MY_NUMBERTWO MY_IDENTIFICATION nombre 2 N N int 30 W
PARAM MY_PARAMETERS Paramètres N N frame 10 W
PARAM MY_MAX MY_PARAMETERS max N N int 20 W
END
namespace My;
use \Dcp\AttributeIdentifiers\MyFamily as MyAttributes;
 
class MyFamily extends \Dcp\Family\Document
{
    public function preStore()
    {
        $err = '';
        $n1 = $this->getAttributeValue(MyAttributes::my_numberone);
        $n2 = $this->getAttributeValue(MyAttributes::my_numbertwo);
        $max = $this->getFamilyParameterValue(MyAttributes::my_max);
        if (($n1 + $n2) > $max) {
            $err = sprintf("Max %d is reached", $max);
        }
        return $err;
    }
}

13.6.2.7.7 Notes

En cas de famille héritée, il est nécessaire d'appeler l'hameçon du parent pour disposer des mêmes fonctionnalités.

Cette méthode est appelée par Doc::store en cas de création, de révision et de modification tandis que l'hameçon Doc::preCreated() est appelé qu'en cas de création ou de révision.

13.6.2.7.8 Voir aussi

×