Skip to content

Instantly share code, notes, and snippets.

@asimpkin
Last active August 29, 2015 13:57
Show Gist options
  • Save asimpkin/9494854 to your computer and use it in GitHub Desktop.
Save asimpkin/9494854 to your computer and use it in GitHub Desktop.
ServiceNow - UI Page - jira_create_bug - Processing Script
// CREATE JIRA ISSUE
var r = new RESTMessage('Jira - Issue', 'post') ;
r.setStringParameter('description', description ) ;
r.setStringParameter('issue_type_id', issue_type_id ) ; // BUG
r.setStringParameter('sysparm_task_id' , sysparm_task_id ) ; // ServiceNow Task # in Jira
r.setStringParameter('sysparm_task_number' , sysparm_task_number ) ; // ServiceNow Task # in Jira
r.setStringParameter('sysparm_task_url' , 'https://[INSTANCE].service-now.com/nav_to.do?uri=task.do?sys_id=' + sysparm_task_id ) ; // ServiceNow URL in Jira
r.setStringParameter('project_id', project_id ) ;
r.setStringParameter('short_description', short_description ) ;
r.setStringParameter('issue_severity', issue_severity );
r.execute() ;
// WAIT FOR THE MID RESPONSE
var k = 1;
var res = r.getResponse();
while (res == null) {
gs.log("waiting ... " + k + " seconds");
res = r.getResponse(1000); k++; //wait 1 second before looking for the response
if (k > 30) { break; } // die after 30 seconds
} // end while no res
// PARSE THE JSON RESPONSE
var jsonString = res.getBody();
var parser = new JSONParser();
var parsed = parser.parse(jsonString);
// UPDATE THE TASK
var gr = new GlideRecord('task');
gr.get( sysparm_task_id ) ;
gr.correlation_id = parsed.id ;
gr.correlation_display = parsed.key ;
gr.work_notes = 'Linked to Jira Issue: ' + parsed.key + '\nJSON String: ' + jsonString ;
gr.update() ;
// REDIRECT
var urlOnStack = "task.do?sys_id=" + sysparm_task_id ;
response.sendRedirect(urlOnStack);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment