- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-28-2024 07:10 AM - edited 08-28-2024 07:10 AM
I have a specific article which I want to make favourite by default to all the users. I wrote this BG script for testing:
(function() {
// Define the reference table and document ID
var referenceTable = 'sn_cd_content_news';
var referenceDocument = '735b830735d9507354d80735f1c07354';
// Get a specific user to test the insertion
var userSysId = 'd7aa800ac38951509ba42d4ce0013150'; // Replace with a sys_id from your results
// Manually check if the favorite already exists
var favGR = new GlideRecord('sp_favorite');
favGR.addQuery('user', userSysId);
favGR.addQuery('reference_table', referenceTable);
favGR.addQuery('reference_document', referenceDocument);
favGR.query();
gs.info(favGR.getEncodedQuery());
if (!favGR.next()) {
gs.info('Inserting new favorite for user: ' + userSysId);
var newFavGR = new GlideRecord('sp_favorite');
newFavGR.initialize();
newFavGR.user = userSysId;
newFavGR.reference_table = referenceTable;
newFavGR.reference_document = referenceDocument;
newFavGR.insert();
}
})();
However, when I run the script, I get error:
Script: Inserting new favorite for user: d7aa800ac38951509ba42d4ce0013150
Operation against file 'sp_favorite' was aborted by Business Rule 'Unique Favorite Item^6beb5aa1c31c1610e08896c90501318c'. Business Rule Stack:Unique Favorite Item
I manualy check sp_favorite to ensure that this record is nt already present in the table. How can I make this work?
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-28-2024 07:56 AM
(function() {
// Define the reference table and document ID
var referenceTable = 'sn_cd_content_news';
var referenceDocument = '735b830735d9507354d80735f1c07354';
// Get a specific user to test the insertion
var userSysId = 'd7aa800ac38951509ba42d4ce0013150'; // Replace with a sys_id from your results
// Manually check if the favorite already exists
var favGR = new GlideRecord('sp_favorite');
favGR.addQuery('user', userSysId);
favGR.addQuery('reference_table', referenceTable);
favGR.addQuery('reference_document', referenceDocument);
favGR.query();
gs.info(favGR.getEncodedQuery());
if (!favGR.next()) {
gs.info('Inserting new favorite for user: ' + userSysId);
var newFavGR = new GlideRecord('sp_favorite');
newFavGR.initialize();
newFavGR.user = userSysId;
newFavGR.reference_table = referenceTable;
newFavGR.reference_document = referenceDocument;
newFavGR.setWorkflow(false);
newFavGR.insert();
}
})();
Please see if this works.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-28-2024 07:56 AM
(function() {
// Define the reference table and document ID
var referenceTable = 'sn_cd_content_news';
var referenceDocument = '735b830735d9507354d80735f1c07354';
// Get a specific user to test the insertion
var userSysId = 'd7aa800ac38951509ba42d4ce0013150'; // Replace with a sys_id from your results
// Manually check if the favorite already exists
var favGR = new GlideRecord('sp_favorite');
favGR.addQuery('user', userSysId);
favGR.addQuery('reference_table', referenceTable);
favGR.addQuery('reference_document', referenceDocument);
favGR.query();
gs.info(favGR.getEncodedQuery());
if (!favGR.next()) {
gs.info('Inserting new favorite for user: ' + userSysId);
var newFavGR = new GlideRecord('sp_favorite');
newFavGR.initialize();
newFavGR.user = userSysId;
newFavGR.reference_table = referenceTable;
newFavGR.reference_document = referenceDocument;
newFavGR.setWorkflow(false);
newFavGR.insert();
}
})();
Please see if this works.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-28-2024 11:22 PM
Thank you, it worked. And just want to check, is it possible to add this favourite to any new user inserted into sys_user table? We add users through integration.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-29-2024 12:03 AM
@vidhya_mouli Yes, you can make small changes in the above script and add it in an onAfter Insert business rule which runs on sys_user table.