From 65cbe378368dd6a2fa8add8351037a3447e8e71e Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:25:57 +0530 Subject: [PATCH 01/16] Create DateDifference.js --- .../Business Rules/DateDifference.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Server-Side Components/Business Rules/DateDifference.js diff --git a/Server-Side Components/Business Rules/DateDifference.js b/Server-Side Components/Business Rules/DateDifference.js new file mode 100644 index 0000000000..9d1abc63d9 --- /dev/null +++ b/Server-Side Components/Business Rules/DateDifference.js @@ -0,0 +1,12 @@ +(function executeRule(current, previous /*null when async*/) { + + // Add your code here +if(current.u_termination_date.changes()){ + var date1=current.u_current_date; + var date2=current.u_termination_date; + + var res=onDemand1(date1,date2); + gs.addInfoMessage("Date Difference is :"+res); + +} +})(current, previous); From 06454764ca8ae329d3a535d925be07eb963d9c33 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:18:17 +0530 Subject: [PATCH 02/16] Create ProblemCount.js --- .../Business Rules/ProblemCount.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Server-Side Components/Business Rules/ProblemCount.js diff --git a/Server-Side Components/Business Rules/ProblemCount.js b/Server-Side Components/Business Rules/ProblemCount.js new file mode 100644 index 0000000000..db57692d39 --- /dev/null +++ b/Server-Side Components/Business Rules/ProblemCount.js @@ -0,0 +1,16 @@ + + +(function executeRule(current, previous /*null when async*/) { + +var problemSysId = current.sys_id; +var agg = new GlideAggregate('incident'); +agg.addQuery('problem_id', problemSysId); +agg.addAggregate('COUNT'); +agg.query(); + +if (agg.next()) { + var incidentCount = agg.getAggregate('COUNT'); + gs.addInfoMessage('There are ' + incidentCount + ' incidents related to this problem.'); +} + +})(current, previous); From 3de04cce2d8c260050af1df60de5318f99970dfc Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:17:50 +0530 Subject: [PATCH 03/16] Create newfile --- Server-Side Components/Business Rules/MyFolder/newfile | 1 + 1 file changed, 1 insertion(+) create mode 100644 Server-Side Components/Business Rules/MyFolder/newfile diff --git a/Server-Side Components/Business Rules/MyFolder/newfile b/Server-Side Components/Business Rules/MyFolder/newfile new file mode 100644 index 0000000000..8d9947a0c2 --- /dev/null +++ b/Server-Side Components/Business Rules/MyFolder/newfile @@ -0,0 +1 @@ +,, From 7eea6d413d48c1d41acf65706cd8a30521cf85ed Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:19:53 +0530 Subject: [PATCH 04/16] CreateProblem.js --- .../Business Rules/MyFolder/CreateProblem.js | 14 ++++++++++++++ .../Business Rules/MyFolder/newfile | 1 - 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 Server-Side Components/Business Rules/MyFolder/CreateProblem.js delete mode 100644 Server-Side Components/Business Rules/MyFolder/newfile diff --git a/Server-Side Components/Business Rules/MyFolder/CreateProblem.js b/Server-Side Components/Business Rules/MyFolder/CreateProblem.js new file mode 100644 index 0000000000..a08398dabb --- /dev/null +++ b/Server-Side Components/Business Rules/MyFolder/CreateProblem.js @@ -0,0 +1,14 @@ +(function executeRule(current, previous /*null when async*/) { + + // Add your code here +if(current.category == 'hardware'){ + var gr=new GlideRecord('problem'); + gr.initialize(); + gr.short_description=current.short_description; + gr.category=current.category; + gr.impact=current.impact; + gr.urgency=current.urgency; + gr.insert(); + +} +})(current, previous); diff --git a/Server-Side Components/Business Rules/MyFolder/newfile b/Server-Side Components/Business Rules/MyFolder/newfile deleted file mode 100644 index 8d9947a0c2..0000000000 --- a/Server-Side Components/Business Rules/MyFolder/newfile +++ /dev/null @@ -1 +0,0 @@ -,, From 46ffea2c9a421f36801e66d1b91acfbc758ee6a2 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:22:06 +0530 Subject: [PATCH 05/16] Create README.md --- Server-Side Components/Business Rules/MyFolder/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Server-Side Components/Business Rules/MyFolder/README.md diff --git a/Server-Side Components/Business Rules/MyFolder/README.md b/Server-Side Components/Business Rules/MyFolder/README.md new file mode 100644 index 0000000000..40f2c0dd02 --- /dev/null +++ b/Server-Side Components/Business Rules/MyFolder/README.md @@ -0,0 +1,2 @@ +This script is a ServiceNow Business Rule that automatically creates a Problem record whenever an Incident is created with the category set to "hardware". +It helps in ensuring that hardware-related incidents are tracked and analyzed properly through Problem Management. From 848ed24967e8f0125577d3f8d578752d2e15ad35 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:57:29 +0530 Subject: [PATCH 06/16] Create userManagement --- .../Usermanagement/userManagement | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Server-Side Components/Script Includes/Usermanagement/userManagement diff --git a/Server-Side Components/Script Includes/Usermanagement/userManagement b/Server-Side Components/Script Includes/Usermanagement/userManagement new file mode 100644 index 0000000000..841b90d0f4 --- /dev/null +++ b/Server-Side Components/Script Includes/Usermanagement/userManagement @@ -0,0 +1,19 @@ +var getSameDeptUsers = Class.create(); +getSameDeptUsers.prototype = { + initialize: function() {}, + getSameDept: function() { + var user = gs.getUser().getDepartmentID(); + var d = new GlideRecord('sys_user'); + d.addQuery('department', user); + d.query(); + + var str = ""; + while (d.next()) { + str = str + "," + d.sys_id; + } + return 'sys_idIN' + str; + + }, + + type: 'getSameDeptUsers' +}; From 3f20ea761f5394537ebabd360ffea2127975a04a Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:58:33 +0530 Subject: [PATCH 07/16] README.md --- .../Script Includes/Usermanagement/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Server-Side Components/Script Includes/Usermanagement/README.md diff --git a/Server-Side Components/Script Includes/Usermanagement/README.md b/Server-Side Components/Script Includes/Usermanagement/README.md new file mode 100644 index 0000000000..ab3d9d7df3 --- /dev/null +++ b/Server-Side Components/Script Includes/Usermanagement/README.md @@ -0,0 +1,5 @@ +# Filter Users by Department + + +This Script Include returns users whose department is the same as the currently logged-in user’s department. +It can be used to filter the Caller field or any user reference field to show only users from the same department. From e59b3d69ecae5fae14977f065bf506445a769cd8 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 14 Oct 2025 20:47:44 +0530 Subject: [PATCH 08/16] Create Count Incidents.js --- .../CountRelatedIncident/Count Incidents.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Server-Side Components/Business Rules/CountRelatedIncident/Count Incidents.js diff --git a/Server-Side Components/Business Rules/CountRelatedIncident/Count Incidents.js b/Server-Side Components/Business Rules/CountRelatedIncident/Count Incidents.js new file mode 100644 index 0000000000..828efda91f --- /dev/null +++ b/Server-Side Components/Business Rules/CountRelatedIncident/Count Incidents.js @@ -0,0 +1,14 @@ +(function executeRule(current, previous /*null when async*/) { + +var problemSysId = current.sys_id; +var agg = new GlideAggregate('incident'); +agg.addQuery('problem_id', problemSysId); +agg.addAggregate('COUNT'); +agg.query(); + +if (agg.next()) { + var incidentCount = agg.getAggregate('COUNT'); + gs.addInfoMessage('There are ' + incidentCount + ' incidents related to this problem.'); +} + +})(current, previous); From 1896c64b34af13f2d2b02382d3567603a7c113fd Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:45:37 +0530 Subject: [PATCH 09/16] Create LoggedInUsersCountries.js --- .../LoggedInUsersCountries.js | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js diff --git a/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js b/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js new file mode 100644 index 0000000000..2fa035c5ba --- /dev/null +++ b/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js @@ -0,0 +1,41 @@ +var getLoggedUserCountryLocs = Class.create(); +getLoggedUserCountryLocs.prototype = { + initialize: function() { + }, + getCountry: function() { + + gs.addInfoMessage(gs.getUserID()); + var gr = new GlideRecord('sys_user'); + gr.addQuery('sys_id', gs.getUserID()); + gr.query(); + if (gr.next()) { + var loc = gr.location; + var country = gr.location.country; + } + + + var grUsers = new GlideRecord('cmn_location'); + + grUsers.addQuery('country', country); + grUsers.query(); + var locs = ""; + while (grUsers.next()) { + + locs += grUsers.sys_id + ","; + } + gs.addInfoMessage(locs); + var users = new GlideRecord('sys_user'); + users.addQuery('location', 'IN', locs); + users.query(); + + var l = ""; + while (users.next()) { + + l += users.sys_id + ","; + + } + return 'sys_idIN' + l; + }, + + type: 'getLoggedUserCountryLocs' +}; From 582252d54942a2c167cf105614c606b80ce99774 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:46:53 +0530 Subject: [PATCH 10/16] Create README.md --- .../Script Includes/LoggedInUsersCountries/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Server-Side Components/Script Includes/LoggedInUsersCountries/README.md diff --git a/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md b/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md new file mode 100644 index 0000000000..f1db80104d --- /dev/null +++ b/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md @@ -0,0 +1,11 @@ +# getLoggedUserCountryLocs Script Include + +## Overview + +The **getLoggedUserCountryLocs** Script Include is a custom ServiceNow utility that retrieves all users who belong to the same **country** as the **currently logged-in user**. + +It performs this by: +1. Fetching the logged-in user's country (based on their location record). +2. Identifying all location records that belong to the same country. +3. Gathering all users assigned to those locations. +4. Returning a GlideRecord-encoded query string (`sys_idIN...`) that can be used to filter or query other records. From 53835b83a272b76ada958b2f8de9315bdfd30bb9 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 20 Oct 2025 15:36:16 +0530 Subject: [PATCH 11/16] Create AbortChangeRequest.js --- .../AbortChangeRequest/AbortChangeRequest.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js diff --git a/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js b/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js new file mode 100644 index 0000000000..5912ff9701 --- /dev/null +++ b/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js @@ -0,0 +1,30 @@ +#BusinessRule + (function executeRule(current, previous /*null when async*/) { + + // Add your code here + var user=current.requested_by; + var obj=new withClass3(); + var res=obj.getCount(user); + if(res > 5){ + gs.addErrorMessage("You have already made change requests more than 5 times"); + current.setAbortAction(true); + } + +})(current, previous); +#ScriptInclude + + +var withClass3 = Class.create(); +withClass3.prototype = { + initialize: function() { + }, + + getCount: function(user){ + var gr=new GlideRecord('change_request'); + gr.addQuery('requested_by',user); + gr.query(); + return gr.getRowCount(); + + }, + + type: 'withClass3' From 7675f4b5e0cd18470b7abf490bc6f44c0c5bd1a2 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Mon, 20 Oct 2025 15:37:32 +0530 Subject: [PATCH 12/16] README.md --- .../Business Rules/AbortChangeRequest/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Server-Side Components/Business Rules/AbortChangeRequest/README.md diff --git a/Server-Side Components/Business Rules/AbortChangeRequest/README.md b/Server-Side Components/Business Rules/AbortChangeRequest/README.md new file mode 100644 index 0000000000..63585575cf --- /dev/null +++ b/Server-Side Components/Business Rules/AbortChangeRequest/README.md @@ -0,0 +1,14 @@ +# Change Request Limit (ServiceNow) + +## Overview +This customization prevents users from creating more than **5 Change Requests** in ServiceNow. + +If a user has already created 5 or more requests, the system shows an error and stops the record from being submitted. + +# How It Works + +1. User creates a Change Request. + +2. Script Include counts how many CRs they already have. + +3. If count > 5 → Show error → Stop record creation. From 1b575f482f3e24454d9e7e356a2ae01bdc2ad829 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Wed, 22 Oct 2025 10:37:45 +0530 Subject: [PATCH 13/16] Revert "AbortChangeRequest" --- .../AbortChangeRequest/AbortChangeRequest.js | 30 ------------------- .../AbortChangeRequest/README.md | 14 --------- 2 files changed, 44 deletions(-) delete mode 100644 Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js delete mode 100644 Server-Side Components/Business Rules/AbortChangeRequest/README.md diff --git a/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js b/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js deleted file mode 100644 index 5912ff9701..0000000000 --- a/Server-Side Components/Business Rules/AbortChangeRequest/AbortChangeRequest.js +++ /dev/null @@ -1,30 +0,0 @@ -#BusinessRule - (function executeRule(current, previous /*null when async*/) { - - // Add your code here - var user=current.requested_by; - var obj=new withClass3(); - var res=obj.getCount(user); - if(res > 5){ - gs.addErrorMessage("You have already made change requests more than 5 times"); - current.setAbortAction(true); - } - -})(current, previous); -#ScriptInclude - - -var withClass3 = Class.create(); -withClass3.prototype = { - initialize: function() { - }, - - getCount: function(user){ - var gr=new GlideRecord('change_request'); - gr.addQuery('requested_by',user); - gr.query(); - return gr.getRowCount(); - - }, - - type: 'withClass3' diff --git a/Server-Side Components/Business Rules/AbortChangeRequest/README.md b/Server-Side Components/Business Rules/AbortChangeRequest/README.md deleted file mode 100644 index 63585575cf..0000000000 --- a/Server-Side Components/Business Rules/AbortChangeRequest/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Change Request Limit (ServiceNow) - -## Overview -This customization prevents users from creating more than **5 Change Requests** in ServiceNow. - -If a user has already created 5 or more requests, the system shows an error and stops the record from being submitted. - -# How It Works - -1. User creates a Change Request. - -2. Script Include counts how many CRs they already have. - -3. If count > 5 → Show error → Stop record creation. From e8aeb211190c57d0de436151101ce0fea9db28d3 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Wed, 22 Oct 2025 10:51:35 +0530 Subject: [PATCH 14/16] Revert "Create LoggedInUsersCountries.js" --- .../LoggedInUsersCountries.js | 41 ------------------- .../LoggedInUsersCountries/README.md | 11 ----- 2 files changed, 52 deletions(-) delete mode 100644 Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js delete mode 100644 Server-Side Components/Script Includes/LoggedInUsersCountries/README.md diff --git a/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js b/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js deleted file mode 100644 index 2fa035c5ba..0000000000 --- a/Server-Side Components/Script Includes/LoggedInUsersCountries/LoggedInUsersCountries.js +++ /dev/null @@ -1,41 +0,0 @@ -var getLoggedUserCountryLocs = Class.create(); -getLoggedUserCountryLocs.prototype = { - initialize: function() { - }, - getCountry: function() { - - gs.addInfoMessage(gs.getUserID()); - var gr = new GlideRecord('sys_user'); - gr.addQuery('sys_id', gs.getUserID()); - gr.query(); - if (gr.next()) { - var loc = gr.location; - var country = gr.location.country; - } - - - var grUsers = new GlideRecord('cmn_location'); - - grUsers.addQuery('country', country); - grUsers.query(); - var locs = ""; - while (grUsers.next()) { - - locs += grUsers.sys_id + ","; - } - gs.addInfoMessage(locs); - var users = new GlideRecord('sys_user'); - users.addQuery('location', 'IN', locs); - users.query(); - - var l = ""; - while (users.next()) { - - l += users.sys_id + ","; - - } - return 'sys_idIN' + l; - }, - - type: 'getLoggedUserCountryLocs' -}; diff --git a/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md b/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md deleted file mode 100644 index f1db80104d..0000000000 --- a/Server-Side Components/Script Includes/LoggedInUsersCountries/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# getLoggedUserCountryLocs Script Include - -## Overview - -The **getLoggedUserCountryLocs** Script Include is a custom ServiceNow utility that retrieves all users who belong to the same **country** as the **currently logged-in user**. - -It performs this by: -1. Fetching the logged-in user's country (based on their location record). -2. Identifying all location records that belong to the same country. -3. Gathering all users assigned to those locations. -4. Returning a GlideRecord-encoded query string (`sys_idIN...`) that can be used to filter or query other records. From fe3a96f801264d81c860d4b854f1ffd331791a83 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 28 Oct 2025 10:54:19 +0530 Subject: [PATCH 15/16] AlertEmail.js --- .../Business Rules/AlertEmail/AlertEmail.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Server-Side Components/Business Rules/AlertEmail/AlertEmail.js diff --git a/Server-Side Components/Business Rules/AlertEmail/AlertEmail.js b/Server-Side Components/Business Rules/AlertEmail/AlertEmail.js new file mode 100644 index 0000000000..33e19c938e --- /dev/null +++ b/Server-Side Components/Business Rules/AlertEmail/AlertEmail.js @@ -0,0 +1,19 @@ + + +#BusinessRule +(function executeRule(current, previous /*null when async*/) { + + // Add your code here + var userEmail=current.caller_id.email; + g_scratchpad.callerEmail=userEmail; +})(current, previous); + + +#ClientScript +function onLoad() { + //Type appropriate comment here, and begin script below + + var mail=g_scratchpad.callerEmail; + alert("callers email address : "+mail); + +} From bb9b30351eff21b1bbb637b3be7d9b9d0ae13343 Mon Sep 17 00:00:00 2001 From: NavyasreeBolleboyana <156333434+NavyasreeBolleboyana@users.noreply.github.com> Date: Tue, 28 Oct 2025 10:55:19 +0530 Subject: [PATCH 16/16] README.md --- Server-Side Components/Business Rules/AlertEmail/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Server-Side Components/Business Rules/AlertEmail/README.md diff --git a/Server-Side Components/Business Rules/AlertEmail/README.md b/Server-Side Components/Business Rules/AlertEmail/README.md new file mode 100644 index 0000000000..3e318c11f4 --- /dev/null +++ b/Server-Side Components/Business Rules/AlertEmail/README.md @@ -0,0 +1 @@ +When ever incident form loads show callers email address in an alert