Setting "Discussion" attribute of Work Item
Hello,
I am trying to set the value of "Discussion" at work item pragmatically.
I managed to set the "Description" attribute but when I tried to set the Discussion I got null pointer exception :
IWorkItemWorkingCopyManager manager= workItemClient.getWorkItemWorkingCopyManager(); manager.connect(workItem, IWorkItem.SMALL_PROFILE, SysoutProgressMonitor.getMonitor()); WorkItemWorkingCopy wc= manager.getWorkingCopy(workItem); IProgressMonitor monitor = SysoutProgressMonitor.getMonitor(); IWorkItemClient service = (IWorkItemClient) repository.getClientLibrary(IWorkItemClient.class); IAttribute discussionAttribute = service.findAttribute(projectArea, "discussion", monitor);//Here I got a null "discussionAttribute"?
wc.getWorkItem().setValue(discussionAttribute, "New Value for Discussion");
Any ideas!
|
Accepted answer
yeh, its id is "internalComments".. don't know why it doesn't respond to Comments
see my sample dump all attributes code here , second post https://jazz.net/forum/questions/94776/assertionfailedexception-problem-with-getting-the-values-of-attributes Fatla 777 selected this answer as the correct answer
Comments
Fatla 777
commented May 13 '13, 11:04 a.m.
Thanks i got the comments attribute... um trying now to add a comment to it.
Fatla 777
commented May 13 '13, 12:45 p.m.
When I tried to set the new comment,everything goes right
However,when I open my work item to find the updates,nothing is added!
Fatla 777
commented May 13 '13, 12:46 p.m.
IComments comments=workItem.getWorkItem().getComments();
IAttribute commentsAttr = service.findAttribute(projectArea, "internalComments", monitor);
List commentList=new ArrayList();
commentList.add(comments.getContents()[0]);//POC commentList.add(comments.getContents()[0]); //POC
workItem.getWorkItem().setValue(commentsAttr, commentList);
sam detweiler
commented May 13 '13, 2:11 p.m.
and then.. you have to SAVE the workitem
Fatla 777
commented May 13 '13, 2:34 p.m.
I already had this line ... but I think the issue in that line:
wc.getWorkItem().setValue(commentsAttr, commentList);
For some reason when I removed it ,it works :)
Merci Sam :)
showing 5 of 6
show 1 more comments
|
4 other answers
discussion is not an attribute
the field is called comments <attributeDefinition id="com.ibm.team.workitem.attribute.comments" name="Comments" type="comments"/> it is an array (IComments) of comment objects. (IComment) |
Being a newbie to RTC-API:
-How did you get this xml definition!
-I noticed that "Disccusion" has attributedefinition .. so it is an attribute,isn't it
-How do I add a comment to its list!
Thanks Sam.
|
for the 'how', download the java doc
the xml - I edited the process config, and found the comments attribute there is no 'discussion' attribute.. (at least not in the out of the box objects) if it is a custom object, then you would have to use the 'id' value Comments
Fatla 777
commented May 13 '13, 9:40 a.m.
I tried to fetch the comments by this way but I received a null object:!
IAttribute attribute = service.findAttribute(projectArea, "comments", monitor);
Fatla 777
commented May 13 '13, 9:49 a.m.
I found this at my config:
<section id="com.ibm.team.workitem.web.inline.section.discussion">
<presentation id="com.ibm.team.workitem.presentation.discussion" kind="com.ibm.team.workitem.kind.internal.discussion">
<property key="hideIfCreation" value="true"/>
</presentation>
</section>
How can I set it programatically!
Fatla 777
commented May 13 '13, 10:16 a.m.
I tried the following but I still get null !
Attribute commentAttribute= service.findAttribute(projectArea, "com.ibm.team.workitem.attribute.comments", monitor);
|
This is the final resolution and it works :)
Thanks to Sam.
IWorkItemClient workItemClient= (IWorkItemClient)repository.getClientLibrary(IWorkItemClient.class);
IWorkItemWorkingCopyManager manager= workItemClient.getWorkItemWorkingCopyManager();
manager.connect(workItem, IWorkItem.SMALL_PROFILE, SysoutProgressMonitor.getMonitor());
WorkItemWorkingCopy wc= manager.getWorkingCopy(workItem);
IAttribute commentsAttr = findAttribute(repository, projectArea, "internalComments");
IComments comments= wc.getWorkItem().getComments();
IComment comment= comments.createComment( repository.loggedInContributor(),
XMLString.createFromPlainText( "Aloo from Mars"));
comments.append(comment);
wc.save(null);
|
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.