Portal announcement
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
I am creating records in the Announcement [announcement] table using a Record Producer.
I have added this Record Producer to multiple portals (e.g., Service Portal (SP) and HR Portal). When a user submits the Record Producer, the Announcement record gets created successfully.
However, I want to automatically associate the Announcement with the correct portal in the Portals related list (m2m_announcement_portal) based on where the Record Producer was submitted.
How can this be done?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi @George_1
Add the following script to the bottom of your existing Record Producer script
var spAnnounce = new GlideRecord('m2m_announcement_portal');
spAnnounce.initialize();
spAnnounce.announcement = current.sys_id;
spAnnounce.sp_portal = submittedPortalSysID; // Links to the portal
spAnnounce.insert();
Refer : Creating Portal Announcements Automatically from an Outage or Knowledge Article
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi @Tanushree Maiti thanks,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago - last edited 2 hours ago
Hi @George_1
Try this once:
- Create a hidden Single line text variable in your record producer
- Create a onLoad Catalog client script.
function onLoad() {
try {
var portal = spAnnouncement.getPortal(); // Native portal API
if (portal) {
g_form.setValue('current_portal', portal.sys_id);
}
} catch (e) {
var portalURL = top.location.href;
if (portalURL.indexOf('id=') > -1) {
var portalName = g_form.getParameter('id');
g_form.setValue('current_portal', portalName);
}
}
g_form.setDisplay('current_portal', false);
}
- Update producer script:
var ann = new GlideRecord('announcement');
ann.initialize();
ann.name = 'Announcement created by ' + current.number;
ann.title = producer.short_description;
ann.summary = producer.description;
ann.from = new GlideDateTime();
ann.insert();
var userPortal = producer.current_portal;
if (userPortal) {
var m2m = new GlideRecord('m2m_announcement_portal');
m2m.initialize();
m2m.announcement = ann.sys_id;
m2m.sp_portal = userPortal;
m2m.insert();
}
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti