What is spUtil #
spUtil is a really useful utility class, the problem is I can never seem
to find it when I need to look it up as it's not on
developer.servicenow.com, but is instead on
docs.servicenow.com.
So I'm making a list of their functions for my reference as it's coded
here or
more readable
here.
First I'll go over the documented methods, then the undocumented
methods, as there always seems to be some.
Method | Documented |
---|---|
addErrorMessage | Yes |
addInfoMessage | Yes |
addTrivialMessage | Yes |
createUid | No |
format | Yes |
getAccelerator | No |
getHeaders | No |
getHost | No |
getPageUri | No |
getPreference | No |
getURL | No |
getWidgetURL | No |
get | Yes |
parseAttributes | No |
recordWatch | Yes |
refresh | Yes |
scrollTo | No |
setBreadCrumb | No |
setPreference | No |
setSearchPage | No |
update | Yes |
Documented #
addErrorMessage #
[addErrorMessage(string)] #
[record] #
.service-now.com/sp_widget_list.do?sysparm_query=id=widget-sc-cat-item
// source: SC Catalog Item[widget-sc-cat-item] line 42
spUtil.addErrorMessage($scope.m.largeAttachmentMsg);
addInfoMessage #
addInfoMessage(string) #
[record] #
service-now.com/sp_widget_list.do?sysparm_query=id=widget-sc-cat-item
// source: SC Catalog Item[widget-sc-cat-item] line 210
spUtil.addInfoMessage(t);//t is just a string
addTrivialMessage #
addTrivialMessage(string) #
[record] #
service-now.com/sp_widget_list.do?sysparm_query=id=widget-form
// source: Form[widget-form] line 110
spUtil.addTrivialMessage(message);
format #
format(string template, object
data) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=id=widget-sc-cat-item #
// source: SC Catalog Item[widget-sc-cat-item] line 198
var url = spUtil.format(
c.options.url,
{
page: page,
table: table,
sys_id: sys_id
}
);
get #
get(string
widgetid) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=id=sqanda-create-question #
// source: SQANDA Create Question[sqanda-create-question] line 32
spUtil.get($scope, x).then(function(response) {
var newURL = $location.search({id: 'kb_social_qa_question', sys_id: response.data.sys_id});
spAriaFocusManager.navigateToLink(newURL.url());
});
refresh #
refresh(object
$scope) #
update #
update(object
$scope) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=sys_id=f37aa302cb70020000f8d856634c9cfc #
// source: Approvals[] line 14
function get() {
spUtil.update($scope);
}
recordWatch #
recordWatch(object $scope, string table, string filter, function
callback) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=sys_id=f37aa302cb70020000f8d856634c9cfc #
// source: Approvals[] line 12
spUtil.recordWatch(
$scope,
"sysapproval_approver",
"state=requested^approverIN" + $scope.data.myApprovals.toString()
);
Also, there's a number of tables that are blocked from being watched,
you can see this list in your instance by running;
gs.info(gs.getProperty("glide.record_watcher.table.blacklist"))
//this property is non-editable
clone_preserved_data
clone_token
digest_properties
instance
license_details
pa_job_logs
role_has_license
saml2_update1_properties
sp_log
sso_federation
sso_properties
sys_audit_delete
sys_audit_relation
sys_broadcast_message
sys_broadcast_message_m2m
sys_cache_flush
sys_cluster_message
sys_cluster_state
sys_db_cache
sys_dictionary_override
sys_email
sys_email_account
sys_email_log
sys_event_processor
sys_glide_object
sys_import_set
sys_import_set_row
sys_import_set_row_error
sys_import_set_run
sys_progress_worker
sys_progress_worker_domain
sys_report_summary
sys_report_summary_line
sys_rw_action
sys_rw_amb_action
sys_status
sys_trigger
sys_ui_navigator_history
sys_update_set
sys_update_set_log
sys_update_version
sys_update_xml
sys_upgrade_history
sys_upgrade_history_log
sys_user_preference
sys_user_session
sys_user_token
ua_app_metadata
ua_app_usage
usageanalytics_count
usageanalytics_count_cfg
wf_command
wf_context
wf_executing
wf_history
wf_transition_history
wf_workflow_execution
Undocumented #
getHeaders #
getHeaders() #
directive.spReferenceField.js#40
var headers = spUtil.getHeaders();
// returns something like so
// {
// 'Accept': 'application/json',
// 'x-portal': $rootScope.portal_id
// };
getWidgetURL #
getWidgetURL(string widgetid or string
object) #
directive.spReferenceField.js#36
var widgetUrl = spUtil.getWidgetURL('sys_id');
// returns something like so
// '/api/now/sp/widget/sys_id';
setBreadCrumb #
setBreadCrumb(object $scope,
list) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=id=tagged-question-list
// source: Tagged Question List[] line 3
spUtil.setBreadCrumb($scope, [
{
label: c.data.community.Breadcrumb,
url: '#'
}
])
setSearchPage #
setSearchPage(searchPage) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=sys_id=b8c57073cb10020000f8d856634c9cfc
// source: Search Page[] line 2
spUtil.setSearchPage($scope.data.t);//t is a string passed via url here
getURL #
getURL(type) #
[record]service-now.com/sp_widget_list.do?sysparm_query=id=widget-login
// source: Login[widget-login] line 21
var url = spUtil.getURL({sysparm_type: 'view_form.login'});
// I assume this returns a string, I'll have to check
scrollTo #
scrollTo(id,
time) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=id=widget-sc-order-guide
// source: SC Order Guide[widget-sc-order-guide] line 28
spUtil.scrollTo("#" + item.sys_id);
getAccelerator #
getAccelerator(char) #
[record]
service-now.com/sp_widget_list.do?sysparm_query=id=widget-form
// source: Form[widget-form] line 5
spUtil.getAccelerator('s');
// returns for mac '⌘ + ' + char;
// returns for otherwise 'Ctrl + ' + char;
createUid #
createUid(str) #
if (scope.widget.update) {
name += spUtil.createUid('xxxxx');
}
parseAttributes #
parseAttributes(strAttributes) #
function isRefQualElement(fieldName) {
var refQualElements = [];
if (field.attributes && field.attributes.indexOf('ref_qual_elements') > -1) {
var attributes = spUtil.parseAttributes(field.attributes);
refQualElements = attributes['ref_qual_elements'].split(',');
}
return field.reference_qual.indexOf(fieldName) != -1 || refQualElements.indexOf(fieldName) != -1;
}
getHost #
setPreference #
getPreference #
getPageUri #
getPageUri()