< Précédent | Suivant >

Sauvegarde des modifications

La validation des modifications apportées à la base de données est un processus en deux étapes au cours duquel vous devez d'abord valider l'enregistrement que vous avez modifié ou créé, puis valider la modification.

Une fois que vous avez créé ou édité un enregistrement, sauvegardez vos modifications dans la base de données en procédant comme suit :

  1. Contrôlez la validité des données dans l'enregistrement en appelant la méthode Validate de l'objet Entity. Cette méthode renvoie toutes les erreurs de contrôle de validité afin que vous puissiez les corriger avant de sauvegarder vos modifications.
  2. Appelez la méthode Commit de l'objet Entity. Cette méthode écrit les modifications dans la base de données, met fin à l'action en cours et verrouille l'enregistrement afin qu'il ne puisse pas être édité.

La méthode Validate permet d'exécuter les scripts de validation du schéma et de renvoyer une chaîne contenant les erreurs de validation. Si cette chaîne n'est pas vide, vous pouvez utiliser la méthode GetInvalidFieldValues pour renvoyer une liste des zones contenant des données incorrectes. Une fois les valeurs corrigées dans ces zones, vous devez à nouveau appeler la méthode Validate. Si la méthode Validate renvoie une chaîne vide, cela signifie qu'il n'y a plus d'erreurs.

Une fois que vous avez validé l'enregistrement, et que la validation a été prise en compte, validez les modifications apportées à la base de données en appelant la méthode Commit de l'objet Entity correspondant.

Rétablissement de vos modifications : en cas d'échec de la validation d'un enregistrement, vous ne pourrez pas valider les modifications dans la base de données. La solution la plus fiable consiste à rétablir l'enregistrement à son état d'origine et de signaler une erreur. Pour rétablir un enregistrement, appelez la méthode Revert de l'objet Entity.

Le rétablissement d'un ensemble de modifications renvoie l'enregistrement à son état d'avant l'appel de EditEntity. Si vous rétablissez les modifications apportées à un objet Entity créé par la méthode BuildEntity, l'enregistrement n'est pas créé et les données sont supprimées. Les ID associés aux enregistrements ne sont pas recyclés. Si vous rétablissez un enregistrement rendu éditable par la méthode BuildEntity, l'enregistrement est supprimé, mais son ID visible ne l'est pas afin que les futurs enregistrements ne puissent pas utiliser ce même ID.

Pour modifier l'état d'un enregistrement, procédez comme suit :
  • Commencez par appeler la méthode EditEntity($Entity, nom-action).
  • Modifiez les valeurs de la zone et vérifiez la validité du niveau de la zone.
  • Validez l'état de l'enregistrement (à l'aide de la méthode Validate).
  • S'il n'y a aucune erreur, validez les modifications (à l'aide de la méthode Commit).
  • Pour annuler l'action, utilisez la méthode Revert.

Exemple

# Modify the record and then commit the changes. 
$entityObj = $sessionobj->GetEntity("defect","BUGID00000042"); 
$sessionObj->EditEntity($entityobj,"modify"); 

# Modify the entity object 
# Your code should also check for exceptions 
$status = $entityObj->Validate(); 
if ($status == ""){
     $status = $entityObj->Commit();
     if ($status == ""){
         # successful commit
      } 
     else {
           # check error message
          } 

} else {
       $entityObj->Revert();
      } 
# The entity object is no longer editable.
< Précédent | Suivant >

Commentaire