CSBScratchpadUtil - Scoped
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.
| 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] |
| 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.
| 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. |
| Type | Description |
|---|---|
| Object | All property names and values contained in the specified task. For example:
|
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.
| 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] |
| 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.
| 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] |
| 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.
| 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. |
| 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.
| 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:
Default: false |
| 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"