Service portal - Scripted List

aswinsiddaling2
Mega Guru

@Hi All,

I have created a portal for GRC application which is a scoped application of ServiceNow. I have created a new scoped application in which I have created a portal for GRC components.

Everything works fine on the portal except for the Header Menu Items. I have created a menu item which is of type 'Scripted list' and put in the below script but the menu item is never visible on the header.

I have put in logs everywhere and found it to execute properly but not sure why the menu item doesn't appear.

//Maximum number of entries in this menu

var max = 30;

var t = data;

t.items = [];

var u = gs.getUser().getID();

//Use record watchers to tell header when to update dropdown counts

t.record_watchers = [];

t.record_watchers.push({

      'table': 'x_qui_abc_evidence_collection',

      'filter': 'assigned_to=' + u

});

var z = new GlideRecord('x_qui_abc_evidence_collection');

z.addQuery('assigned_to', gs.getUserID());

z.orderByDesc('sys_updated_on');

z.setLimit(max);

z.query();

while (z.next()) {

      var a = {};

      $sp.getRecordValues(a, z, 'short_description,sys_id,number,sys_updated_on');

      if (z.short_description.nil())

              a.short_description = "(No description)";

      a.__table = z.getTableName();

      a.type = 'record';

      t.items.push(a);

}

t.items = t.items.slice(0, max); // only want first 30

t.count = t.items.length;

var link = {

      title: gs.getMessage('View all evidences'),

      type: 'link',

      href: '?id=requests',

      items: []

};

t.items.unshift(link); // put 'View all evidences' first

Any ideas dave.slusher ctomasi

4 REPLIES 4

Chuck Tomasi
Tera Patron

Hi Aswin,



I have never used this type of list before. Sorry.


madeleinee6
Kilo Explorer

I'm not sure but it could be because you don't have a 't' before the 'u' variable.



Can you try:



t.u = gs.getUser().getID();




Nia McCash
Mega Sage

HI Aswin,



Are there any results in the GlideRecord query you are running? If not, then the menu item doesn't show up. See Service Portal - Scripted List Widget - How to show it all the time?



I'm also a bit surprised that you didn't run into issues with this given that you're working in a scoped app.   There are known issues with this running the scripted list code in a scoped app. See: Service Portal Error: Server Javascript error "$sp" is not defined   and Header Menu error in Service Portal


Hi niamccash,

 

You were correct. This issue was because I was creating a scripted list in a scoped application. Scoped application does not allow the use of '$sp'.

I had to then create the scripted list in global application scope and the issue was resolved.