Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 05:45 AM
You are triggering an event per asset, so that explains the amount of emails.
var gr = new GlideRecord('alm_hardware');
gr.addEncodedQuery('managed_by.active=false^install_status=1');
gr.query();
var assetsByManager = {};
// Group assets by manager's sys_id
while (gr.next()) {
var manager = gr.managed_by.manager;
if (manager && manager.active) {
var managerSysId = manager.sys_id;
if (!assetsByManager[managerSysId]) {
assetsByManager[managerSysId] = {
managerName: manager.name,
assets: []
};
}
assetsByManager[managerSysId].assets.push(gr.display_name);
}
}
// Trigger event for each manager with the list of assets
for (var managerSysId in assetsByManager) {
var managerData = assetsByManager[managerSysId];
var assetList = managerData.assets.join(', '); // Concatenate assets into a single string
var eventParms = assetList + ';' + managerData.managerName;
gs.eventQueue('vgr_inactive_hardware_manager', null, eventParms, managerSysId);
}Can you check if this code will have better results?
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark