< Indietro | Avanti >

Come salvare le modifiche

L'esecuzione del commit delle modifiche nel database è un processo in due fasi, la prima consiste nel convalidare il record modificato o creato, la seconda nell'eseguire il commit delle modifiche.

Dopo aver creato o modificato un record, salvare le modifiche al database effettuando le seguenti operazioni:

  1. Convalidare i dati nel record richiamando il metodo Validate dell'oggetto Entity. Tale metodo riporta tutti gli errori di convalida affinché possano essere corretti prima di tentare di salvare le modifiche.
  2. Richiamare il metodo Commit dell'oggetto Entity. Tale metodo scrive le modifiche sul database, termina l'azione corrente ed esegue il checkin del record affinché non possa essere modificato.

Il metodo Validate esegue gli script di convalida dello schema e restituisce una stringa contenente tutti gli errori di convalida. Se questa stringa non è vuota, è possibile utilizzare il metodo GetInvalidFieldValues per ottenere un elenco di campi che contengono dati non corretti. Una volta corretti tali valori nei campi, è necessario richiamare nuovamente il metodo Validate. Se il metodo Validate restituisce una stringa vuota significa che non esistono ulteriori errori.

Una volta convalidato il record, ed eseguita con esito positivo la convalida, l'utente esegue il commit delle proprie modifiche nel database richiamando il metodo Commit dell'oggetto Entity corrispondente.

Come annullare le modifiche: se la convalida di un record non riesce, non è possibile eseguire il commit delle modifiche al database. La soluzione più sicura è di riportare il record al proprio stato originale e notificare un errore. Per riportare un record al proprio stato originale, richiamare il metodo Revert dell'oggetto Entity.

Eseguendo l'annullamento di una serie di modifiche, lo stato del record ritorna sullo stato che aveva prima di utilizzare il metodo EditEntity. Se si esegue l'annullamento delle modifiche apportate nell'oggetto Entity creato tramite il metodo BuildEntity, il record non viene creato e i dati vengono eliminati. Gli ID associati ai record non vengono riutilizzati. Se si annullano modifiche apportate ad un record reso modificabile con l'utilizzo del metodo BuildEntity, il record viene eliminato, ma non il suo ID visibile così da impedirne l'utilizzo da parte di record futuri.

Di seguito viene riportato un esempio delle procedure da seguire per modificare lo stato di un record:
  • Iniziare la procedura utilizzando il metodo EditEntity($Entity, nome-azione).
  • Modificare i valori dei campi e controllare la validità al livello del campo.
  • Convalidare lo stato del record (utilizzando il metodo Validate).
  • Eseguire il commit delle modifiche se non sono presenti errori (utilizzando il metodo Commit).
  • Per annullare l'azione utilizzare il metodo Revert.

Esempio

# Modificare il record ed eseguire il commit delle modifiche. 
$entityObj = $sessionobj->GetEntity("defect","BUGID00000042"); 
$sessionObj->EditEntity($entityobj,"modify"); 

# Modificare l'oggetto Entity 
# Il codice dovrebbe anche controllare le eccezioni 
$status = $entityObj->Validate(); 
if ($status == ""){
     $status = $entityObj->Commit();
     if ($status == ""){
         # commit riuscito
      } 
     else {
           # controllare il messaggio di errore
          } 

} else {
       $entityObj->Revert();
      } 
# L'oggetto Entity non è più modificabile.
< Indietro | Avanti >

Feedback