We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Mobile Agent offline fetch script

Jeff Lyons
Tera Contributor

When downloading the cache for offline mode, I can only retrieve up to a maximum of 1,000 users from the sys_user table.  I have many more active users than this limitation.  I'm looking for guidance on creating an offline fetch script under input attributes for assigned to in my create interaction function. I need to dynamically fetch the logged in user's sys ID (gs.getUserID() and return results of any records on the user table who share the same location.

 

I will apply this same logic to any sys_user reference field for incidents and interactions.  Thanks for the help!

 

Configuring Now Agent 

1 REPLY 1

Matthew_13
Mega Sage

Hi Buddy,

Offline reference caching is capped at ~1,000 records, so you must filter sys_user instead of caching all

Here is the short version that works for Mobile / Now Mobile offline mode.

 

1) Script Include (server-side)

Create a Script Include to return active users in the same location as the logged-in user, plus the user themself.

var MobileOfflineUserFetch = Class.create();
MobileOfflineUserFetch.prototype = {
    initialize: function() {},

    getUsersByMyLocation: function() {
        var ids = [];
        var myId = gs.getUserID();
        var myLoc = gs.getUser().getLocation();

        ids.push(myId); // always include self

        if (!myLoc)
            return ids.join(',');

        var gr = new GlideRecord('sys_user');
        gr.addActiveQuery();
        gr.addQuery('location', myLoc);
        gr.setLimit(1000);
        gr.query();

        while (gr.next()) {
            ids.push(gr.getUniqueValue());
        }
        return ids.join(',');
    },

    type: 'MobileOfflineUserFetch'
};

2) Assigned To → OfflineFetchScript

On the Assigned to reference input (Create Interaction):

javascript:new MobileOfflineUserFetch().getUsersByMyLocation()

Result

  • Offline cache stays under 1,000 records

  • Users see only relevant users (same location)

  • Reusable for Incident, Interaction, or any sys_user reference field

@Jeff Lyons - Please Mark Accepted Solution and Thumbs Up if you found Helpful 🙂

MJG