Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
The methods of this class are designed to get information about the system, the current user, etc.
This class has no constructor, the methods are accessible via the ss global object.
ss.addInfoMessage(message, params)
Use this method to display an informational toast message in the bottom 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 to learn more. The params parameter allows defining values for the dynamic parts of the translated message.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | String | Y | N |
params | Object | N | {} |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 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 to learn more. The params parameter allows defining values for the dynamic parts of the translated message.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | String | Y | N |
params | Object | N | {} |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 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 to learn more. The params parameter allows defining values for the dynamic parts of the translated message.
Parameters:
Name | Type | Mandatory | Default value |
---|---|---|---|
message | String | Y | N |
params | Object | N | {} |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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 (sys_log) table.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | Any | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 (sys_log) table.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | Any | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 (sys_log) table.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | Any | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 (sys_log) table.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
message | Any | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
(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 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):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
current | SimpleRecord object | Y | N |
param_1 | string | N | NULL |
param_2 | string | N | NULL |
param_3 | string | N | NULL |
param_4 | string | N | NULL |
param_5 | string | N | NULL |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
current | SimpleRecord object | Y | N |
process_started_at | SimpleDateTime object | Y | N |
param_1 | string | N | NULL |
param_2 | string | N | NULL |
param_3 | string | N | NULL |
param_4 | string | N | NULL |
param_5 | string | N | NULL |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
Type | Description |
---|---|
String | A password reset token. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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, 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):
Name | Type | Mandatory | Default value |
---|---|---|---|
userId | String | Y | N |
script | String | Y | N |
expire | String | Y | N |
Return:
Type | Description |
---|---|
String | The action URL |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
Type | Description |
---|---|
String | The application ID |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
Return:
Type | Description |
---|---|
String | The property value if available; otherwise, the method returns null. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
value | String | Y | N |
description | String | N | NULL |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
Type | Description |
---|---|
Object | A SimpleSession object of the current session. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
Type | Description |
---|---|
Object | The SimpleRecord object of the current user. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ss.info(ss.getUser().username); //Info: admin |
ss.getUserID()
Use this method to returns the current user ID.
Return:
Type | Description |
---|---|
String | The ID value |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
tableId | String | Y | N |
recordId | String | Y | N |
Return:
Type | Description |
---|---|
String | A Document ID record (32-character UUID value). |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
docId | String | Y | N |
Return:
Type | Description |
---|---|
String | A table ID |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
docId | String | Y | N |
Return:
Type | Description |
---|---|
String | A record ID. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 admin role. If the role specified has the Elevated Privilege checkbox selected and the admin user role is not elevated up to the specified one, the method returns false.
T
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
role | String | Y | N |
Return:
Type | Description |
---|---|
Boolean | This method returns true if the user has the specified or admin role; otherwise, it returns false. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
|
ss.importIncludeScript(name)
Use this method to import Script Includes.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 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:
|
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
url | String | N | "" |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||
---|---|---|---|---|---|---|
|