CSBScratchpadUtil - Scoped

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 4 minutes de lecture
  • The CSBScratchpadUtil API allows consumers to share "extra" information that is outside of any other Service Exchange service, with their providers.

    This information is stored as name-value pairs in the Scratchpad [sn_sb_scratchpad] table. The shared information must be associated with tasks that are of one of two types: provider tasks or remote tasks.

    If the associated task is active, the updated scratchpad information syncs to the consumer instance. If a task is deactivated or deleted, the information in the scratchpad is also deleted after a specified number of days; by default three. This default is defined in the sn_sb.scratchpad.autodelete.days property.

    Both providers and consumers can add, update, and remove information to and from the Scratchpad table. Producers update this information using the PSBScratchpadUtil - Scoped API.

    To access this API, the Service Exchange for Consumers application must be installed. This API runs in the sn_sb_con namespace.

    CSBScratchpadUtil - get(GlideRecord taskGR, String name)

    Returns the value of a specified scratchpad property.

    Tableau 1. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task associated with the specified scratchpad property.

    Tables: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task].

    name String Name of the scratchpad property whose value to retrieve.

    Table: Scratchpad [sn_sb_scratchpad]

    Tableau 2. Returns
    Type Description
    String or null Value of the requested scratchpad property. Null if the property isn't found.

    The following code example shows how to call this method.

    var rtGR = new GlideRecord("sn_sb_con_remote_task");
    rtGR.setLimit(1); 
    rtGR.query();  
    rtGR.next() 
    if (rtGR.isValidRecord()) { 
      var util = new sn_sb_con.CSBScratchpadUtil();
      util.update(rtGR, "name1", "value1"); 
      gs.info(util.get(rtGR, "name1"));
    }

    Output:

    "value1"

    CSBScratchpadUtil - getAll(GlideRecord taskGR)

    Returns the property names and values (name-value pairs) of all scratchpad properties associated with the specified task.

    Tableau 3. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task whose associated scratchpad properties to return.

    Table: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task] tables.

    Tableau 4. Returns
    Type Description
    Object All property names and values contained in the specified task.

    For example:

    { name1: value1, name2: value2, … }

    The following code example shows how to call this method.

    var rtGR = new GlideRecord("sn_sb_con_remote_task");
    rtGR.setLimit(1);
    rtGR.query();  
    rtGR.next() 
    if (rtGR.isValidRecord()) {  
      var util = new sn_sb_con.CSBScratchpadUtil();
      util.update(rtGR, "name1", "value1"); 
      gs.info(JSON.stringify(util.getAll(rtGR))); 
    }

    Output:

    { "name1": "value1" }

    CSBScratchpadUtil - getNames(GlideRecord taskGR)

    Returns the list of names of all scratchpad properties associated with the specified task record.

    Tableau 5. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task for which to return the list of names of all associated scratchpad properties.

    Table: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task]

    Tableau 6. Returns
    Type Description
    String Array List of names of the scratchpad properties associated with the specified task record.

    The following code example shows how to call this method.

    var rtGR = new GlideRecord("sn_sb_con_remote_task");
    rtGR.setLimit(1); 
    rtGR.query();  
    rtGR.next() 
    if (rtGR.isValidRecord()) {
      var util = new sn_sb_con.CSBScratchpadUtil();
      util.update(rtGR, "name1", "value1"); 
      gs.info(JSON.stringify(util.getNames(rtGR))); 
    }

    Output:

    [ "name1" ]

    CSBScratchpadUtil - populateClientScratchpadBR(GlideRecord taskGR)

    Places the scratchpad properties associated with the specified remote task or provider task in the client g_scratchpad.

    You can call this method from a UI display business rule.

    Tableau 7. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task whose associated scratchpad entries should be placed in the client g_scratchpad.

    Tables: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task]

    Tableau 8. Returns
    Type Description
    None

    The following code example shows how to call this method.

    new sn_sb_con.CSBScratchpadUtil().populateClientScratchpadBR(current);

    CSBScratchpadUtil - remove(GlideRecord taskGR, String name)

    Deletes the specified scratchpad property from the Scratchpad [sn_sb_scratchpad] table.

    Remarque :
    Deletes are not synced to other ServiceNow instances. Scratchpad properties are automatically deleted in a specified number of days after the associated task record is deactivated or deleted.
    Tableau 9. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task associated with the specified scratchpad property.

    Tables: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task].

    name String Name of the scratchpad property to remove from the Scratchpad [sn_sb_scratchpad] table.
    Tableau 10. Returns
    Type Description
    None

    The following code example shows how to call this method.

    var rtGR = new GlideRecord("sn_sb_con_remote_task");
    rtGR.setLimit(1); 
    rtGR.query();  
    rtGR.next() 
    if (rtGR.isValidRecord()) {
      var util = new sn_sb_con.CSBScratchpadUtil();
      util.update(rtGR, "name1", "value1"); 
      util.remove(rtGR, “name1”);
      gs.info(util.get(rtGR, "name1")); 
    }

    Output:

    undefined

    CSBScratchpadUtil - update(GlideRecord taskGR, String name, String value, Boolean client_side_accessible)

    Inserts a property or updates the value of a property in the Scratchpad [sn_sb_scratchpad] table.

    Remarque :
    The maximum number of properties that you can update in one call is 50.
    Tableau 11. Parameters
    Name Type Description
    taskGR GlideRecord GlideRecord of the active remote task or provider task associated with the specified scratchpad property.

    Tables: Remote task [sn_sb_con_remote_task] and Provider task [sn_sb_con_provider_task]

    name String Name of a new or existing scratchpad property. This name must be unique across all scratchpad properties.
    value String Value of the scratchpad property.

    Maximum: 4000 characters.

    client_side_accessible Boolean Optional. Flag that indicates whether this property is available to the client-side g_scratchpad when populateClientScratchpadBR is called from a display business rule.
    Valid values:
    • true: Property is available.
    • false: Property isn't available.

    Default: false

    Tableau 12. Returns
    Type Description
    None

    The following code example shows how to call this method.

    var rtGR = new GlideRecord("sn_sb_con_remote_task");
    rtGR.setLimit(1); 
    rtGR.query();
    rtGR.next()
    if (rtGR.isValidRecord()) {
      var util = new sn_sb_con.CSBScratchpadUtil();
      util.update(rtGR, "name1", "value2");
      gs.info(util.get(rtGR, "name1")); 
    } 

    Output:

    "value2"