System property in ACL is not working

Bindhu1
Tera Contributor

Hi All,

I have created Create ACL  to give access to the 'New' button on the Related List for Catalog Tasks on the RITM form for specific group and catalog items.

Code works well when i give sys id of the catalog item directly but when i am storing the same sys id in system property and using in ACL script that time 'NEW' button wont be visible.
Here the code , Kindly help me how to achieve it from system property

 

//answer= (gs.getUser().isMemberOf('Administrative Business Center-Agents') && 
parent.cat_item=='7d2ded94db1b77002ed03df3399619e7');
// above line of code alone works good 

var customSysId = gs.getProperty('testCat_item_sysid'); // Retrieve the 'sys_id' from the system property

gs.info("bindu AA " + customSysId); // log gives proper sys id
gs.info("bindu BB " + gs.getProperty('testCat_item_sysid'));

answer = (gs.getUser().isMemberOf('Administrative Business Center-Agents') && parent.cat_item == customSysId);
        

 

 

Expecting result;

Bindhu1_0-1695377365125.png

 

Thanks in advance

 

1 ACCEPTED SOLUTION

@Bindhu1 

answer = (gs.getUser().isMemberOf('Administrative Business Center-Agents') && parent.cat_item.getValue('sys_id').indexOf(customSysId) > -1);

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

17 REPLIES 17

@Ankur Bawiskar @Vishal Birajdar 
Hi, thanks for your help.
ACL script works fine when i use includes()  method like below 

answer = (gs.getUser().isMemberOf('Administrative Business Center-Agents') && customSysId.includes(parent.cat_item.getValue('sys_id')));

 

@Bindhu1 

not sure it should have worked earlier as well as that script looks good to me

you can use indexOf() then

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar 
Could you please give me an example how  indexOf() works here.

Thanks

@Bindhu1 

answer = (gs.getUser().isMemberOf('Administrative Business Center-Agents') && parent.cat_item.getValue('sys_id').indexOf(customSysId) > -1);

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Vishal Birajdar
Giga Sage

Hi @Bindhu1 

 

Can you try using if-else.

 

var customSysId = gs.getProperty('testCat_item_sysid'); // Retrieve the 'sys_id' from the system property
var isMember = gs.getUser().isMemberOf('Administrative Business Center-Agents');

if ( isMember && (parent.cat_item == customSysId) ) {
answer = true;

} else {
answer = false;
}

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates