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 Thanks i got the comments attribute... um trying now to add a comment to it. 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!
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); and then.. you have to SAVE the workitem
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.
|
![]()
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);
|