Commit

Description

Aggiorna il database con le modifiche effettuate all'oggetto Entity.

Questo metodo esegue il commit di tutte le modifiche effettuate al database. Prima di richiamare questo metodo, è necessario convalidare tutte le modifiche effettuate all'oggetto Entity richiamando il metodo Validate. L'applicazione può richiamare il metodo Commit solo se il metodo Validate restituisce una stringa vuota. Dopo aver richiamato il metodo Commit, in caso di esito positivo viene eseguito il commit dell'oggetto Entity nel database e viene eseguito qualsiasi hook Post Commit (come gli hook Notification).
  • Se si verifica un errore durante l'esecuzione del commit e prima che venga eseguito il commit dell'oggetto Entity nel database, viene generata un'eccezione; l'errore non viene restituito come un risultato del valore String e l'oggetto Entity rimane nello stesso stato in cui era prima della chiamata al metodo Commit. Ad esempio, gli hook Commit vengono eseguiti dopo aver effettuato la scrittura dei dati nel database ma prima di aver effettuato il commit del database. Un errore restituito da un hook Commit determina un'eccezione proveniente dal metodo Commit
  • Se si verifica un errore dopo aver eseguito il commit dell'oggetto Entity nel database (come un errore di un hook Action Notification), l'errore viene restituito come un risultato del valore String e l'oggetto Entity non è più in uno stato modificabile.

È possibile richiamare questo metodo solo se l'oggetto Entity è modificabile. Per rendere un oggetto Entity esistente modificabile, richiamare il metodo EditEntity dell'oggetto Session. È possibile utilizzare il metodo IsEditable dell'oggetto Entity per determinare se è necessario ripristinare l'operazione di commit come parte della gestione di eccezioni. Si potrebbe non desiderare di eseguire il ripristino per tutti gli errori di convalida e la chiamata del metodo Revert non funziona dopo un'esecuzione del commit riuscita (anche se restituisce un avviso di post notifica poiché è stato già eseguito il commit dell'entità nel database).

In caso di errore, il metodo può restituire una stringa contenente un messaggio di errore o un'eccezione, in base ai motivi che hanno causato l'errore. Ad esempio, il metodo restituisce una stringa contenente un messaggio di errore relativo ad errori come, valori non validi impostati per campi. Tuttavia, il metodo genera un'eccezione per altri errori, come il tentativo di modificare un'entità che non è in uno stato modificabile. Il codice deve gestire entrambi i tipi di errori potenziali. Per ulteriori informazioni, consultare Verifica errori e convalida. Nell'argomento Esempio di hook Action Commit sono contenuti esempi sulla gestione di errori ed eccezioni durante la chiamata del metodo Commit.

Nota: non è possibile utilizzare il metodo Commit in un hook per eseguire il commit dell'entità su cui l'azione corrente è stata richiamata (ossia, l'entità corrente).

Sintassi

VBScript

 entity.Commit 

 

Perl

 $entity->Commit(); 

 
Identificativo
Description
entity
Un oggetto Entity che rappresenta un record di dati dell'utente. All'interno di un hook, se si omette questa parte della sintassi, viene utilizzato l'oggetto Entity corrispondente al record di dati corrente (solo VBScript).
Valore di ritorno
Se l'oggetto Entity è valido, questo metodo restituisce il valore String vuoto (''). Se viene rilevato un qualsiasi errore di convalida, il valore String contiene una spiegazione del problema, adatta per l'utente.

Esempi

VBScript

 ' Modify the record and then commit the changes.
 set sessionObj = GetSession
 set 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 = "" then
          status =    entityObj.Commit 
          if status = "" then 
             ' successful commit
          else
             'check error message
          end if
 
        else
          entityObj.Revert  
        end if
 ' The Entity object is no longer editable 
 

Perl

# Modify the record and then commit the changes.
 $sessionObj = $entity->GetSession();
 
 $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. 

 


Feedback