Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
0 / 0 points
Next:
badges earned

Your Points Tracker
Challenges
Leaderboard
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Recognition
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Kudos
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Scriptrunner listener log returns "data was not an object"

I have assembled a script listener to copy the contents of a system field (Assignee) to a custom Field (Assigned To) when an event (Issue Updated) is triggered. I have limited it to one project (ATS) and would like it to only run against the issue that triggered the event.

I have assembled the script from two available via Adaptavists website, the Copy Custom Field Values and the Calculate Custom Field On Issue Update. Using the Copy Custom Field Values wants to run agains all issues that meet the JQL query on the second line. The Calculate Custom Field On Issue Update only runs against the issue that triggered it and works wonderfully elsewhere on our instance.

 

The script 'completes successfully,' but leaves this error:

2018-01-30 22:16:52.816 INFO - Serializing object into 'interface java.util.Map'
2018-01-30 22:16:52.822 INFO - GET /rest/api/2/issue/ATS-1544 asObject Request Duration: 1029ms
2018-01-30 22:16:53.372 INFO - Serializing object into 'interface java.util.List'
2018-01-30 22:16:53.613 INFO - GET /rest/api/2/field asObject Request Duration: 759ms
2018-01-30 22:16:54.220 WARN - PUT request to /rest/api/2/issue/ATS-1544 returned an error code: status: 400 - Bad Request
body: {"errorMessages":[],"errors":{"customfield_14047":"data was not an object"}}
2018-01-30 22:16:54.222 INFO - PUT /rest/api/2/issue/ATS-1544 asString Request Duration: 548ms

 Here is my script:

package com.adaptavist.sr.cloud.samples.events

def sourceFieldName = 'Assignee'
def targetFieldName = 'customfield_14047' //'Assigned To'
def result = get("/rest/api/2/issue/${issue.key}" )
    .header('Content-Type', 'application/json')
    .asObject(Map)

// We retrieve a list of all fields in this JIRA instance
def fields = get("/rest/api/2/field")
    .asObject(List)
    assert fields.status == 200

List<Map> allFields = fields.body


// Now we lookup the field IDs
Map sourceField = allFields.find { it.name == sourceFieldName }
Map targetField = allFields.find { it.name == targetFieldName }

put("/rest/api/2/issue/${issue.key}")
    .header("Content-Type", "application/json")
    .body([
    fields:[
    (targetFieldName): sourceField.key
    ]
])
   .asString()

2 answers

0 votes

This looks weird to me:

(targetFieldName): sourceField.key

You are setting the "key" of the assignee field (not its value) to the  #14047 custom field?

I think this is the culprit. Check what is the body you are PUTting to the REST end-point.

Hey

 

try this:

package com.adaptavist.sr.cloud.samples.events

def result = get("/rest/api/2/issue/${issue.key}")
.header('Content-Type', 'application/json')
.asObject(Map)

def s = result.fields.assignee
if(s != null){

put("/rest/api/2/issue/
${issue.key}")
.header("Content-Type", "application/json")
.body([
fields:[
customfield_11925 : s
]


])
.asString()

}

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase

The benefits of using Jira in different departments

Jira is a great tool to use across different departments. Forget that paperwork – switch to Jira and get that tasks done smoothly. Marketing Jira allows for a complete digital transformation of you...

103 views 0 6
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you