You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Next »
Этот класс сервера с ограниченной областью действия представляет собой методы для получения информации о системе, текущем пользователе и других данных.
Многие методы данного класса являются простыми способами добавления дат в диапазоны запросов для фильтров и отчетов.
Этот класс не имеет конструктора, методы доступны через глобальный объект ss.
ss.addInfoMessage(message, params)
Этот метод отображает всплывающее информационное сообщение в правом нижнем углу.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого введите значение source_message в параметр message. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
params | Object | Нет | {} |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.addInfoMessage("Three days left"); // OR ss.addInfoMessage("{count} {noun} left", {"count": "Three", "noun": "days"});
ss.addErrorMessage(message, params)
Используйте этот метод для отображения всплывающего сообщения об ошибке в нижнем правом углу.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого введите значение source_message в параметр message. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.
Параметры
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
params | Object | Нет | {} |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.addErrorMessage('"Name" cannot be blank'); // OR ss.addErrorMessage('"{title}" cannot be blank', {title: "Name"});
ss.addSuccessMessage(message, params)
Используйте этот метод для отображения всплывающего в нижнем правом углу сообщения об успешно выполненном действии.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого введите значение source_message в параметр message. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
params | Object | Нет | {} |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.addSuccessMessage('Successfully updated'); // ИЛИ ss.addSuccessMessage('Successfully {action_name}', {action_name: "updated"});
ss.info(message)
Используйте этот метод, чтобы добавить информационное сообщение в системный журнал, расположенный в таблице Основной журнал (sys_log).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
message | Object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение, но выводит сообщение с пременным значением. |
Пример:
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)
Используйте этот метод, чтобы добавить сообщение об отладке в системный журнал, расположенный в таблице Основной журнал (sys_log).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
message | Object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение, но выводит сообщение с пременным значением. |
Пример:
const insertedID = inquiry.insert(); if (insertedID == 0) { ss.debug(inquiry.getErrors()); } else { ss.debug(`Create inquiry with ID ${insertedID}`) }
ss.warning(message)
Используйте этот метод, чтобы добавить сообщение с предупреждением в системный журнал, расположенный в таблице Основной журнал (sys_log).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
message | Object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение, но выводит сообщение с пременным значением. |
Пример:
const task = new SimpleRecord('task'); task.query(); while(task.next()){ ss.warning(task.sys_id); }
ss.error(message)
Используйте этот метод, чтобы добавить сообщение об ошибке в системный журнал, расположенный в таблице Основной журнал (sys_log).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
message | Object | Да | Нет |
Возвращаемое значение:
Type | Описание |
---|---|
Void | Этот метод не возвращает значение, но выводит сообщение с пременным значением. |
Пример:
(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)
Используйте этот метод, чтобы поставить событие в очередь на основе его названия и дополнительных параметров.
Имя аргумента должно совпадать с именем sys_event_register.
Таблица переданного текущего объекта должна совпадать с таблицей sys_event_register или таблицей, расширенной от нее.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
current | SimpleRecord object | Да | Нет |
param_1 | string | Нет | NULL |
param_2 | string | Нет | NULL |
param_3 | string | Нет | NULL |
param_4 | string | Нет | NULL |
param_5 | string | Нет | NULL |
Возвращаемое значение:
Type | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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)
This method queues an event with a specific start time. Используйте этот метод, чтобы поставить событие в очередь на определенное время.
Имя аргумента должно совпадать с именем sys_event_register.
Таблица переданного текущего объекта должна совпадать с таблицей sys_event_register.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
current | SimpleRecord object | Да | Нет |
process_started_at | SimpleDateTime object | Да | Нет |
param_1 | string | Нет | NULL |
param_2 | string | Нет | NULL |
param_3 | string | Нет | NULL |
param_4 | string | Нет | NULL |
param_5 | string | Нет | NULL |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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()
Используйте этот метод для генерации токена в случае запроса на сброс пароля.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Токен для сброса пароля |
Пример:
const resetToken = ss.generateResetToken(); ss.info(resetToken); //Инфо: l_kxwLi-TsTwmgLYk3euOCeXeA14nE2U_1610699284
ss.generateUrlAction(assigned_to, script, expire_at)
Этот метод возвращает URL-адрес. При переходе на него выполняется скрипт, указанный в параметре.
По умолчанию после перехода по URL-адресу открывается главная страница. Если необходимо перенаправить пользователя на другую страницу, введите ее адрес в переменную redirectUrl.
По умолчанию отображается флэш-сообщение «Действие выполнено» . Чтобы изменить текст сообщения, измените переменную message.
Флэш-сообщение можно отключить. Для этого установите message = null или '''.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
assigned_to | String | Да | Нет |
script | String | Да | Нет |
expire_at | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | URL-адрес действия |
Пример:
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); //Инфо: your-instance-uri.simpleone.ru/url-action/run?key=Q2GqNFRXCRY2
ss.getApplicationId()
Используйте этот метод, чтобы получить ID текущего приложения текущего пользователя.
Тип | Описание |
---|---|
String | Этот метод возвращает ID приложения. |
const appId = ss.getApplicationId(); ss.info(appId); //Инфо: 155931135900000002
ss.getProperty(name)
Используйте этот метод, чтобы получить значение из "sys_property" на основе параметра "name".
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | Значение свойства, если доступно; в противном случае метод возвращает "NULL". |
Пример:
ss.info(ss.getProperty('simple.passwordreset.enabled')); //Инфо: false
ss.setProperty(name, value, description)
Используйте этот метод, чтобы проверить наличие записи в таблице Системный свойства (sys_property) при помощи параметра name.
Если запись отсутствует, метод создает новую запись. В противном случае метод выполняет действие Обновить.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
value | String | Да | Нет |
description | String | Нет | NULL |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.setProperty('user.timezone.default', 'Europe/Moscow', 'Define the default user time zone');
ss.getSession()
Use this method to get a reference to the current authorization session.
Возвращаемое значение:
Type | Описание |
---|---|
SimpleSession | Reference to the current session. |
Пример:
const session = ss.getSession(); const ipAddress = session.getClientIP(); ss.info(ipAddress); //Info: 127.0.0.1
ss.getUser()
This method returns the current user SimpleRecord object.
Type | Описание |
---|---|
SimpleRecord object | The current user SimpleRecord object. |
ss.info(ss.getUser().username); //Info: admin
ss.getUserID()
This method returns the sys_id of the current user.
Возвращаемое значение:
Type | Описание |
---|---|
String | The sys_id value |
Пример:
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)
This method gets a table ID and a table record ID, and returns the record Document ID (32-character UUID value).
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
tableID | String | Y | N |
RecordID | String | Y | N |
Возвращаемое значение:
Type | Описание |
---|---|
String | Record DocumentID (32-character UUID value). |
Пример:
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)
This method gets a record Document ID (32-character UUID value) and returns the table ID.
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
DocID | String | Y | N |
Возвращаемое значение:
Type | Описание |
---|---|
String | The table ID. |
Пример:
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)
This method gets a record DocumentID (32-character UUID value) and returns the record ID.
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
DocID | String | Y | N |
Возвращаемое значение:
Type | Описание |
---|---|
String | The record ID. |
Пример:
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)
This method checks whether the current user has a specified or admin role.
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
role | String | Y | N |
Возвращаемое значение:
Type | Описание |
---|---|
Boolean | This method returns true if the user has a specified or admin role, otherwise, it returns false. |
Пример:
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 check whether 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)
This method allows importing Script Includes into server-side scripts.
When used in the server-side inline scripts like UI Action condition, it is mandatory using return to return the value like it shown in the example below:
ss.importIncludeScript('get_access'); return get_access();
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Y | N |
Возвращаемое значение:
Type | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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)
This method sets the URL for this transaction to which the user will be redirected next. If the URL is not provided, then the current page will be reloaded after calling the method.
It is not recommended to pass the absolute URL as a parameter value for this method, because it leads to scalability issues. Define paths in a relative way, like shown below.
Not recommended | Recommended |
---|---|
https://instance.example.com/record/task | /record/task |
Параметры:
Name | Type | Обязательный | Значение по умолчанию |
---|---|---|---|
url | String | N | "" |
Возвращаемое значение:
Type | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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