You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 8 Next »
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:
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:
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:
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:
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:
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:
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:
(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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
const isUserManager = ss.hasRole('process_manager'); // true or false return isUserManager;
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:
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.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
name | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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.
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 recommended | Recommended |
---|---|
https://instance.example.com/record/task | /record/task |
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
url | String | N | "" |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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
- No labels