From f7b1712ce0d80ab08a99f52215c7dfc30cf0a826 Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 14:58:19 -0500 Subject: [PATCH 1/8] Create README.md --- .../Business Rules/Atuo Assign CAB Approval CR/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md diff --git a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md new file mode 100644 index 0000000000..b78e5d1fa8 --- /dev/null +++ b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md @@ -0,0 +1 @@ +A business rule that auto-assigns using the round-robin when the assignment group is CAB approval. From b9cdd0ee510951b7a7c67b561800cfafb0ae103d Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:07:36 -0500 Subject: [PATCH 2/8] Create autoAssignCR.js --- .../autoAssignCR.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js diff --git a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js new file mode 100644 index 0000000000..10d882a9c7 --- /dev/null +++ b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js @@ -0,0 +1,27 @@ +(function executeRule(current, previous /*null when async*/ ) { + + var groupSysId = 'b85d44954a3623120004689b2d5dd60a'; //sys_id of a current assignment group + var array = []; + // Fetch active users in the group + var membersGR = new GlideRecord('sys_user_grmember'); + membersGR.addQuery('group', groupSysId); + membersGR.addQuery('user.active', true); + membersGR.query(); + var userList = []; + while (membersGR.next()) { + userList.push(membersGR.user.toString()); + } + // Round-robin tracking via sys_properties + var propName = 'round_robin.lastUser.' + groupSysId; // Name of the system property that stores the Assigned To value + var lastUser = gs.getProperty(propName, ''); // Value of the system property that stores the previous Assigned To value + var nextUserIndex = 0; + if (lastUser) { + var lastIndex = userList.indexOf(lastUser); + nextUserIndex = (lastIndex + 1) % userList.length; + } + var nextUser = userList[nextUserIndex]; + gs.setProperty(propName, nextUser); //Setting the new value for the system property. + current.assigned_to = nextUser; + current.update(); + +})(current, previous); From 306f7ff1549be113883f8848f479febd77a10b16 Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:08:44 -0500 Subject: [PATCH 3/8] Update README.md --- .../Business Rules/Atuo Assign CAB Approval CR/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md index b78e5d1fa8..7a569cd5f4 100644 --- a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md +++ b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md @@ -1 +1 @@ -A business rule that auto-assigns using the round-robin when the assignment group is CAB approval. +A business rule that auto-assigns the CR to an assignee from the assignment group using the round-robin technique. From 8e3f9dec7111f985fdb61e2aebdfe86ebf0b4b00 Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:13:43 -0500 Subject: [PATCH 4/8] Create .js --- Server-Side Components/Business Rules/Auto Assign CR/.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 Server-Side Components/Business Rules/Auto Assign CR/.js diff --git a/Server-Side Components/Business Rules/Auto Assign CR/.js b/Server-Side Components/Business Rules/Auto Assign CR/.js new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/Server-Side Components/Business Rules/Auto Assign CR/.js @@ -0,0 +1 @@ + From 765479ea90be314d4806a5ce988b68ca5ede442b Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:14:02 -0500 Subject: [PATCH 5/8] Delete Server-Side Components/Business Rules/Auto Assign CR directory --- Server-Side Components/Business Rules/Auto Assign CR/.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Server-Side Components/Business Rules/Auto Assign CR/.js diff --git a/Server-Side Components/Business Rules/Auto Assign CR/.js b/Server-Side Components/Business Rules/Auto Assign CR/.js deleted file mode 100644 index 8b13789179..0000000000 --- a/Server-Side Components/Business Rules/Auto Assign CR/.js +++ /dev/null @@ -1 +0,0 @@ - From 254c6d42d7c536ceba9df49de24983b0610ac5bb Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:14:29 -0500 Subject: [PATCH 6/8] Delete Server-Side Components/Business Rules/Atuo Assign CAB Approval CR directory --- .../Atuo Assign CAB Approval CR/README.md | 1 - .../autoAssignCR.js | 27 ------------------- 2 files changed, 28 deletions(-) delete mode 100644 Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md delete mode 100644 Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js diff --git a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md deleted file mode 100644 index 7a569cd5f4..0000000000 --- a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/README.md +++ /dev/null @@ -1 +0,0 @@ -A business rule that auto-assigns the CR to an assignee from the assignment group using the round-robin technique. diff --git a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js b/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js deleted file mode 100644 index 10d882a9c7..0000000000 --- a/Server-Side Components/Business Rules/Atuo Assign CAB Approval CR/autoAssignCR.js +++ /dev/null @@ -1,27 +0,0 @@ -(function executeRule(current, previous /*null when async*/ ) { - - var groupSysId = 'b85d44954a3623120004689b2d5dd60a'; //sys_id of a current assignment group - var array = []; - // Fetch active users in the group - var membersGR = new GlideRecord('sys_user_grmember'); - membersGR.addQuery('group', groupSysId); - membersGR.addQuery('user.active', true); - membersGR.query(); - var userList = []; - while (membersGR.next()) { - userList.push(membersGR.user.toString()); - } - // Round-robin tracking via sys_properties - var propName = 'round_robin.lastUser.' + groupSysId; // Name of the system property that stores the Assigned To value - var lastUser = gs.getProperty(propName, ''); // Value of the system property that stores the previous Assigned To value - var nextUserIndex = 0; - if (lastUser) { - var lastIndex = userList.indexOf(lastUser); - nextUserIndex = (lastIndex + 1) % userList.length; - } - var nextUser = userList[nextUserIndex]; - gs.setProperty(propName, nextUser); //Setting the new value for the system property. - current.assigned_to = nextUser; - current.update(); - -})(current, previous); From cdbafd165f2e18ae814bd24ed19c0f0dcac335c9 Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:16:22 -0500 Subject: [PATCH 7/8] Create README.md --- Server-Side Components/Business Rules/Auto Assign a CR/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Server-Side Components/Business Rules/Auto Assign a CR/README.md diff --git a/Server-Side Components/Business Rules/Auto Assign a CR/README.md b/Server-Side Components/Business Rules/Auto Assign a CR/README.md new file mode 100644 index 0000000000..2026081419 --- /dev/null +++ b/Server-Side Components/Business Rules/Auto Assign a CR/README.md @@ -0,0 +1 @@ +A business rule that auto-assigns the CR to an assignee from the current assignment group using the round-robin technique. From ec905bd6f7594465158af6828b5150d575adfe33 Mon Sep 17 00:00:00 2001 From: HackoDev1530 <92592691+HackoDev1530@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:18:00 -0500 Subject: [PATCH 8/8] Create autoAssignCR.js --- .../Auto Assign a CR/autoAssignCR.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Server-Side Components/Business Rules/Auto Assign a CR/autoAssignCR.js diff --git a/Server-Side Components/Business Rules/Auto Assign a CR/autoAssignCR.js b/Server-Side Components/Business Rules/Auto Assign a CR/autoAssignCR.js new file mode 100644 index 0000000000..db528f19b7 --- /dev/null +++ b/Server-Side Components/Business Rules/Auto Assign a CR/autoAssignCR.js @@ -0,0 +1,29 @@ +//Table: Change Request. +//Condition: Assignment Group changes AND Assigned To is not empty +//When to run: After Update +(function executeRule(current, previous /*null when async*/ ) { + var groupSysId = 'b85d44954a3623120004689b2d5dd60a'; //sys_id of a current assignment group + var array = []; + // Fetch active users in the group + var membersGR = new GlideRecord('sys_user_grmember'); + membersGR.addQuery('group', groupSysId); + membersGR.addQuery('user.active', true); + membersGR.query(); + var userList = []; + while (membersGR.next()) { + userList.push(membersGR.user.toString()); + } + // Round-robin tracking via sys_properties + var propName = 'round_robin.lastUser.' + groupSysId; // Name of the system property that stores the Assigned To value + var lastUser = gs.getProperty(propName, ''); // Value of the system property that stores the previous Assigned To value + var nextUserIndex = 0; + if (lastUser) { + var lastIndex = userList.indexOf(lastUser); + nextUserIndex = (lastIndex + 1) % userList.length; + } + var nextUser = userList[nextUserIndex]; + gs.setProperty(propName, nextUser); //Setting the new value for the system property. + current.assigned_to = nextUser; + current.update(); + +})(current, previous);