쓰기 특성

프록시 오브젝트에서 특성 값을 설정하는 특성별 set 메소드를 사용하여 새로운 특성 값을 설정할 수 있습니다. (set 메소드가 없는 특성은 Rational® CM API를 사용하여 설정할 수 없습니다.) set 메소드에서 지정한 새 값은 프록시에 저장됩니다. 이러한 값은 클라이언트 응용프로그램이 프록시 오브젝트에 대한 do 메소드(doWriteProperties 메소드 등)를 호출할 때까지 저장소의 실제 자원에 쓰여지지 않습니다.

제품 저장소의 기본 자원을 갱신하려면 doWriteProperties 메소드와 같은 do 메소드를 호출해야 합니다. 이 메소드는 프록시에서 갱신된 특성을 제품 자원에 모두 하나의 트랜잭션으로 작성합니다. 프록시에 특성 값을 설정하는 경우 장애가 발생하지 않지만 do 메소드를 호출하는 경우 장애가 발생할 수 있습니다. 이 경우, 예외가 발생합니다.

다음 예제는 자원의 주석 특성에 일부 텍스트를 추가합니다.
PropertyRequest requestComment = 
   new PropertyRequest (Resource.COMMENT );
Location location = myProvider.location(...);
Resource myResource = myProvider.resource(location);
myResource = myResource.doReadProperties(requestComment);
String comment = myResource.getComment();
myResource.setComment(comment + "addition to comment");
myResource.doWriteProperties(null);
doWriteProperties() 메소드는 PropertyRequest 매개변수를 사용합니다.

현재 값을 읽지 않아도 작성할 특성 값을 이미 알고 있는 경우에는 doWriteProperties()를 호출하기 전에 doReadProperties()를 호출할 필요가 없습니다. 다음 예제에서는 샘플 데이터베이스의 SAMPL00000005 결함에서 Owner 필드를 user = admin으로 설정합니다.

다음은 레코드 위치에 대한 위치 문자열 구문입니다.
cq.record:<record-type>/<record-id>@<db-set-name>/<database-name>
이 예제에서 레코드 위치 문자열은 다음과 같습니다.
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"
여기서 각 항목은 다음과 같습니다. Resource.setProperty 메소드는 인터페이스별 set 메소드의 대체 메소드로 사용됩니다.
CqRecord myRecord = myCqProvider.cqRecord(myProvider.stpLocation("cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"));
PropertyName<CqRecord> OWNER = new FieldName<CqRecord>("Owner");

myRecord.setProperty(OWNER, myProvider.buildProxy(CqRecord.class, "cq.record:users/admin@7.0.0/SAMPL");
myRecord.doWriteProperties(null);

자세한 정보는 위치 구문을 참조하십시오.


피드백