Eigenschaften schreiben

Mithilfe der ClearQuest CM API können Sie über die eigenschaftsspezifische set-Methdode (sofern vorhanden) einen neuen Wert für eine Eigenschaft in dem Proxy-Objekt festlegen. Eigenschaften ohne set-Methode können nicht mithilfe der ClearQuest CM API festgelegt werden.

In einer set-Methode angegebene neue Werte werden im Proxy gespeichert. Die Werte werden erst in die eigentliche Ressource im Repository geschrieben, wenn die Clientanwendung für das Proxy-Objekt eine do-Methode aufruft, z. B. die Methode doWriteProperties.

Zum Aktualisieren der zu Grunde liegenden Ressource im Produktrepository müssen Sie eine do-Methode wie doWriteProperties aufrufen. Die Methode schreibt die im Proxy aktualisierten Eigenschaften mit einer Transaktion in die Produktressource. Beim Festlegen von Eigenschaftswerten im Proxy treten keine Fehler auf. Es kann jedoch zu Fehlern kommen, wenn die do-Methode aufgerufen wird. In einem solchen Fall könnte eine Ausnahme ausgelöst werden.

Das folgende Beispiel fügt Text zur Eigenschaft Comment einer Ressource hinzu:
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);
Die Methode doWriteProperties() verwendet einen Parameter PropertyRequest.

Es ist nicht notwendig doReadProperties() vor doWriteProperties() aufzurufen, wenn Sie wissen, welcher Eigenschaftswert geschrieben werden soll, ohne zuvor den aktuellen Wert zu lesen. Im folgenden Beispiel wird das Feld Owner für den Defect SAMPL00000005 in der Musterdatenbank auf user = admin gesetzt.

Nachfolgend wird die Syntax der Positionszeichenfolge für eine Datensatzposition gezeigt:
cq.record:<Satztyp>/<Datensatz-ID>@<Name_der_Datenbankgruppe>/<Datenbankname>
Für unser Beispiel sieht die Zeichenfolge für die Satzposition wie folgt aus:
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"
Für diese Zeichenfolge gilt Folgendes: Die Methode Resource.setProperty wird als Alternative zu den schnittstellenspezifischen set-Methoden verwendet.
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);

Weitere Informationen finden Sie im Abschnitt Positionssyntax.


Feedback