Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

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 :

                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"?

   wc.getWorkItem().setValue(discussionAttribute, "New Value for Discussion");

Any ideas!

0 votes


Accepted answer

Permanent link
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

1 vote

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 '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

Permanent link
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)

1 vote


Permanent link
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.

0 votes


Permanent link
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


0 votes

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);


Permanent link
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);

0 votes

Your answer

Register or log in to post 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,937
× 411
× 369

Question asked: May 13 '13, 8:46 a.m.

Question was seen: 8,863 times

Last updated: May 13 '13, 2:42 p.m.

Confirmation Cancel Confirm