business_rules
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
business_rules [2024/12/12 06:49] – created johnsonjohn | business_rules [2024/12/13 10:04] (current) – johnsonjohn | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Business Rules | + | ======Business Rules====== |
---- | ---- | ||
- | **Project Insight Update** | + | =====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 | ||
+ | // 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 | ||
+ | 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.1734014958.txt.gz · Last modified: 2024/12/12 06:49 by johnsonjohn