User Tools

Site Tools


business_rules

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
business_rules [2024/12/12 06:58] johnsonjohnbusiness_rules [2024/12/13 10:04] (current) johnsonjohn
Line 1: Line 1:
-Business Rules+======Business Rules======
 ---- ----
  
-======Project Insight Update======+=====Project Insight Update=====
 <code> <code>
 // JWJ0215 10.30.24               Last tested on 10.30 @ 2.42 pm // JWJ0215 10.30.24               Last tested on 10.30 @ 2.42 pm
Line 94: Line 94:
 //  Link //  Link
 //  https://<instance>.service-now.com/now/nav/ui/classic/params/target/sys_script.do%3Fsys_id%3Da982dcdf87389e10fdd876a6cebb35ab%26sysparm_view%3D%26sysparm_record_target%3Dsys_script%26sysparm_record_row%3D2%26sysparm_record_list%3DORDERBYDESCsys_created_on%26sysparm_record_rows%3D6275 //  https://<instance>.service-now.com/now/nav/ui/classic/params/target/sys_script.do%3Fsys_id%3Da982dcdf87389e10fdd876a6cebb35ab%26sysparm_view%3D%26sysparm_record_target%3Dsys_script%26sysparm_record_row%3D2%26sysparm_record_list%3DORDERBYDESCsys_created_on%26sysparm_record_rows%3D6275
 +</code>
 +
 +----
 +
 +=====INCIDENT-Derive NonState Values from parent inc=====
 +<code>
 +// Condition: current.parent_incident.changes() && !current.parent_incident.nil()
 +(function executeRule(current, previous /*null when async*/) {
 + // If child incident is already Closed or Cancelled, child incident should not be updated
 + if (current.incident_state == IncidentState.CLOSED || current.incident_state == IncidentState.CANCELED)
 + return;
 +
 + // If parent incident is already Closed or Cancelled, child incident should not be updated
 + if (current.parent_incident.incident_state == IncidentState.CLOSED || current.parent_incident.incident_state == IncidentState.CANCELED)
 + return;
 +
 + // Update child incident's Category, Subcategory, Assignment group, and Assigned to fields to match that of parent incident
 + current.category = current.parent_incident.category;
 + current.subcategory = current.parent_incident.subcategory;
 +
 + // Only copy parent incident's assignment group if it is not empty.
 + if (!current.parent_incident.assignment_group.nil()) {
 + current.assigned_to = '';
 + current.assignment_group = current.parent_incident.assignment_group;
 + }
 +
 + // Only copy parent incident's assigned to if it is not empty.
 + if (!current.parent_incident.assigned_to.nil()) {
 + current.assigned_to = current.parent_incident.assigned_to;
 + }
 +
 +})(current, previous);
 +
 +</code>
 +
 +----
 +=====INCIDENT-Display Caller Email is Empty=====
 +<code>
 +(function executeRule(current, previous /*null when async*/) {
 +
 + var callerName = current.caller_id.name;
 + gs.addInfoMessage('Please note: Email address for the caller,'+callerName+', is empty. They will not receive email communications sent by ServiceNow.');
 +
 +})(current, previous);
 +
 +</code>
 +
 +----
 +=====True Up NonState Values from Parent INC=====
 +<code>
 +(function executeRule(current, previous /*null when async*/) {
 +
 + // Add your code here
 + var sysID = current.sys_id;
 +
 + //Check for any child incidents
 + var childCheck = new GlideRecord('incident');
 + childCheck.addQuery('parent_incident', sysID);
 + //childCheck.addEncodedQuery('parent_incident='+sysID);
 + childCheck.query();
 +
 + if (childCheck.hasNext()) {
 + while (childCheck.next()) {
 + // If child incident is already Closed or Cancelled, child incident should not be updated
 + if (childCheck.incident_state == IncidentState.CLOSED || childCheck.incident_state == IncidentState.CANCELED)
 + return;
 +
 + // Update child incident's Category, Subcategory, Assignment group, and Assigned to fields to match that of parent incident
 + childCheck.category = current.category;
 + childCheck.subcategory = current.subcategory;
 +
 + // Only copy parent incident's assignment group if it is not empty.
 + if (!current.assignment_group.nil()) {
 + childCheck.assigned_to = '';
 + childCheck.assignment_group = current.assignment_group;
 + }
 +
 + // Only copy parent incident's assigned to if it is not empty.
 + if (!current.assigned_to.nil()) {
 + childCheck.assigned_to = current.assigned_to;
 + }
 +
 + childCheck.setWorkFlow(false);
 + childCheck.update();
 + }
 + }
 +
 +})(current, previous);
 +
 +</code>
 +
 +----
 +=====Sys_USER-Add VIP Mark=====
 +<code>
 +(function executeRule(current, previous /*null when async*/) {
 +
 + //Query sys_user Table and Add VIP Mark
 + var gr = new GlideRecord('sys_user');
 + gr.addQuery('sys_id', current.user.sys_id);
 + gr.query();
 +
 + while (gr.next()) {
 + gr.vip = true;
 + gr.setWorkflow(false);
 + gr.update();
 + }
 +
 +})(current, previous);
 </code> </code>
  
 ---- ----
business_rules.1734015487.txt.gz · Last modified: 2024/12/12 06:58 by johnsonjohn