Setting "Discussion" attribute of Work Item
Hello,
I am trying to set the value of "Discussion" at work item pragmatically.
IWorkItemClient workItemClient= (IWorkItemClient)repository.getClientLibrary(IWorkItemClient.class);
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"?
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
see my sample dump all attributes code here , second post
https://jazz.net/forum/questions/94776/assertionfailedexception-problem-with-getting-the-values-of-attributes
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);
workItem.getWorkItem().setValue(commentsAttr, commentList);
and then.. you have to SAVE the workitem
I 'think' its like this in your sample
wc.save(IProgressMonitor p);
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
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
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
I tried to fetch the comments by this way but I received a null object:!
IAttribute attribute = service.findAttribute(projectArea, "comments", monitor);
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!
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);