< Anterior | Próximo >

Salvando alterações

A confirmação de alterações no banco de dados é um processo de duas etapas em que você, primeiramente, valida o registro alterado ou criado e, em seguida, confirma a alteração.

Depois de criar ou editar um registro, salve as alterações no banco de dados executando as seguintes etapas:

  1. Valide os dados no registro chamando o método Validate do objeto Entity. Esse método retorna todos os erros de validação de maneira que você pode corrigi-los antes de tentar salvar as alterações.
  2. Chame o método Commit do objeto Entity. Esse método grava as alterações no banco de dados, termina a ação atual e verifica se o registro pode ou não ser editado.

O método Validate executa os scripts de validação de esquema e retornam uma cadeia contendo quaisquer erros de validação. Se essa cadeia não estiver vazia, você pode usar o método GetInvalidFieldValues para retornar uma lista de campos que contém dados que não estão corretos. Depois de corrigir os valores nesses campos, é necessário chamar o Validate novamente. Se o método Validate retorna uma cadeia vazia, não há mais erros.

Depois de validar o registro e da conclusão bem sucedida da validação, você confirma as alterações no banco de dados chamando o método Commit do objeto Entity correspondente.

Reverter alterações: Se a validação de um registro falhar, você não pode confirmar as alterações no banco de dados. A solução mais segura é reverter o registro ao seu estado original e relatar um erro. Para reverter um registro, chame o método Revert do objeto Entity.

Reverter um conjunto de alterações retorna o registro ao estado em que estava antes de chamar EditEntity. Se as alterações feitas em um objeto Entity criado pelo método BuildEntity forem revertidas, o registro não é criado e os dados são descartados. Os IDs associados aos registros não são reciclados. Se você reverter um registro que foi transformado em editável pelo método BuildEntity, o registro é descartado, mas o ID visível não é, assim futuros registros não podem usar esse ID.

Aqui temos um exemplo das etapas para alteração do estado de um registro:
  • Inicie a ação usando o método EditEntity($Entity, action-name).
  • Modifique os valores dos campos e verifique a validade do nível de campo.
  • Valide o estado do registro (usando o método Validate).
  • Confirme as alterações para que não haja erros (usando o método Commit).
  • Para cancelar a ação use o método Revert.

Exemplo

# Modify the record and then commit the changes.
$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.
< Anterior | Próximo >

Feedback