Synchronize attributes only mentioned attribute
Hi All,
I have few doubts on "Synchronize Attributes" I have gone through link
I have 4.0.5 client and 4.0.5 server
1. There are many slave project area how to update all work ticktes(closed and open) in all project area.
2. There are huge amount of data So I don't thing "Synchronize attribute" from query result will help.
3. there are 3-4 new attributes are added currently but I want to sync only one attribute.
Thanks in advance.
Kavita
2 answers
1. A seperate query will need to be run against each project area
2. DOn't know the answer, but would suggest doing a test to validate your assumption
3. My understanding is that the sync is an all or none operation
I think Abraham is right. Synchronize attributes will always add all new attributes. So you can't use that.
But you can use the API to just add the one attribute you want. The API you can use is IWorkItem.addCustomAttribute. The code looks like:
if (!workItem.hasCustomAttribute(customInteger) && fCreateAttributesIfMissing) { // If not defined in the process template it has to be // manually created workItem.addCustomAttribute(customInteger); } if (workItem.hasCustomAttribute(customInteger)) workItem.setValue(customInteger, fCustomInteger);You can use this in an operation similar to synchronize attributes in my blog post.
Comments
Hi Ralph,
I am doing in similar manner but still getting error at addCustomAttribute statement. I added that attribute in project area and to respective work item Type manulay. this code has to add this attribute to old WTs
if(workItem.hasCustomAttribute(attributeHandle)){
temp = "Has attribute";
}else{
try {
copyManager.connect((IWorkItemHandle)workItem.getItemHandle(),IWorkItem.FULL_PROFILE,mine);
WorkItemWorkingCopy wc = copyManager.getWorkingCopy(workItem);
((IWorkItem) wc).addCustomAttribute(attributeHandle);
} catch(Exception e) {
Please let me know where I am making mistake.
Thanks,
Kavita
I don't see the wc.save operation.
Also be aware that hsi does not add the attribute to the process description. You have to add the attribute there before you do this, otherwise it will not show up in the process.