< Vorherige Lektion | Nächste Lektion >

Änderungen speichern

Das Festschreiben von Änderungen in der Datenbank ist ein aus zwei Schritten bestehender Prozess, bei dem Sie den geänderten oder erstellten Datensatz zuerst validieren und die Änderung dann festschreiben.

Nach Erstellung oder Bearbeitung eines Datensatzes führen Sie die folgenden Schritte aus, um die Änderungen in der Datenbank zu speichern:

  1. Validieren Sie die Daten im Datensatz, indem Sie die Methode Validate des Entitätsobjekts aufrufen. Diese Methode gibt Validierungsfehler zurück, die Sie vor dem Speichern der Änderungen beheben können.
  2. Rufen Sie die Methode Commit des Entitätsobjekts auf. Diese Methode schreibt die Änderungen in die Datenbank, beendet die aktuelle Aktion und checkt den Datensatz ein, damit er nicht bearbeitet werden kann.

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.

Es folgt ein Beispiel für die Schritte, die Sie ausführen müssen, um den Status eines Datensatzes zu ändern:
  • Beginnen Sie die Aktion, indem Sie die Methode "EditEntity($Entity, Aktionsname)" ausführen.
  • Ändern Sie Feldwerte, und prüfen Sie die feldspezifische Gültigkeit.
  • Validieren Sie den Status des Datensatzes (mit der Methode Validate).
  • Schreiben Sie die Änderungen fest, wenn keine Fehler vorliegen (mit der Methode Commit).
  • Verwenden Sie zum Abbrechen der Aktion die Methode Revert.

Beispiel

# 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. 
< Vorherige Lektion | Nächste Lektion >

Feedback