You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

Script includes used to store JavaScript functions and classes that will execute on the server. Script includes specify either object class or function.

Role required: admin.

The script include form


A script include has a name, a description, and a script itself. Also, it is possible to specify if it is active or client-callable.  

To create a new script include, please complete the following steps:

  • Navigate to System Definition -> Script Includes.
  • Click New and fill in the fields.
  • Click Save or Save and Exit to apply changes. 


FieldDescription
NameScript include name
DescriptionShort action description
ActiveWhen set to TRUE, this script will execute when called; otherwise, it will not execute.
Client callableWhen set to TRUE, this script will be available to call on the client-side scripts.
Script

Define the server-side script to run when called from other scripts

When invoking script includes in other server-side scripts, please use the ss.importIncludeScript method of the SimpleSystem class like shown on the example below:

ss.importIncludeScript('EmailHelper');
const helper = new EmailHelper();

Otherwise, the script would be unavailable.

Special features


You can call a server-side script include in case if you need to use server-side methods on the client-side. To perform this, activate the Client Callable attribute.


Server-side script include on the client-side
ss.importIncludeScript('AbstractAjaxProcessor');
var DurationCalculator = Class.create();
DurationCalculator.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  getDuration() {
    const start = new SimpleDateTime(this.getParameter('sysparm_start'));
    const end = new SimpleDateTime(this.getParameter('sysparm_end'));
    const scheduleID = this.getParameter('sysparm_schedule');
    const schedule = new SimpleSchedule(scheduleID);
    return schedule.duration(start, end).getDurationSeconds() * 1000;
  }
});


Script include on the client-side

Script include on the client-side
if (s_form.getValue('start') &&
  s_form.getValue('end') &&
  s_form.getValue('schedule_id')) {
  const calculate = new SimpleAjax('DurationCalculator'); //Call script include
  calculate.addParam('sysparm_name', 'getDuration');
  calculate.addParam('sysparm_start', s_form.getValue('start'));
  calculate.addParam('sysparm_end', s_form.getValue('end'));
  calculate.addParam('sysparm_schedule', s_form.getValue('schedule_id'));
  calculate.getXML(callback);
  function callback(response) {const answer = response.responseXML.documentElement.getAttribute('answer');
    s_form.setValue('duration', answer);
  }
}


  • No labels