You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 9 Next »
Этот класс сервера с ограниченной областью действия представляет собой методы для получения информации о системе, текущем пользователе и других данных.
Многие методы данного класса являются простыми способами добавления дат в диапазоны запросов для фильтров и отчетов.
Этот класс не имеет конструктора, методы доступны через глобальный объект ss.
ss.addInfoMessage(message, params)
Этот метод отображает всплывающее информационное сообщение в правом нижнем углу.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение из таблицы Исходные сообщения (source_message) из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
params | Object | Нет | {} |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.addInfoMessage("Осталось три дня"); // или ss.addInfoMessage("Осталось {count} {noun}", {"count": "три", "noun": "дня"});
ss.addErrorMessage(message, params)
Используйте этот метод для отображения всплывающего сообщения об ошибке в нижнем правом углу.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение source_message из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.
Параметры
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
message | String | Да | Нет |
message | Number | Да | Нет |
params | Object | Нет | {} |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
ss.addErrorMessage('"Name" cannot be blank'); // или ss.addErrorMessage('"{title}" cannot be blank', {title: "Name"});
ss.addSuccessMessage(message, params)
Используйте этот метод для отображения всплывающего в нижнем правом углу сообщения об успешно выполненном действии.
Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение source_message из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр 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)
Используйте этот метод, чтобы поставить событие в очередь на определенное время.
Имя аргумента должно совпадать с именем 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', 'Укажите часовой пояс пользователя по умолчанию');
ss.getSession()
Используйте этот метод, чтобы получить ссылку на текущую сессию авторизации.
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleSession | Ссылка на текущую сессию. |
Пример:
const session = ss.getSession(); const ipAddress = session.getClientIP(); ss.info(ipAddress); //Инфо: 127.0.0.1
ss.getUser()
Используйте этот метод, чтобы получить объект SimpleRecord текущего пользователя.
Type | Описание |
---|---|
SimpleRecord object | Объект SimpleRecord текущего пользователя |
ss.info(ss.getUser().username); //Инфо: admin
ss.getUserID()
Используйте этот метод, чтобы получить sys_id текущего пользователя.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Значение sys_id |
Пример:
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)
Этот метод использует ID таблицы и ID записи таблицы и возвращает строку со значением Document ID (32-значное значение UUID).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
tableID | String | Да | Нет |
RecordID | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | Запись Document ID (32-значное значение UUID ) |
Пример:
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)
Этот метод использует запись Document ID (32-значное значение UUID) и возвращает ID таблицы.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
DocID | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | 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)
Этот метод использует запись DocumentID (32-значное значение UUID) и возвращает ID записи.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
DocID | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | 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)
Используйте этот метод, чтобы проверить, имеет ли текущий пользователь указанную роль или роль админа.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
role | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение "true", если у пользователя есть указанная роль или роль админа; если нет, метод возвращает значение "false". |
Пример:
const isUserManager = ss.hasRole('process_manager'); // true or false return isUserManager;
Этот метод всегда возвращает значение "true", если у пользователя есть указанная роль или роль админа. Чтобы проверить, есть ли у пользователя определенная роль, используйте следующий скрипт:
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)
Используйте этот метод для импорта Script Includes в скрипты на стороне сервера.
При использовании на стороне сервера встроенных скриптов, таких как условие для UI Action, необходимо использовать return для возврата значения. Пример:
ss.importIncludeScript('get_access'); return get_access();
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
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)
Используйте этот метод, чтобы настроить URL страницы, на которую будет перенаправлен пользователь. Если URL не указан, текущая страница будет перезагружена после вызова этого метода.
Не рекомендуется передавать абсолютный URL в качестве значения параметра в этом методе, так как это вызывает ошибки масштабируемостию. Указыввайте относительные пути, как в примере ниже:
Не рекомендуется | Рекомендуется |
---|---|
https://instance.example.com/record/task | /record/task |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
url | String | Нет | "" |
Возвращаемое значение:
Тип | Описание |
---|---|
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