- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 12:48 AM - edited 07-02-2024 02:39 AM
Hello everyone,
I am currently familiarising myself a little with the subject of interfaces. I currently have an interface that creates an incident in another instance.
Instance 1 - Trigger Interface to post incident in Instance 2
The interface is also running smoothly. However, I am currently stuck with error handling.
With the variable
var resp = new JSONParser().parse(r.execute().getBody()).result;
I read the response of the interface and convert it back into javascript.
In the event of an error, I receive the response:
{
"error":{
"message": "Operation Failed",
"detail": "Operation against file 'incident' was aborted by Business Rule 'Abort changes on
group^e915f3b193870210a38a76718bba10dc'. Business Rule Stack:Abort changes on group"
},
"status": "failure"
}
I would like to write the detail from this to the log. And try this with the variable
var responseIfError = resp.detail;
to read it out. However, the variable gets the value undefined.
When the interface runs through without errors, I read the incident number and system_id in the same way, which works without any problems.
var incidentID = resp.number;
var sysID = resp.sys_id;
Response shortened:
{
"result": {
"parent":"",
"made_sla":"true",
"caused_by":"",
"watch_list":"",
"upon_reject":"cancel",
"sys_updated_on":"2024-06-28 07:09:36",
"child_incidents":"0",
"hold_reason":"",
"origin_table":"",
"task_effective_number":"INC0010081",
"approval_history":"",
"number":"INC0010081",
"sys_id":"0f73be3193430210a38a76718bba100c"
}
}
Can you help me here and point out my error?
Thank you very much
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 03:04 AM
That's because you go straight to the "result" property in this line of your code:
var resp = new JSONParser().parse(r.execute().getBody()).result;
But in case of an error, the top-level node of the response is called "error" and not "result". Hence the undefined value.
If you change the line above to this:
var resp = new JSONParser().parse(r.execute().getBody());
you should be able to retrieve the necessary information as follows:
// Traverse the "result" property in case of success
var incidentID = resp.result.number;
var sysID = resp.result.sys_id;
// Traverse the "error" property in case of error
var responseIfError = resp.error.detail;
Blog: https://sys.properties | Telegram: https://t.me/sys_properties | LinkedIn: https://www.linkedin.com/in/slava-savitsky/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 01:59 AM
I think you need to use resp.error.detail instead of resp.detail
Blog: https://sys.properties | Telegram: https://t.me/sys_properties | LinkedIn: https://www.linkedin.com/in/slava-savitsky/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 02:07 AM - edited 07-02-2024 02:44 AM
Unfortunately it does not work.
Thanks anyway
I have added the response in case of success.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 03:04 AM
That's because you go straight to the "result" property in this line of your code:
var resp = new JSONParser().parse(r.execute().getBody()).result;
But in case of an error, the top-level node of the response is called "error" and not "result". Hence the undefined value.
If you change the line above to this:
var resp = new JSONParser().parse(r.execute().getBody());
you should be able to retrieve the necessary information as follows:
// Traverse the "result" property in case of success
var incidentID = resp.result.number;
var sysID = resp.result.sys_id;
// Traverse the "error" property in case of error
var responseIfError = resp.error.detail;
Blog: https://sys.properties | Telegram: https://t.me/sys_properties | LinkedIn: https://www.linkedin.com/in/slava-savitsky/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2024 04:10 AM
It works. Thank you very much.👍