< 이전 | 다음 >

변경사항 저장

데이터베이스에 변경사항을 저장하는 것은 먼저 변경 또는 작성한 레코드의 유효성을 검증한 후 변경사항을 저장하는 두 단계 프로세스입니다.

레코드를 작성하거나 편집한 후에는 다음 단계를 따라 데이터베이스에 변경사항을 저장하십시오.

  1. Entity 오브젝트의 Validate 메소드를 호출하여 레코드의 데이터를 유효성 검증하십시오. 이 메소드는 유효성 검증 오류를 리턴하므로 변경사항 저장을 시도하기 전에 오류를 수정할 수 있습니다.
  2. Entity 오브젝트의 Commit 메소드를 호출하십시오. 이 메소드는 데이터베이스에 변경사항을 기록하고 현재 조치를 종료하며, 레코드를 편집할 수 없도록 체크인합니다.

Validate 메소드는 스키마의 유효성 검증 스크립트를 실행하고 유효성 검증 오류가 포함된 문자열을 리턴합니다. 이 문자열이 비어 있지 않으면 GetInvalidFieldValues 메소드를 사용하여 올바르지 않은 데이터가 포함된 필드의 목록을 리턴할 수 있습니다. 이 필드의 값을 수정한 뒤에는 Validate를 다시 호출해야 합니다. Validate 메소드가 빈 문자열을 리턴하는 경우에는 더 이상 오류가 없는 것입니다.

레코드 유효성을 검증하고 유효성 검증이 성공하면, 해당 Entity 오브젝트의 Commit 메소드를 호출하여 데이터베이스에 대해 변경사항을 확약합니다.

변경사항 되돌리기: 레코드 유효성 검증에 실패하면, 데이터베이스에 대해 변경사항을 확약할 수 없습니다. 안전한 솔루션은 레코드를 원래의 상태로 되돌리고 오류를 보고하는 것입니다. 레코드를 되돌리려면 Entity 오브젝트의 Revert 메소드를 호출하십시오.

변경사항 세트를 되돌리면 레코드는 EditEntity 호출 이전 상태로 되돌아갑니다. BuildEntity 메소드로 작성된 Entity 오브젝트의 변경사항을 되돌리면 레코드가 작성되지 않고 데이터는 삭제됩니다. 레코드와 연관된 ID는 다시 순환하지 않습니다. BuildEntity 메소드에 의해 편집 가능으로 된 레코드를 되돌리는 경우 레코드가 삭제되지만, 해당 레코드의 볼 수 있는 ID는 삭제되지 않기 때문에 이후의 레코드가 해당 ID를 사용할 수 없습니다.

다음은 레코드 상태를 변경하기 위한 단계의 예제입니다.
  • EditEntity($Entity, action-name) 메소드를 사용하여 조치를 시작합니다.
  • 필드 값을 수정하고 필드 레벨 유효성을 확인합니다.
  • 레코드 상태의 유효성을 검증합니다(Validate 메소드 사용).
  • 오류가 없는 경우 변경사항을 확약합니다(Commit 메소드 사용).
  • 조치를 취소하려면 Revert 메소드를 사용합니다.

예제

# 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.
< 이전 | 다음 >

피드백