Commit

Descripción

Actualiza la base de datos con los cambios realizados en el objeto Entity.

Este método confirma todos los cambios realizados en la base de datos. Antes de llamar a este método, debe validar todos los cambios que ha realizado en el objeto Entity llamando al método Validate. La aplicación sólo puede llamar al método Commit si el método Validate devuelve una serie vacía. Después de llamar al método Commit, si el resultado es satisfactorio, se confirma la entidad en la base de datos y se ejecutan todos los enganches posteriores a la confirmación (como, por ejemplo, enganches de notificación).
  • Si se produce un error durante la confirmación y antes de que se confirme la entidad en la base de datos, se lanza una excepción; el error no se devuelve como un resultado de String y el objeto Entity permanece en el mismo estado que tenía antes de la llamada al método Commit. Por ejemplo, los enganches de confirmación se ejecutan después de que se escriban los datos en la base de datos, pero antes de que se lleve a cabo la confirmación en la base de datos. El resultado de un error devuelto de un enganche de confirmación es una excepción del método Commit.
  • Si se produce un error después de confirmar la entidad en la base de datos (por ejemplo, una anomalía de un enganche de notificación de acción), el error se devuelve como un resultado de String, y el objeto Entity ya no presenta un estado de editable.

Sólo se puede llamar a este método si el objeto Entity se puede editar. Para convertir un objeto Entity existente en editable, llame al método EditEntity del objeto Session. Puede utilizar el método IsEditable del objeto Entity para determinar si se debe revertir la operación de confirmación como parte del manejo de excepciones. Es posible que no desee revertir todas las anomalías de validación, y la llamada al método Revert no funcione después de una confirmación satisfactoria (aunque devuelva un aviso de posnotificación debido a que la entidad se ha confirmado en la base de datos).

En caso de anomalía, este método puede devolver un valor String que contiene un mensaje de error o una excepción, dependiendo de la causa de la anomalía. Por ejemplo, el método devuelve un valor String que contiene un mensaje de error para anomalías como, por ejemplo, valores no válidos establecidos para campos. Sin embargo, el método lanza una excepción para otras anomalías, tales como intentar cambiar una entidad que no presenta un estado editable. El código debe manejar ambos tipos de posibles anomalías. Consulte el apartado Comprobación y validación de errores para obtener más información. En el apartado Ejemplo de enganche de confirmación de acción se proporcionan ejemplos de manejo de errores y excepciones al llamar al método Commit.

Nota: El método Commit no puede utilizarse en un enganche para confirmar la entidad en la que se había invocado la acción actual (es decir, la entidad actual).

Sintaxis

VBScript

 entity.Commit 

 

Perl

 $entity->Commit(); 

 
Identificador
Descripción
entity
Un objeto Entity que representa un registro de datos de usuario. En un enganche, si se omite esta parte de la sintaxis, se presupone el objeto Entity correspondiente al registro de datos actual (sólo VBScript).
Valor de retorno
Si el objeto Entity es válido, este método devuelve un Empty String (''). Si se detecta algún error de validación, el valor String contiene una explicación del problema, adecuada para presentar al usuario.

Ejemplos

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