To debug a script, you can use a built-in debugger.
Role required: admin. |
For this, please complete the steps below:
Also, you can open any record form in this debugger by calling the Open in script item in the hamburger menu.
Using this functionality, you are able to:
It is recommended to use SimpleSystem methods to display values when debugging a server-side script:
To speed up the sampling generation, it is recommended to use the selectAttributes() method of the SimpleRecord class.
The example below generates an array containing IDs of the records:
const user = new SimpleRecord('user'); user.addQuery('email', 'like', 'best.company'); user.getAttributes('sys_id'); // select sys_id only user.query(); const userIDs = []; while (user.next()) { userIDs.push(user.sys_id); } |
Comment your code when you use the Choice attributes in your scripts:
if (current.stage == '4' || current.stage == '6') { // Canceled OR Completed const start = new SimpleDateTime(current.start_time); //... |
Use the getAttributes() method to check an object before inserting or updating:
const task = new SimpleRecord('task'); task.initialize(); ss.info(task.getAttributes()); // Info: {"sys_id":"","parent_id":"","assigned_user":"","number":"","short_description":"","active":1,"comments":"","description":"","state":7,"priority":"","urgency":"","impact":"","escalation":"","opened_at":"2020-07-24 08:55:33", ...} |
Also, this method allows checking whether an object has a specified attribute or not before calling:
if (task.getAttributes()['has_breached'] != undefined) { task.has_breached = true; // SLA Breached task.update(); } |