Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Service Portal announcements and domain separation

FinToy
Mega Expert

Hi guys

Does anyone have experience about announcement management in domain separated instance? I'm having a use case where sub-domain people need to manage their own portal announcements but when they open the list of announcements (they have the role 'announcement_admin') they also see other domains announcements - and this is something we don't want.

Any solutions for this? It seems that announcements does not support domain separation by default but can it be done?

1 ACCEPTED SOLUTION

FinToy
Mega Expert

Thought so. We recorded a HI ticket and got response. ServiceNow told us the table CAN be domain separated but they cannot tell if it breaks anything or not - so it's on our responsibility to test it and see what happens.

This is something I already knew so thanks for nothing.

I tested it in my developer instance and with basic testing only, everything seems to work perfectly.

View solution in original post

5 REPLIES 5

krishna-snow
Tera Contributor

I have a acheived the same with the Client script and Business rule.

 

Business Rule: Display

var isMember = false;
if (gs.getUser().isMemberOf('CAB Approval') || gs.getUser().isMemberOf('Hardware')) {
isMember = true;
}
g_scratchpad.isMember = isMember;

 

And Client script

 

for (var embList in GlideLists2) {

var list = GlideLists2[embList];

if (list.isEmbedded() && list.tableName == 'm2m_announcement_portal') {

var rows = list.table.getElementsBySelector('tr.list_row:not(.list_delete)');


var len = rows.length - 1;
if (len == 0) {
if (!g_scratchpad.isMember) {
alert('please select a portal to proceed....');
return false;
} else {
var portal1;
for (var i = 0; i < rows.length - 1; i++) {
alert('i ' + i);
portal1 = rows[i].getAttribute('sp_portal');
alert('portal1 ' + portal1);
if (portal1 == null) {
alert('please select a portal to proceed....');

return false;
}
}
return true;

}
}