Question about how to get custom attributes
Hi,
I am begginer with RTC Java API’s and I am having problems to load custom attributes values... I believe that my question is relative about concepts, but I already read some articles but the questions continue...
I found a lot of informations here: http://rsjazz.wordpress.com/2013/01/02/working-with-work-item-attributes/ but didn't solve my questions...
I want to get custom attributes from IWorkItem, then i have:
<code>
....
//Search work items from project area here
List<IWorkItem> workItems = searchByProjectArea("Project Area X");
for (IWorkItem iWorkItem : workItems) {
IAttribute att = workItemClient.findAttribute(iWorkItem.getProjectArea(),
"attributeName", null);
// Shouldn't be workItemClient.findAttribute(iWorkItem, "attributeName", null)?????? My custom attribute is at workitem and not at project area
if (iWorkItem.hasAttribute(att )) {
System.out.println("OK!!!!!");
} else {
System.out.println("Error!!! Always stop here");
}
}
</code>
What it's wrong?
|
Accepted answer
its not attribute name, it attribute ID..
I always give my workitem attributes IDs I can figure out com.xx.workitem.attribute.name here is a link to my utility which prints out values of workitem attributes (workitems returned from query but not any different once u have the workitem) see the accepted answer here https://jazz.net/forum/questions/94776/assertionfailedexception-problem-with-getting-the-values-of-attributes watch out, the forum changes text case for anything near a < or > character, so when u cut/paste this into an eclipse project java file, you will get some errors Ralph Schoon selected this answer as the correct answer
|
2 other answers
Hi Sam, thanks your answer...
I am getting by attribute ID, not by attribute name...
Does your script don't get custom attributes, correct? The attributes that I want are custom...
What do you say about this:
<code>
workItemClient.findAttribute(iWorkItem.getProjectArea(),
"attributeName", null);
// Shouldn't be workItemClient.findAttribute(iWorkItem, "attributeName", null)?????? My custom attribute is at workitem and not at project area
</code>
Comments
sam detweiler
commented May 30 '14, 5:18 p.m.
my sample does ALL attributes, custom or not.. you can make it JUST custom
sam detweiler
commented May 30 '14, 6:20 p.m.
and u SAY you are not using the NAME, but then the pseudo code you show says
sam detweiler
commented May 30 '14, 6:26 p.m.
and for the specific question you asked
Vinícius Rabelo
commented Jun 02 '14, 4:05 p.m.
Thanks your answer, i take a little time to answer because the weekend...
I said "attributeName" because I made a mistake but I used attribute id...
If i travel all workitems from my project and I verify workItem.hasAttribute(ia), this never is true...
But if I look at RTC client (eclipse) at Project Area --> Tab Process Configuration --> Configuration Tree -> Project Configuration --> Configuration Data --> Work itens --> Types and attributes my attribute it's here...
Do you know what can be wrong?
sam detweiler
commented Jun 02 '14, 4:10 p.m.
Any workitems created BEFORE you added the configuration info will not jg ave those new attributes until you do a synchronize operation on them.
U can do the synch in eclipse in the process editor.
|
I did the synchronization, but isn't working...
Does all workitem have the attribute ID? Then if i try to get the workitem ID, at any workitem, like this:
<code>
for (IAttribute ia : workItemCommon.findAttributes(projectArea, monitor)) {
if(ia.getIdentifier().equals("com.ibm.team.workitem.attribute.id")){
if ((workItem.hasAttribute(ia) || workItem
.hasCustomAttribute(ia)) && !ia.isInternal()) {
System.out.println("OK");
}
}
}
</code>
This should be true at some moment, Am I correct? But this is not working...
Comments
sam detweiler
commented Jun 03 '14, 3:22 p.m.
if(ia.getIdentifier().equals("com.ibm.team.workitem.attribute.id")){
watch out for mixed case literals.. I think it is 'workItem'..
so
if(ia.getIdentifier().equalsIgnoreCase("com.ibm.team.workitem.attribute.id")){
Vinícius Rabelo
commented Jun 05 '14, 6:01 p.m.
Solved, thanks a lot...
sam detweiler
commented Jun 05 '14, 6:04 p.m.
Can u tell us what u ended up doing?
Vinícius Rabelo
commented Jun 06 '14, 5:56 p.m.
Sure... I am beginner, then I was making confusion... I identify two problems:
- I was using small profile and didn't come the necessary attributes
- Were necessary to make synchronize operation...
Thanks a lot
sam detweiler
commented Jun 06 '14, 9:20 p.m.
Thank you. Others who are beginners can learn from your experience.
I try to use full profile all the time unless I have a specific reason to be selective.
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.