Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  

The methods of this class are designed to This class provides methods to get information about the system, the current user, etc.

This class has no constructor, the methods are accessible via the use the ss global object to access the methods.

ss.addInfoMessage(message, params)


Use this method to display an informational toast message in the bottom lower right corner according to the current user locale. To do so, in the message parameter, enter the source_message value of a record from the app category. See Static Interface Localization and Multi-Language Support to learn more.  The params parameter allows defining Use the params parameters to define values for the dynamic  dynamic parts of the translated message.

Parameter(s):

NameTypeMandatoryDefault value
messageStringYN
paramsObjectN{}

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.addInfoMessage()
linenumberstrue
ss.addInfoMessage("Three days left");
// OR
ss.addInfoMessage("{count} {noun} left", {"count": "Three", "noun": "days"});

ss.addErrorMessage(message, params)


Use this method to display an error toast message in the bottom lower right corner according to the current user locale. To do so, in the message parameter, enter the source_message value of a record from the app category. See Static Interface Localization See Localization and Multi-Language Support to learn more. The params parameter allows defining Use the params parameters to define values for the dynamic the dynamic parts of the translated message.

Parameter(s):

NameTypeMandatoryDefault value
messageStringYN
paramsObjectN{}

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.addErrorMessage()
linenumberstrue
ss.addErrorMessage('"Name" cannot be blank');
// OR
ss.addErrorMessage('"{title}" cannot be blank', {title: "Name"});

ss.addSuccessMessage(message, params)


Use this method to display a success toast message in the bottom lower right corner according to the current user locale. To do so, in the message parameter, enter the source_message value of a record from the app category.  See Static Interface LocalizationSee Localization and Multi-Language Support to learn more. The params parameter allows defining values for the dynamic parts Use the params parameters to define values for the dynamic parts of the translated message.

Parameters:

NameTypeMandatoryDefault value
messageStringYN
paramsObjectN{}

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
themeEclipse
titless.addSuccessMessage()
linenumberstrue
ss.addSuccessMessage('Successfully updated');
// OR
ss.addSuccessMessage('Successfully {action_name}', {action_name: "updated"});

ss.info(message)


Use this method to adds an information message into the system journal located in the Logs Main Log (sys_log)table.

Parameter(s):

NameTypeMandatoryDefault value
messageAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.info()
linenumberstrue
const task = new SimpleRecord('task');
task.orderByDesc('sys_created_at');
task.setLimit(1);
task.selectAttributes('number');
task.query();
while(task.next()){
    ss.info(task.number);
}

ss.debug(message)


Use this method to add a debug message into the system journal located in the Logs Main Log (sys_log)table.

Parameter(s):

NameTypeMandatoryDefault value
messageAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.debug()
linenumberstrue
const insertedID = inquiry.insert();
if (insertedID == 0) {
    ss.debug(inquiry.getErrors());
} else {
    ss.debug(`Create inquiry with ID ${insertedID}`)
}

ss.warning(message)


Use this method to add a warning message into the system journal located in the Logs Main Log (sys_log)table.

Parameter(s):

NameTypeMandatoryDefault value
messageAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.warning()
linenumberstrue
const task = new SimpleRecord('task');
task.query();
while(task.next()){
  ss.warning(task.sys_id);
}

ss.error(message)


This method adds an error message into the system journal located in the Logs Main Log (sys_log)table table.

Parameter(s):

NameTypeMandatoryDefault value
messageAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.error()
linenumberstrue
(function executeRule(current, previous /*null when async*/ ) {
    const nowDateTime = new SimpleDateTime();
    const targetDateTime = new SimpleDateTime(current.appropriate_datetime);
    const secondsLeft = targetDateTime.getNumericValue() - nowDateTime.getNumericValue();
    if (secondsLeft < 1800) { // less than half an hour left
        ss.addErrorMessage('Appropriate Datetime cannot be less than half an hour');
        ss.error(`Too Urgent Request: ${secondsLeft} to process`); 
        current.setAbortAction(true);
    }
})(current, previous);

ss.eventQueue(name, current, param_1, param_2, param_3, param_4, param_5)


Use this method to queue an event basing based on its name and optional parameters. 

The name argument should be the same as the record name in the Event Registers (sys_event_register) table.

The table of the passed current object should be the same as the table specified in the record of the Event Register (sys_event_register) table or the table extended from it.

Parameter(s):

NameTypeMandatoryDefault value
nameStringYN
currentSimpleRecord objectYN
param_1stringStringNNULLnull
param_2stringStringNNULLnull
param_3stringStringNNULLnull
param_4stringStringNNULLnull
param_5stringStringNNULLnull

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.eventQueue()
linenumberstrue
if (current.state != '10') { // Not Closed
    ss.eventQueue('incident.close', current, ss.getUserID());
}

ss.eventQueueScheduled(name, current, process_started_at, param_1, param_2, param_3, param_4, param_5)


