How to remove group to be restricted from orchestration ?

thirumala2
Tera Guru

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);


 

 

1 ACCEPTED SOLUTION

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);

 

View solution in original post

14 REPLIES 14

Shared you the google meet link .

check this thread  for arrayList diff command

 

https://www.servicenow.com/community/developer-forum/trying-to-use-splice-to-remove-multiple-values-...

 

 


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution

any luck 


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution

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);

 

good to know, finally it's solved case

appreciate  if you can mark my reply as accepted solution and all helpful, I know you marked your one as accepted solution but more than one can be mark.  


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution