Business Rules Configuration

Business Rules Configuration

Business Rules configuration is required for automating processes and enforcing business logic within the platform. It enables proper synchronization of data between ServiceNow and Jira.

Follow the below steps to create Business Rules in your ServiceNow platform:

Step 1: Login to ServiceNow account.

Step 2: Click on All and search Business Rules. Select Business Rules under Administration option.

7.PNG

Step 3: Click on New.

8.PNG

Step 4: Create business rules to push data from ServiceNow to JIRA.

  1. Add Name.

Example: cloud_create_item

  1. Click on Table dropdown and select Incident [Incident].

  2. Click on Advanced checkbox.

Select When to run tab and fill the below details in the fields.

  1. Click on When dropdown and select after option.

  2. Add value 100 to Order field.

  3. Select Insert checkbox.
    Add below Filter Conditions

  4. Click on choose field dropdown and select Jira Issue Key.

  5. Click on starts with dropdown and select is empty.

  6. Click on Update.

image-20230425-075649 (1).png
  1. Select Advanced tab and add the below given script.

10.PNG

Copy the script below and paste it in the Advanced tab.

//This code is used to create Jira Issue from servicenow (function executeRule(current, previous /*null when async*/ ) { try { // Add your code here var request = new sn_ws.RESTMessageV2('10_CloudJiraIssueSync', 'create_cloud_issue'); request.setRequestHeader("Authorization", "Basic "+Base 64 token); // Base 64 token can be generated like this ${Email}:${API Key} var sourceData = "JiraCloudServiceNowIntegrationCreateIssue"; var jira_issue_id = "10020"; // Jira issue type id we can get it from Jira var jira_project_key = "CUS"; // Jira project key we can get it from Jira var incident_number = current.number; var incident_sysId = current.sys_id; var incident_short_description = current.short_description; gs.log("The incident_short_description" + incident_short_description, sourceData); request.setEndpoint(request.getEndpoint()); gs.log("##The End Point :" + request.getEndpoint(), sourceData); var currentIssueKey = current.u_jira_issue_key; var currentDescription = current.description.replace(/\n|\r/g, " "); var currentShortDesc = current.short_description.getDisplayValue(); var requestBody = { "fields": { "summary": currentShortDesc, "issuetype": { "id": jira_issue_id }, "customfield_10033": incident_number.toString(), //this is the customfield from Jira we have created to store the number "SN NUmber" "customfield_10034": incident_sysId.toString(), //this is the customfield from Jira we have created to store the sysid "SN SysId" "project": { "key": jira_project_key }, "description": { "type": "doc", "version": 1, "content": [{ "type": "paragraph", "content": [{ "text": currentDescription, "type": "text" }] }] } } }; gs.log("The request body :" + JSON.stringify(requestBody), sourceData); request.setRequestBody(JSON.stringify(requestBody)); var response = request.execute(); var httpStatus = response.getStatusCode(); var httpResponseBody = response.getBody(); var responseObject = JSON.parse(httpResponseBody); gs.log("The Response Body #:" + httpResponseBody, sourceData); current.u_jira_issue_key = responseObject.key; current.update(); gs.log("####END OF INCIDENT UPDATE####", sourceData); } catch (ex) { var message = ex.message; gs.log("The error message " + message, sourceData); } })(current, previous);
  1. Click on Save button to update the script.

11.PNG
  1. Click on Submit.

13.PNG