Grabación de propiedades

Puede utilizar la API de ClearQuest CM para establecer un valor nuevo para una propiedad en el objeto proxy utilizando el método set específico de la propiedad, si existe. Las propiedades que no tienen un método set no pueden establecerse mediante la API de ClearQuest CM.

Al especificar valores nuevos en un método set, los valores se almacenan en el proxy. Los valores no se graban en el recurso real de su repositorio hasta que la aplicación cliente llama a un método do, como, por ejemplo, el método doWriteProperties en el objeto del proxy.

Debe llamar a un método do como, por ejemplo, el método doWriteProperties para actualizar el recurso subyacentes en el repositorio del producto. El método graba las propiedades actualizadas en el proxy para el recurso del producto en forma de una sola transacción. No se producen anomalías cuando los valores de la propiedad se establecen en el proxy, pero pueden producirse cuando se llama al método do. En dicho momento, es posible que se lance una excepción.

El ejemplo siguiente añade texto a la propiedad Comment de un recurso:
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);
El método doWriteProperties() utiliza un parámetro PropertyRequest.

No es necesario llamar a doReadProperties() antes de llamar a doWriteProperties() si sabe qué valor de propiedad debe grabarse sin leer primero el valor actual. En el ejemplo siguiente, el campo Owner de Defect SAMPL00000005 de la base de datos de muestra se establece en user = admin.

A continuación se muestra la sintaxis de una serie de ubicación de registro:
cq.record:<tipo-registro>/<id-registro>@<nombre-conjunto-base-datos>/<nombre-base-datos>
En este ejemplo, la serie de la ubicación del registro es:
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"
donde: El método Resource.setProperty se utiliza como alternativa a los métodos set específicos de interfaz.
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);

Consulte Sintaxis de ubicación para obtener más información.


Comentarios