Originally asked by Andrea Mura on 30 November 2022 (original question)
Hallo,
with Serhiy Onyshchenko we(he) write a chunk of code that permit to generate a comment with drived visibility from salesforce to Jira.
Here’s the code
//COMMENT INTERNAL/EXTERNAL
store(entity)
replica.addedComments.collect{
comment\-\>
def visibility \= comment.internal?"InternalUsers":"AllUsers"
def commentid \= httpClient.http(
"POST",
"/services/data/v54\.0/chatter/feed\-elements",
//"{\\"Comments\\":\\"\[${comment.author.displayName}] commented: ${nodeHelper.stripHtml(comment.body)}\\"}",
//"""{"subjectId":"${[entity.id](http://entity.id)}", "body":{ "messageSegments":\[{"type":"Text", "text":"${comment.body}"}] }, "feedElementType":"FeedItem", "visibility":"AllUsers"}""",
groovy.json.JsonOutput.toJson(\["subjectId":[entity.id](http://entity.id),"body":\["messageSegments":\[\["type":"Text","text":comment.body]]],
"feedElementType":"FeedItem", "visibility":visibility]),
null,
\["Content\-Type":\["application/json"]])
{
req, res2\-\>[res2\.body.id](http://res2.body.id)
}
def trace \= new com.exalate.basic.domain.BasicNonPersistentTrace()
.setType(com.exalate.api.domain.twintrace.TraceType.COMMENT)
.setToSynchronize(true)
.setLocalId(commentid as String)
.setRemoteId(comment.remoteId as String)
.setAction(com.exalate.api.domain.twintrace.TraceAction.NONE)
traces.add(trace)
}
return new scala.Tuple2(issueKey, scala.collection.JavaConverters.asScalaBuffer(traces))
It works very well, but after the last exalate update this code generate an error.
Error Detail Message:
java.lang.NullPointerException
How can we fix?
Comments:
Serhiy Onyshchenko commented on 30 November 2022
Hello, Andrea Mura
Might I ask you to try replacing
store(entity)
with
if (firstSync) {
binding.variables.put("connection", nodeHelper.connection)
store(entity)
}
And let me know if this helped?
Regards, Serhiy.