business_rules
Differences
This shows you the differences between two versions of the page.
| business_rules [12/30/2024 05:38] – created johnsonjohn | business_rules [12/31/2025 05:39] (current) – removed johnsonjohn | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======Business Rules====== | ||
| - | ---- | ||
| - | =====Project Insight Update===== | ||
| - | < | ||
| - | // JWJ0215 10.30.24 | ||
| - | // Project Insight Update Script | ||
| - | // This script will get needed data from the ServiceNow Project Request (before approved for a project), and | ||
| - | // push the data to Project Insight. | ||
| - | |||
| - | (function executeRule(current, | ||
| - | var payload = {}; | ||
| - | |||
| - | // get user from user table | ||
| - | var gr = new GlideRecord(" | ||
| - | gr.addQuery(" | ||
| - | gr.query(); | ||
| - | |||
| - | if (gr.next()) { | ||
| - | payload.requested_for = gr.email.toString(); | ||
| - | } | ||
| - | // ***End get user*** | ||
| - | // Get Project Insight Records from the project Insight table **U_PROJECT_INSIGHT_RECORDS** | ||
| - | // get the sys id | ||
| - | |||
| - | var pigr = new GlideRecord(" | ||
| - | pigr.addQuery(" | ||
| - | pigr.query(); | ||
| - | |||
| - | if (pigr.next()) { | ||
| - | payload.u_project_insight_records_sysid = pigr.sys_id.toString(); | ||
| - | payload.u_project_insight_records_number = pigr.number.toString(); | ||
| - | payload.u_prioritization_group = pigr.u_prioritization_group.toString(); | ||
| - | payload.priority = pigr.priority.getDisplayValue(); | ||
| - | payload.u_expense = pigr.u_expense.toString(); | ||
| - | payload.u_project_request_status = pigr.u_project_request_status.toString(); | ||
| - | payload.short_description = pigr.short_description.toString(); | ||
| - | payload.description = pigr.description.toString(); | ||
| - | payload.u_status = pigr.u_status.toString(); | ||
| - | } | ||
| - | |||
| - | // Grab the Description from the task table ****************************************** | ||
| - | gr = new GlideRecord(" | ||
| - | gr.addQuery(' | ||
| - | gr.query(); | ||
| - | |||
| - | if (gr.next()) { | ||
| - | gr.description.toString(); | ||
| - | } | ||
| - | |||
| - | gr = new GlideRecord(" | ||
| - | gr.addQuery(" | ||
| - | gr.query(); | ||
| - | |||
| - | if (gr.next()) { | ||
| - | payload.sponsor_manager_and_up_only_for_this_field = gr.email.toString(); | ||
| - | } | ||
| - | |||
| - | gr = new GlideRecord(" | ||
| - | gr.addQuery(" | ||
| - | gr.query(); | ||
| - | |||
| - | if (gr.next()) { | ||
| - | payload.contact_name = gr.name.toString(); | ||
| - | } | ||
| - | |||
| - | // which_location_is_the_project_for | ||
| - | gr = new GlideRecord(" | ||
| - | gr.addQuery(" | ||
| - | gr.query(); | ||
| - | |||
| - | if (gr.next()) { | ||
| - | payload.cost_center = gr.name.toString(); | ||
| - | } | ||
| - | |||
| - | // ***End get Project Insight Records*** | ||
| - | // below information is from the **SC_REQ_ITEM** table. | ||
| - | |||
| - | payload.sys_id = current.sys_id.toString(); | ||
| - | payload.u_project_approved_date = current.u_project_approved_date.toString(); | ||
| - | payload.number = current.number.toString(); | ||
| - | payload.u_project_type = current.u_project_type.toString(); | ||
| - | payload.request_created_on = current.variables.request_created_on.toString(); | ||
| - | payload.contact_s_phone_number = current.variables.contact_s_phone_number.toString(); | ||
| - | payload.what_is_the_problem_you_are_trying_to_solve = | ||
| - | current.variables.what_is_the_problem_you_are_trying_to_solve.toString(); | ||
| - | payload.u_estimated_hours = current.u_hours.toString(); | ||
| - | |||
| - | var PI = new ProjectInsightScriptInclude(); | ||
| - | var res = PI.send(payload); | ||
| - | |||
| - | })(current, previous); | ||
| - | |||
| - | // Link | ||
| - | // https://< | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | =====INCIDENT-Derive NonState Values from parent inc===== | ||
| - | < | ||
| - | // Condition: current.parent_incident.changes() && !current.parent_incident.nil() | ||
| - | (function executeRule(current, | ||
| - | // 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' | ||
| - | current.category = current.parent_incident.category; | ||
| - | current.subcategory = current.parent_incident.subcategory; | ||
| - | |||
| - | // Only copy parent incident' | ||
| - | if (!current.parent_incident.assignment_group.nil()) { | ||
| - | current.assigned_to = ''; | ||
| - | current.assignment_group = current.parent_incident.assignment_group; | ||
| - | } | ||
| - | |||
| - | // Only copy parent incident' | ||
| - | if (!current.parent_incident.assigned_to.nil()) { | ||
| - | current.assigned_to = current.parent_incident.assigned_to; | ||
| - | } | ||
| - | |||
| - | })(current, previous); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | =====INCIDENT-Display Caller Email is Empty===== | ||
| - | < | ||
| - | (function executeRule(current, | ||
| - | |||
| - | var callerName = current.caller_id.name; | ||
| - | gs.addInfoMessage(' | ||
| - | |||
| - | })(current, previous); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | =====True Up NonState Values from Parent INC===== | ||
| - | < | ||
| - | (function executeRule(current, | ||
| - | |||
| - | // Add your code here | ||
| - | var sysID = current.sys_id; | ||
| - | |||
| - | //Check for any child incidents | ||
| - | var childCheck = new GlideRecord(' | ||
| - | childCheck.addQuery(' | ||
| - | // | ||
| - | 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' | ||
| - | childCheck.category = current.category; | ||
| - | childCheck.subcategory = current.subcategory; | ||
| - | |||
| - | // Only copy parent incident' | ||
| - | if (!current.assignment_group.nil()) { | ||
| - | childCheck.assigned_to = ''; | ||
| - | childCheck.assignment_group = current.assignment_group; | ||
| - | } | ||
| - | |||
| - | // Only copy parent incident' | ||
| - | if (!current.assigned_to.nil()) { | ||
| - | childCheck.assigned_to = current.assigned_to; | ||
| - | } | ||
| - | |||
| - | childCheck.setWorkFlow(false); | ||
| - | childCheck.update(); | ||
| - | } | ||
| - | } | ||
| - | |||
| - | })(current, previous); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | =====Sys_USER-Add VIP Mark===== | ||
| - | < | ||
| - | (function executeRule(current, | ||
| - | |||
| - | //Query sys_user Table and Add VIP Mark | ||
| - | var gr = new GlideRecord(' | ||
| - | gr.addQuery(' | ||
| - | gr.query(); | ||
| - | |||
| - | while (gr.next()) { | ||
| - | gr.vip = true; | ||
| - | gr.setWorkflow(false); | ||
| - | gr.update(); | ||
| - | } | ||
| - | |||
| - | })(current, previous); | ||
| - | </ | ||
| - | |||
| - | ---- | ||
business_rules.1735565931.txt.gz · Last modified: by johnsonjohn
