xl8bot
November 4, 2024, 7:03am
1
Originally asked by Andrew on 16 December 2020 (original question)
Hello,
I am having problem configure mapping in incoming script in ServiceNow for integer field (on-hold reason), while Jira is sending on-hold reason from text field.
Payload from Jira is below:
"11402": {
"id": 11402,
"name": "On hold reason",
"type": "OPTION",
"value": {
"id": 11871,
"sequence": 2,
"value": "Awaiting Vendor",
"disabled": false,
"childOptions": []
}
In incoming SN script I have tried this, but did not help:
def holdMapping = [
// Jira hold reason <-> SNOW hold reason
“Awaiting Change” : “Awaiting Change”
“Awaiting Vendor” : “Awaiting Vendor**”**
]
def holdName = holdMapping[replica.customFields.“On hold reason”?.name]
incident.hold_reason = holdName
ServiceNow hold_reason field is integer type and looks as below:
xl8bot
November 4, 2024, 7:03am
2
Answer by Francis Martens (Exalate) on 16 December 2020
Andrew
> replica.customFields.“On hold reason”?.name
results in ‘On hold reason’
The map does not contains such entry, and results in a ‘Null’
Consequence is that the value is not set.
What you would need to do is
def holdMapping = [
// Jira hold reason <-> SNOW hold reason
"Awaiting Change" : "Awaiting Change"
"Awaiting Vendor" : "Awaiting Vendor"
]
def holdName = holdMapping[replica.customFields."On hold reason"?.value?.value]
incident.hold_reason = holdName
This should return the right mapping.
Given that the values on serviceNow is an integer, you probably need to adapt the mapping
Comments:
Andrew commented on 14 January 2021
Hello,
I wanted to get on hold reason field from Jira to SN.
I did several tests for the below payload from Jira SD:
“11402”: {
“id”: 11402,
“name”: “On hold reason”,
“type”: “OPTION”,
“value”: {
“id”: “11870”,
“sequence”: 1,
“value”: “Awaiting Change”,
“disabled”: false,
“childOptions”:
}
},
I prepared mapping in incoming script in SN:
def holdMapping = [
// Jira hold reason <-> SNOW hold reason
“Awaiting Change” : “5”
]
def holdName = holdMapping[replica.customFields.“On hold reason”?.value?.value]
incident.hold_reason = holdName
It did not work, so I changed whole above section to single line:
a) incident.hold_reason = replica.customFields.“11402”?.value?.value - no result
b) incident.hold_reason = replica.customFields.“On hold reason”?.value?.value - no result
Every time state field in SN changed to “On Hold” but hold_reason field was empty.
Please help.