Commit

Descrizione

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 di Post Commit (come gli hook di notifica).
  • 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 risultato in formato stringa e l'oggetto Entity rimane nello stesso stato in cui era prima della chiamata al metodo Commit. Ad esempio, gli hook di 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 di 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 di notifica di azione), l'errore viene restituito come risultato in formato stringa 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 editabile, 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 di commit di azione 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
Descrizione
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 la stringa vuota (''). Se viene rilevato un qualsiasi errore di convalida, la stringa 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