Você pode configurar um novo valor para uma propriedade, utilizando o método set específico da propriedade para configurar o valor da propriedade no objeto proxy. (As propriedades que não possuem um método set não podem ser configuradas utilizando o Rational CM API.) Ao especificar novos valores em um método set, os valores são armazenados no proxy. Os valores não são gravados no recurso real em seu repositório até que o aplicativo cliente chame um método do, como o método doWriteProperties, no objeto proxy.
Você deve chamar um método do como o método doWriteProperties para atualizar o recurso subjacente no repositório do produto. O método grava as propriedades atualizadas no proxy para o recurso do produto, todas como uma transação. As falhas não ocorrem quando os valores das propriedades são configurados no proxy, mas podem ocorrer quando o método do é chamado. Nesse momento, uma exceção pode ser emitida.
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);O método doWriteProperties() utiliza um parâmetro PropertyRequest.
Não é necessário chamar doReadProperties() antes de chamar doWriteProperties() se você souber qual valor da propriedade deve ser gravado sem primeiro ler o valor atual. No exemplo a seguir, o campo Proprietário do Defeito SAMPL00000005 no banco de dados de amostra está configurado como user = admin.
cq.record:<tipo-de-registro>/<ID-do-registro>@<nome-do-conjunto-de-bd>/<nome-do-banco-de-dados>Neste exemplo, a cadeia de local de registro é:
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"sendo que:
CqRecord myRecord = myCqProvider.cqRecord(myProvider.stpLocation("cq.record:Defect/SAMPL00000005@7.0.0/SAMPL")); PropertyName<CqRecord> OWNER = new FieldName<CqRecord>("Proprietário"); myRecord.setProperty(OWNER, myProvider.buildProxy(CqRecord.class, "cq.record:users/admin@7.0.0/SAMPL"); myRecord.doWriteProperties(null);
Consulte o Sintaxe de Local para obter informações adicionais.