It's all about the answers!

Ask a question

appending Comments during an initial programmatic create


1
1
Susan Hanson (1.6k2192194) | asked Jun 27 '12, 1:01 a.m.
I am programmatically creating work items and I am having issues doing comments.  The code does this:

//get a "working copy" of an empty work item
final IWorkItemType workItemType = workItemClient.findWorkItemType (projArea, "defect", null);
final IWorkItemHandle handle = workItemClient.getWorkItemWorkingCopyManager().connectNew (workItemType, null);
final WorkItemWorkingCopy workingCopy = workItemClient.getWorkItemWorkingCopyManager ().getWorkingCopy (handle);
final IWorkItem workItem = workingCopy.getWorkItem ();

//fill in all the values
.
//Description
XMLString description = XMLString.createFromPlainText(descriptionText);
workItem.setHTMLDescription (description);           

.
//add the comments
IComments srcComments = workItem.getComments();
XMLString content = XMLString.createFromPlainText(contentString);
IComment ic = srcComments.createComment(creator , content);
srcComments.append(ic);
//workItem.setValue(comment,srcComments);

//save to create it
final IDetailedStatus status = workingCopy.save (null);

Now, I was trying the setValue() at the end but that gave a classCastException, so I removed it.  My code runs and the description shows up in the new work item, but no comments.  The description uses setHTMLDescription() but I didn't find a "setComments() or setHTMLComments().

Has anyone done this?  Can you send a snippet or tell me what I am doing wrong??

Thanks in advance,
susan

Accepted answer


permanent link
SEC Servizi (97122854) | answered Jun 27 '12, 9:06 a.m.
Hi Susan,
the code below works for us:
ITeamRepository repo = ...
WorkItemWorkingCopy workingCopy = ...
IWorkItem wiFreshCopy = workingCopy.getWorkItem();
IComments comments = wiFreshCopy.getComments();
String msg = ...
IComment comment = comments.createComment(repo.loggedInContributor(), XMLString.createFromPlainText(msg)); 
comments.append(comment);
workingCopy.save(null);

Cheers.
Ralph Schoon selected this answer as the correct answer

Comments
Susan Hanson commented Jun 27 '12, 9:58 a.m.

Okay, so very interesting .. .it seems like the content of my comment is causing the issue but I am not getting an error (it just ignores). For example, if my "msg" variable is: String msg = "my comment is here"; then it works. if I change it to: String msg = "my comment line 1" + "\n" + "my comment line 2";

then my comment is ignored AND I don't get an error.

Any ideas? I want to be able to have multiple lines, and I can do that using the eclipse client, so I assumed I could do this programmatically. Using the "\n" works programmatically in the Description.


SEC Servizi commented Jun 27 '12, 11:23 a.m. | edited Jun 27 '12, 11:31 a.m.

Weird... We use multi-line comments, too. Notice that we use: XMLString.createFromPlainText(msg);

One other answer



permanent link
Muthukumar C (32712833) | answered Jun 27 '12, 9:01 a.m.
Hi,

try this method.

WorkItem.getComments.append(IComment);

This IComment parameter you can create by WorkItem.getComment.CreateComment(); method.

Regards
Muthukumar.C

Your answer


Register or to post your answer.