- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-08-2023 12:42 PM - edited 12-08-2023 01:02 PM
Hi All ,
I have a requirement where I am little stuck with scripting. Kindly need some guidance from experts .
We have a requirement where , there are number of groups if a user selects any of the groups from the list except that grp remaining should be proceeded for orchestration .
Comments added within script for better understanding .
//workflow.scratchpad.groupNames=workflow.scratchpad.grps;
workflow.scratchpad.restricted_groups = '';
//restrict few groups for orchestration -STRY0417475
var arrayGroups = workflow.scratchpad.grps;
//from here I am taking values from user selected from item
workflow.scratchpad.restricted_groups = arrayGroups.split(",");
gs.log(current.number + 'workflow.scratchpad.groupName' + workflow.scratchpad.restricted_groups);
var gr1 = new GlideRecord('sys_user_group');
//this is the list from from which if groups are there we have exclude those from orchestration
gr1.addEncodedQuery('nameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net-V5^ORnameLIKEROL-PCCG_CHS_TOR-ag-EBT_Net-V5-RX^ORnameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net_Admin-V5^ORnameLIKEROL-SSG-WF-SFTP-Users^ORnameLIKEROL-RPA-OFFICE-BOTS-ACCESS^ORnameLIKEROL-WF-PR-Development^ORnameLIKEROL-WF-PR-ADMIN^ORnameLIKEROL-WF-PR-ADMIN-EI^ORnameLIKEROL-WF-PR-Functional^ORnameLIKEROL-SSG-FORESCOUT^ORnameLIKERUN_NETWORK_NOC_CAN^ORnameLIKERUN_NETWORK_NOC_US_INTL^ORnameLIKERUN_NETWORKS_NOC_ESC^ORnameLIKEROL-ISS Admin^ORnameLIKEROL-ISS Operator^ORnameLIKEBMOUNICAGRP^ORnameLIKEBMOUNICAADM^ORnameLIKEADM-EPS-PE-BSM^ORnameLIKEROL-ISS^ORnameLIKEROL-MIDS Privacy^ORnameLIKEROL-PRODOPS-ACHDT^ORnameLIKEEI_BOWSS^ORnameLIKEROL - LEXMARK MARKVISION ACCESS^ORnameLIKEROL- EJM^ORnameLIKEROL-DevOpsToolsDT^ORnameLIKEROL-BMO-PR-27497-RDMP^ORnameLIKEROL-Basel_CAT_App^ORnameLIKEROL-Vignette BMO Canada^ORnameLIKEROL-SDE^ORnameLIKErol-forescout^ORnameLIKEROL-Centaur-RAF^ORnameLIKEROL-STBG^ORnameLIKEROL-IronPort');
gr1.query();
while (gr1.next()) {
var arr_groups_restrict = gr1.sys_id.toString();
gs.log(current.number + 'thiru 3' + arr_groups_restrict);
//here I am facing difficulty in removing the restricted group from user selected groups
for (var i = 0; i < workflow.scratchpad.restricted_groups.length; i++) {
if (workflow.scratchpad.restricted_groups.indexOf(arr_groups_restrict[i]) > -1) {
workflow.scratchpad.restricted_groups.replaceAll(arr_groups_restrict[i], '');
gs.log(current.number + 'array' + arr_groups_restrict[i]);
if (workflow.scratchpad.restricted_groups.indexOf(',,') > -1) {
workflow.scratchpad.restricted_groups.replaceAll(',,', ',');
}
}
workflow.scratchpad.groupNames = workflow.scratchpad.restricted_groups;
}
}
gs.log(current.number + 'resrtict groups thiru' + workflow.scratchpad.groupNames);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-12-2023 10:06 AM - edited 12-12-2023 10:08 AM
It worked from the modified encoded query:
@AshishKM Thank you so much for the help 😊.
var gr1 = new GlideRecord('sys_user_group');
gr1.addEncodedQuery('sys_idIN' + restGroupArray + '^name!=ROL-PCCG_CHS_MTL-ag-EBT_Net-V5^name!=ROL-PCCG_CHS_TOR-ag-EBT_Net-V5-RX^name!=ROL-PCCG_CHS_MTL-ag-EBT_Net_Admin-V5^name!=ROL-SSG-WF-SFTP-Users^name!=ROL-RPA-OFFICE-BOTS-ACCESS^name!=ROL-WF-PR-Development^name!=ROL-WF-PR-ADMIN^name!=ROL-WF-PR-ADMIN-EI^name!=ROL-WF-PR-Functional^name!=ROL-SSG-FORESCOUT^name!=RUN_NETWORK_NOC_CAN^name!=RUN_NETWORK_NOC_US_INTL^name!=RUN_NETWORK_NOC_US_INTL^name!=ROL-ISS Admin^name!=ROL-ISS Operator^name!=BMOUNICAGRP^name!=BMOUNICAADM^nameNOT LIKEADM-EPS-PE-BSM^nameNOT LIKEROL-ISS^nameNOT LIKEROL-MIDS Privacy^nameNOT LIKEROL-PRODOPS-ACHDT^nameNOT LIKEEI_BOWSS^nameNOT LIKEROL - LEXMARK MARKVISION ACCESS^nameNOT LIKEROL- EJM^nameNOT LIKEROL-DevOpsToolsDT^nameNOT LIKEROL-BMO-PR-27497-RDMP^nameNOT LIKEROL-Basel_CAT_App^nameNOT LIKEROL-Vignette BMO Canada^nameNOT LIKEROL-SDE^nameNOT LIKErol-forescout^nameNOT LIKEROL-Centaur-RAF^nameNOT LIKEROL-STBG^nameNOT LIKEROL-IronPort');
gr1.query();
while (gr1.next()) {
workflow.scratchpad.groupNames = gr1.sys_id;
}
gs.log(current.number + 'Groups' + workflow.scratchpad.groupNames);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2023 08:10 AM
You can put the below code in background script and check if any data is returning.
var gr1 = new GlideRecord('sys_user_group');
gr1.addEncodedQuery('nameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net-V5^ORnameLIKEROL-PCCG_CHS_TOR-ag-EBT_Net-V5-RX^ORnameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net_Admin-V5^ORnameLIKEROL-SSG-WF-SFTP-Users^ORnameLIKEROL-RPA-OFFICE-BOTS-ACCESS^ORnameLIKEROL-WF-PR-Development^ORnameLIKEROL-WF-PR-ADMIN^ORnameLIKEROL-WF-PR-ADMIN-EI^ORnameLIKEROL-WF-PR-Functional^ORnameLIKEROL-SSG-FORESCOUT^ORnameLIKERUN_NETWORK_NOC_CAN^ORnameLIKERUN_NETWORK_NOC_US_INTL^ORnameLIKERUN_NETWORKS_NOC_ESC^ORnameLIKEROL-ISS Admin^ORnameLIKEROL-ISS Operator^ORnameLIKEBMOUNICAGRP^ORnameLIKEBMOUNICAADM^ORnameLIKEADM-EPS-PE-BSM^ORnameLIKEROL-ISS^ORnameLIKEROL-MIDS Privacy^ORnameLIKEROL-PRODOPS-ACHDT^ORnameLIKEEI_BOWSS^ORnameLIKEROL - LEXMARK MARKVISION ACCESS^ORnameLIKEROL- EJM^ORnameLIKEROL-DevOpsToolsDT^ORnameLIKEROL-BMO-PR-27497-RDMP^ORnameLIKEROL-Basel_CAT_App^ORnameLIKEROL-Vignette BMO Canada^ORnameLIKEROL-SDE^ORnameLIKErol-forescout^ORnameLIKEROL-Centaur-RAF^ORnameLIKEROL-STBG^ORnameLIKEROL-IronPort');
gr1.query();
gs.info("Count->"+gr1.getRowCount());
Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2023 08:27 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2023 10:09 AM
Try this updated one, added following variable for testing incase, scratchpad object is creating any issue.
var restGroupArray = arrayGroups.split(",").toString();
and used the same in if condition
workflow.scratchpad.restricted_groups = '';
//restrict few groups for orchestration -STRY0417475
var arrayGroups = workflow.scratchpad.grps;
workflow.scratchpad.restricted_groups = arrayGroups.split(",").toString();
var restGroupArray = arrayGroups.split(",").toString();
gs.log(current.number + 'workflow.scratchpad.groupName' + workflow.scratchpad.restricted_groups);
var gr1 = new GlideRecord('sys_user_group');
gr1.addEncodedQuery('nameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net-V5^ORnameLIKEROL-PCCG_CHS_TOR-ag-EBT_Net-V5-RX^ORnameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net_Admin-V5^ORnameLIKEROL-SSG-WF-SFTP-Users^ORnameLIKEROL-RPA-OFFICE-BOTS-ACCESS^ORnameLIKEROL-WF-PR-Development^ORnameLIKEROL-WF-PR-ADMIN^ORnameLIKEROL-WF-PR-ADMIN-EI^ORnameLIKEROL-WF-PR-Functional^ORnameLIKEROL-SSG-FORESCOUT^ORnameLIKERUN_NETWORK_NOC_CAN^ORnameLIKERUN_NETWORK_NOC_US_INTL^ORnameLIKERUN_NETWORKS_NOC_ESC^ORnameLIKEROL-ISS Admin^ORnameLIKEROL-ISS Operator^ORnameLIKEBMOUNICAGRP^ORnameLIKEBMOUNICAADM^ORnameLIKEADM-EPS-PE-BSM^ORnameLIKEROL-ISS^ORnameLIKEROL-MIDS Privacy^ORnameLIKEROL-PRODOPS-ACHDT^ORnameLIKEEI_BOWSS^ORnameLIKEROL - LEXMARK MARKVISION ACCESS^ORnameLIKEROL- EJM^ORnameLIKEROL-DevOpsToolsDT^ORnameLIKEROL-BMO-PR-27497-RDMP^ORnameLIKEROL-Basel_CAT_App^ORnameLIKEROL-Vignette BMO Canada^ORnameLIKEROL-SDE^ORnameLIKErol-forescout^ORnameLIKEROL-Centaur-RAF^ORnameLIKEROL-STBG^ORnameLIKEROL-IronPort');
gr1.query();
var arr_groups_restrict;
while (gr1.next()) {
arr_groups_restrict = gr1.sys_id.toString();
// check arr_groups_restrict ( sys_id ) exist in the restricted group arrayList
gs.log ("Group Found "+restGroupArray.indexOf(arr_groups_restrict));
if(restGroupArray.indexOf(arr_groups_restrict) >-1){
//remove that sys_id from restricted group arrayList
gs.info("Splice->"+arr_groups_restrict);
restGroupArray .splice(arr_groups_restrict, 1);
}
}
workflow.scratchpad.groupNames = restGroupArray;
gs.log(current.number + 'resrtict groups thiru' + workflow.scratchpad.groupNames);
gs.log(current.number + 'yashvstring' + workflow.scratchpad.groupNames);
gs.log(current.number + 'workflow.scratchpad.groupName' + workflow.scratchpad.groupNames);
Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2023 12:57 PM - edited 12-11-2023 01:01 PM
😥
workflow.scratchpad.restricted_groups = '';
//restrict few groups for orchestration -STRY0417475
var arrayGroups = workflow.scratchpad.grps;
workflow.scratchpad.restricted_groups = arrayGroups.split(",").toString();
var restGroupArray = arrayGroups.split(",").toString();
gs.log(current.number + 'workflow.scratchpad.groupName' + workflow.scratchpad.restricted_groups);
var gr1 = new GlideRecord('sys_user_group');
gr1.addEncodedQuery('nameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net-V5^ORnameLIKEROL-PCCG_CHS_TOR-ag-EBT_Net-V5-RX^ORnameLIKEROL-PCCG_CHS_MTL-ag-EBT_Net_Admin-V5^ORnameLIKEROL-SSG-WF-SFTP-Users^ORnameLIKEROL-RPA-OFFICE-BOTS-ACCESS^ORnameLIKEROL-WF-PR-Development^ORnameLIKEROL-WF-PR-ADMIN^ORnameLIKEROL-WF-PR-ADMIN-EI^ORnameLIKEROL-WF-PR-Functional^ORnameLIKEROL-SSG-FORESCOUT^ORnameLIKERUN_NETWORK_NOC_CAN^ORnameLIKERUN_NETWORK_NOC_US_INTL^ORnameLIKERUN_NETWORKS_NOC_ESC^ORnameLIKEROL-ISS Admin^ORnameLIKEROL-ISS Operator^ORnameLIKEBMOUNICAGRP^ORnameLIKEBMOUNICAADM^ORnameLIKEADM-EPS-PE-BSM^ORnameLIKEROL-ISS^ORnameLIKEROL-MIDS Privacy^ORnameLIKEROL-PRODOPS-ACHDT^ORnameLIKEEI_BOWSS^ORnameLIKEROL - LEXMARK MARKVISION ACCESS^ORnameLIKEROL- EJM^ORnameLIKEROL-DevOpsToolsDT^ORnameLIKEROL-BMO-PR-27497-RDMP^ORnameLIKEROL-Basel_CAT_App^ORnameLIKEROL-Vignette BMO Canada^ORnameLIKEROL-SDE^ORnameLIKErol-forescout^ORnameLIKEROL-Centaur-RAF^ORnameLIKEROL-STBG^ORnameLIKEROL-IronPort');
gr1.query();
var arr_groups_restrict;
while (gr1.next()) {
arr_groups_restrict = gr1.sys_id.toString();
// check arr_groups_restrict ( sys_id ) exist in the restricted group arrayList
gs.log("Group Found " + restGroupArray.indexOf(arr_groups_restrict));
if (restGroupArray.indexOf(arr_groups_restrict) > -1) {
//remove that sys_id from restricted group arrayList
// gs.info("Splice->"+arr_groups_restrict);
restGroupArray.splice(arr_groups_restrict, 1);
gs.log((current.number + "Rest group Array " + restGroupArray);
}
}
workflow.scratchpad.groupNames = restGroupArray;
gs.log(current.number + 'resrtict groups thiru' + arr_groups_restrict);
gs.log(current.number + 'yashvstring' + restGroupArray);
gs.log(current.number + 'workflow.scratchpad.groupNames' + workflow.scratchpad.groupNames);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2023 01:34 PM
😥, it's not going inside while loop or if condition. can you share screen in call, we can try. if yes, send me message in inbox.
Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution