Une fois que vous avez créé ou édité un enregistrement, sauvegardez vos modifications dans la base de données en procédant comme suit :
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.
# 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.