The action API provides methods to handle data for URLs in a UI action script.

Use this API to configure UI actions with which users can interact. Use these scripts in the UI Action [sys_ui_action] table. For information, see UI actions.

Methods for this API are referred to by the variable name 'action' in any server-side JavaScript. To learn more, see Creating interactions with UI actions.

action - getGlideURI()

Gets a GlideURI object to determine the user view.

Table 1. Parameters
Name Type Description
None
Table 2. Returns
Type Description
Object GlideURI object representing the URI parameter of the user view.
Note: Any other returned value is considered an error, including null.

Example

The following example shows how to get the user view and set the redirect URL to the service catalog home page.

var uri = action.getGlideURI();
var path = 'catalog_home.do';

uri.set('sysparm_view', 'catalog_default');
action.setRedirectURL(uri.toString(path));

action - getReturnURL()

Gets the URL of the return page in view after a UI action is complete.

Table 3. Parameters
Name Type Description
None
Table 4. Returns
Type Description
String URL of the return page in view after a UI action is complete.

Example

action.getReturnURL();

action - getURLParameter(String parameterName)

Gets the value of a URL parameter.

Table 5. Parameters
Name Type Description
parameterName String Name of the URL parameter name to be queried for the URL parameter value.
Table 6. Returns
Type Description
String URL parameter value.

Example

action.getURLParameter('sysparm_query');

action - openGlideRecord(Object gr)

Opens a page with a GlideRecord in the user view.

Table 7. Parameters
Name Type Description
gr GlideRecord GlideRecord of the page to be opened in the user view.
Table 8. Returns
Type Description
void  

Example

The following example shows how to include the caller name and incident description created from an interaction record. For more details, see Set up custom UI actions in Workspace.

if(current.update()){
  var inc = new GlideRecord("incident");
  inc.newRecord();
  inc.caller_id = current.opened_for;
  inc.short_description = current.short_description;
  action.openGlideRecord(inc);
}

action - setNoPop(Boolean noPop)

Indicates whether to enable or disable pop-up windows on the page in the current view.

Table 9. Parameters
Name Type Description
noPop Boolean Flag indicating whether to enable or disable pop-up windows on the page:
  • true: Disables pop-up windows.
  • false: Default. Enables pop-up windows.
Table 10. Returns
Type Description
None

Example

The following example shows how to disable pop-up windows for a UI action.


action.setNoPop(true);

action - setRedirectURL(Object URL)

Sets the redirect URI for this transaction, which determines the next page the user sees.

Table 11. Parameters
Name Type Description
URL Object URL to set as the redirect. You can provide the URL as a string or a GlideRecord. If you pass the URL as a GlideRecord, this value takes the focus to that record's form.
Table 12. Returns
Type Description
void

Example

The following example shows how to redirect a user to a URL from a UI action using the current variable.

var fixchg = new GlideRecord("change_request");
fixchg.short_description= current.short_description;
fixchg.comments= current.comments.getHTMLValue();
// fixchg.parent = current.sys_id;
fixchg.insert();
FixChange();
 
gs.addInfoMessage("Change "+ fixchg.number+" created");
action.setRedirectURL(current);
action.setReturnURL(fixchg);
 
function FixChange(){
var m2m = new GlideRecord('task_rel_task');
m2m.initialize();
m2m.child= current.sys_id;
m2m.parent= fixchg.sys_id;
m2m.type.setDisplayValue("Fixes::Fixed by");
m2m.insert();}

Example

The following example shows how to create a new incident record and redirect to the new incident after a UI action completes.
var reqItem = current.u_item;
var requestedFor = current.u_requested_for;
var location = current.location;

if(current.u_incident_request == 'Incident'){
  //Create a new incident record and redirect to the new incident
  var rec = new GlideRecord('incident');
  rec.initialize();
  rec.caller_id = requestedFor;
  rec.location = location;
  rec.insert();
  action.setRedirectURL(rec);
}

if(current.u_incident_request == 'Request'){
  //Build the url and route the user to the request item
  var url = '';
  if(current.u_item.sys_class_name == 'sc_cat_item_guide'){
    url = 'com.glideapp.servicecatalog_cat_item_guide_view.do?sysparm_initial=true&sysparm_guide=' + 
      reqItem + '&sysparm_user=' + requestedFor + '&sysparm_location=' + location;
  }
  else{
    url = 'com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=' + reqItem + '&sysparm_user=' +  
      requestedFor + '&sysparm_location=' + location;
  }
  action.setRedirectURL(url);
}

action - setReturnURL(Object URL)

Sets the return URI for this transaction after a UI action is complete. You can use this method to determine what page the user has in view when they return from submit.

Table 13. Parameters
Name Type Description
URL Object URI to set as the return location after a UI action is complete. You can provide the URL as a string or a GlideRecord.
Table 14. Returns
Type Description
void

Example

The following example enables the user to select the UI action to create a change record using information from the problem record and the change template. After the change, the user returns to current view. For more information, see Scripted templates. For more use cases, see Task relationships with UI actions.

var change = new GlideRecord("change_request");
change.initialize();
change.short_description = current.short_description;
change.description = current.u_details;
change.cmdb_ci = current.u_service;
change.priority = current.priority;
change.requested_by = current.caller_id;
change.assignment_group.setDisplayValue('Change & Release');
change.u_status = 'New';
change.parent = current.number;
change.applyTemplate("standard_rfc");
current.rfc = change.insert();
current.comments = 'Change ' + change.number + ' created.';

var mySysID = current.update();

gs.addInfoMessage("Change " + change.number + " created");
action.setRedirectURL(change);
action.setReturnURL(current);

action - setURLParameter(String parameterName, String parameterValue)

Sets a URL parameter name and value.

Table 15. Parameters
Name Type Description
parameterName String Name of the URL parameter.
parameterValue String Value of the parameter.
Table 16. Returns
Type Description
void

Example

action.setURLParameter('sysparm_query', 'priority=2^active=true');