Use this method to queue an event and run it at a specified time. 

The name argument should be the same as the record name in the Event Registers (sys_event_register) table.

The table of the passed current object should be the same as the table specified in the record of the Event Register (sys_event_register) table.

Parameter(s):

NameTypeMandatoryDefault value
nameStringYN
currentSimpleRecord objectYN
process_started_atSimpleDateTime objectYN
param_1stringStringNNULLnull
param_2stringStringNNULLnull
param_3stringStringNNULLnull
param_4stringStringNNULLnull
param_5stringStringNNULLnull

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.eventQueueScheduled()
linenumberstrue
if (current.state != '10') { // Not Closed
    const plusThreeDays = new SimpleDateTime(); // now
    plusThreeDays.addDays(3); // + 3 days
    ss.eventQueueScheduled('incident.autoclose', current, plusThreeDays, ss.getUserID());
}

ss.generateResetToken()


Use this method to generates a token, for example, when the password resetting has been requested.

Return:

TypeDescription
StringA This method returns a password reset token.

Example:

Code Block
languagejs
themeEclipse
titless.generateResetToken()
linenumberstrue
const resetToken = ss.generateResetToken();
ss.info(resetToken);
//Info: l_kxwLi-TsTwmgLYk3euOCeXeA14nE2U_1610699284

ss.generateUrlAction(userId, script, expire)


Use this method to return a URL. After following it, the script specified in the script parameter is executed.

By default, the main page opens after following the URL. To redirect it a user to another page, enter its address into the redirectUrl variable within the script.

A flash message Action done is shown by default. To change the message text, redefine the message variable within the script.

To deactivate the flash message, set the message variable as null or ' ''.

Parameter(s):

NameTypeMandatoryDefault value
userIdStringYN
scriptStringYN
expireStringYN

Return:

TypeDescription
StringThe This method returns the action URL.

Example:

Code Block
languagejs
themeEclipse
titless.generateUrlAction()
linenumberstrue
const simpleInstanceUri = ss.getProperty('simple.instance.uri');
const instanceUrl = simpleInstanceUri.startsWith('https://') ? simpleInstanceUri : 'https://' + simpleInstanceUri;


const аctionScript = `
    const task = new SimpleRecord('task');
    task.get('${current.sys_id}');
    if (task.state == '7') { // Completed
        task.state = '10'; // Closed
        task.update();
    }
    message = null;
    redirectUrl = instanceUrl + '/record/task/' + current.sys_id
`;
const nowDateTime = new SimpleDateTime();
nowDateTime.addDays(3);
const url = ss.generateUrlAction(current.getValue('caller'), аctionScript, nowDateTime.getValue());
ss.info(url);
//Info: your-instance-uri.simpleone.ru/url-action/run?key=Q2GqNFRXCRY2

ss.getApplicationId()


Use this method to return the ID of the application that the current user is using at the moment.

Return:

TypeDescription
StringThe This method returns the application ID.

Example:

Code Block
languagejs
themeEclipse
titless.getApplicationID()
linenumberstrue
const appId = ss.getApplicationId();
ss.info(appId);
//Info: 155931135900000002

ss.getProperty(name)


Use this method to return a value from the specified in the name parameter record of the System Properties (sys_property) table.

Parameter(s):

NameTypeMandatoryDefault value
nameStringYN

Return:

TypeDescription
StringThis method returns the The property value if available; otherwise, the method returns null.

Example:

Code Block
languagejs
themeEclipse
titless.getProperty()
linenumberstrue
ss.info(ss.getProperty('simple.passwordreset.enabled'));
//Info: false

ss.setProperty(name, value, description)


Use this method to verify, using the name parameter . that there is a record in the System Property (sys_property) table.

If the record exists, the method updates its value and description.

Parameter(s):

NameTypeMandatoryDefault value
nameStringYN
valueStringYN
descriptionStringNNULLnull

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.setProperty()
linenumberstrue
ss.setProperty('user.timezone.default', 'Europe/Moscow', 'Define the default user time zone');

ss.getSession()


Use this method to get information on the current authorization session.

Return:

TypeDescription
SimpleSession objectObjectA This method returns the SimpleSession object of the current session.

Example:

Code Block
languagejs
themeEclipse
titlegetSession()
linenumberstrue
const session = ss.getSession();
const ipAddress = session.getClientIP();
ss.info(ipAddress);
//Info: 127.0.0.1

ss.getUser()


Use this method to return the SimpleRecord object of the current user.

Return:

TypeDescription
SimpleRecord objectThis method returns the ObjectThe SimpleRecord object of the current user.

Example:

Code Block
languagejs
themeEclipse
titless.getUser()
linenumberstrue
ss.info(ss.getUser().username);
//Info: admin

ss.getUserID()


Use this method to returns the current user ID.

Return:

TypeDescription
StringThe This method returns the ID value of the current user.

