Nach Erstellung oder Bearbeitung eines Datensatzes führen Sie die folgenden Schritte aus, um die Änderungen in der Datenbank zu speichern:
Die Methode Validate führt die Validierungs-Scripts des Schmeas aus und gibt eine Zeichenfolge mit den Validierungsfehlern zurück. Ist diese Zeichenfolge nicht leer, können Sie die Methode "GetInvalidFieldValues" verwenden, um eine Liste der Felder zurückzugeben, die ungültige Daten enthalten. Nachdem Sie die Werte in diesen Feldern korrigiert haben, müsen Sie die Methode Validate erneut aufrufen. Wenn Validate eine leere Zeichenfolge zurückgibt, sind keine Fehler mehr vorhanden.
Wenn Sie den Datensatz validiert haben und die Validierung erfolgreich abgeschlossen ist, schreiben Sie die Änderungen in der Datenbank fest, indem Sie die Methode Commit des entsprechenden Entitätsobjekts aufrufen.
Änderungen zurücksetzen: Wenn die Validierung eines Datensatzes fehlschlägt, können Sie die Änderungen nicht in der Datenbank festschreiben. Die sicherste Lösung besteht darin, den Datensatz in den ursprünglichen Status zurückzusetzen und einen Fehler zu melden. Rufen Sie zum Zurücksetzen eines Datensatzes die Methode Revert des Entitätsobjekts auf.
Das Zurücksetzen einer Gruppe von Änderungen versetzt den Datensatz zurück in den Status, in dem er sich befand, bevor Sie EditEntity aufgerufen haben. Wenn Sie die Änderungen, die Sie an einem mit der Methode BuildEntity erstellten Entitätsobjekt vorgenommen haben, zurücksetzen, wird der Datensatz nicht erstellt, und die Daten werden gelöscht. IDs, die Datensätzen zugeordnet sind, werden nicht wiederverwendet. Wenn Sie einen Datensatz, den Sie mit der Methode BuildEntity in einen editierbaren Zustand versetzt haben, zurücksetzen, wird der Datensatz gelöscht, aber seine sichtbare ID wird nicht gelöscht, damit zukünftige Datensätze diese ID nicht nutzen könnten.
# Datensatz ändern und die Änderungen dann festschreiben. $entityObj = $sessionobj->GetEntity("defect","BUGID00000042"); $sessionObj->EditEntity($entityobj,"modify"); # Entitätsobjekt ändern # Der Code muss auch nach Ausnahmebedingungen suchen $status = $entityObj->Validate(); if ($status == ""){ $status = $entityObj->Commit(); if ($status == ""){ # successful commit } else { # Fehlernachricht prüfen } } else { $entityObj->Revert(); } # Das Entitätsobjekt ist nicht mehr editierbar.