Example:

Code Block
languagejs
themeEclipse
titless.getUserID()
linenumberstrue
const approval = new SimpleRecord('sys_approval');
approval.addQuery('approver_id', ss.getUserID());
approval.addQuery('state', 'requested');
approval.selectAttributes('sys_id');
approval.query();
if (approval.getRowCount() > 0) {
  //...
}

ss.getDocIdByIds(tableId,recordId)


Use this methods to return a record Document ID (32-character UUID value) basing on the table ID and the table record ID.

Parameter(s):

NameTypeMandatoryDefault value
tableIdStringYN
recordIdStringYN

Return:

TypeDescription
StringA  This method returns a Document ID record (32-character UUID value).

Example:

Code Block
languagejs
themeEclipse
titless.getDocIdByIds()
linenumberstrue
const docID = ss.getDocIdByIds(current.sys_db_table_id, current.sys_id);
const approval = new SimpleRecord('sys_approval');
approval.addQuery('item', docID);
approval.query();

ss.getTableIdByDocId(docId)


Use this method to returm the table ID basing on the Document ID record (32-character UUID value) specified.

Parameter(s):

NameTypeMandatoryDefault value
docIdStringYN

Return:

TypeDescription
StringA This method returns а table ID.

Example:

Code Block
languagejs
themeEclipse
titless.getTableIdByDocId()
linenumberstrue
const tableID = ss.getTableIdByDocId(current.item);
const table = new SimpleRecord('sys_db_table');
table.get(tableID);
const record = new SimpleRecord(table.name);
const recordID = ss.getRecordIdByDocId(current.item);
record.get(recordID);
ss.addInfoMessage(record.sys_created_at);
//Info: 2020-05-24 16:30:21

ss.getRecordIdByDocId(docId)


Use this method to return a record ID basing on the DocumentID record (32-character UUID value) specified.

Parameter(s):

NameTypeMandatoryDefault value
docIdStringYN

Return:

TypeDescription
StringA This method returns a record ID.

Example:

Code Block
languagejs
themeEclipse
titless.getRecordIdByDocId()
linenumberstrue
const tableID = ss.getTableIdByDocId(current.item);
const table = new SimpleRecord('sys_db_table');
table.get(tableID);
const record = new SimpleRecord(table.name);
const recordID = ss.getRecordIdByDocId(current.item);
record.get(recordID);
ss.addInfoMessage(record.sys_created_at);

ss.hasRole(role)


Use this method to verify that the current user has the specified role or the the admin role. If the role specified has the Elevated Privilegeprivilege checkbox selected and the admin user role is not elevated up to the specified one, the method returns false.
T

Parameter(s):

NameTypeMandatoryDefault value
roleStringYN

Return:

TypeDescription
BooleanThis method returns true if the user has the specified or admin role; otherwise, it returns false.

Example:

Code Block
languagejs
themeEclipse
titless.hasRole()
linenumberstrue
const isUserManager = ss.hasRole('process_manager'); // true or false
return isUserManager;


Note

The method always returns true if a user has a specific or the admin role. To verify that the user has a particular role, use the following script:

Code Block
languagejs
themeEclipse
titless.hasRole()
linenumberstrue
const MANAGER_ROLE = 'process_manager';
const userHasRole = new SimpleRecord('sys_user_has_role');
userHasRole.addQuery('user_id', ss.getUserId());
userHasRole.addQuery('role_id.name', MANAGER_ROLE);
userHasRole.setLimit(1);
userHasRole.selectAttributes(['sys_id']);
userHasRole.query();
const isManager = !!userHasRole.next();
return isManager


ss.importIncludeScript(name)


Use this method to import Script Includes script includes.

Parameter(s):

NameTypeMandatoryDefault value
nameStringYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.importIncludeScript()
linenumberstrue
ss.importIncludeScript('calculateCAB');
const approvers = [];
if (!!current.customized_cab) {
    approvers = approvers.concat(current.customized_cab.split(','));
}
if (!current.ignore_automatically_generated_cab) {
    const includeScriptResult = calculateCAB(current);
    approvers = approvers.concat(includeScriptResult);
}

ss.setRedirect(url)


Use this method to redirect a user to the specified URL. If the URL is not provided, the system reloads refreshes the current page after calling the method.

Info

It is not recommended to pass an absolute URL as a parameter value for this method, because it leads to the scalability issues. Specify the paths in a relative way. See the example below:

Not recommendedRecommended
https://instance.example.com/record/task/record/task


Parameter(s):

NameTypeMandatoryDefault value
urlStringN""

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titless.setRedirect
linenumberstrue
ss.setRedirect(`/list/${current.getTableName()}`);
// Redirect to the list view of the current table

ss.setRedirect('/record/task');
// Redirect to the default view of the Task table


Table of Contents
absoluteUrltrue
classfixedPosition
printablefalse