You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Этот класс сервера с ограниченной областью действия представляет собой методы для получения информации о системе, текущем пользователе и других данных.

Многие методы данного класса являются простыми способами добавления дат в диапазоны запросов для фильтров и отчетов.

Этот класс не имеет конструктора, методы доступны через глобальный объект ss.

ss.addInfoMessage(message, params)


Этот метод отображает всплывающее информационное сообщение в правом нижнем углу.

Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение из таблицы Исходные сообщения (source_message) из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
paramsObjectНет{}


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.addInfoMessage
ss.addInfoMessage("Three days left");
// OR
ss.addInfoMessage("{count} {noun} left", {"count": "Three", "noun": "days"});

ss.addErrorMessage(message, params)


Используйте этот метод для отображения всплывающего сообщения об ошибке в нижнем правом углу.

Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение source_message из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.


Параметры

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
paramsObjectНет{}


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.addErrorMessage
ss.addErrorMessage('"Name" cannot be blank');
// или
ss.addErrorMessage('"{title}" cannot be blank', {title: "Name"});

ss.addSuccessMessage(message, params)


Используйте этот метод для отображения всплывающего в нижнем правом углу сообщения об успешно выполненном действии.

Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого в параметр message введите значение source_message из категории app. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр params позволяет определить значения для динамических частей переведенного сообщения.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
paramsObjectНет{}

Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.

Пример:

ss.addSuccessMessage
ss.addSuccessMessage('Successfully updated');
// ИЛИ
ss.addSuccessMessage('Successfully {action_name}', {action_name: "updated"});

ss.info(message)


Используйте этот метод, чтобы добавить информационное сообщение в системный журнал, расположенный в таблице Основной журнал (sys_log).


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
messageObjectДаНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение, но выводит сообщение с пременным значением.


Пример:

ss.info
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).


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
messageObjectДаНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение, но выводит сообщение с пременным значением.


Пример:

ss.debug
const insertedID = inquiry.insert();
if (insertedID == 0) {
    ss.debug(inquiry.getErrors());
} else {
    ss.debug(`Create inquiry with ID ${insertedID}`)
}

ss.warning(message)


Используйте этот метод, чтобы добавить сообщение с предупреждением в системный журнал, расположенный в таблице Основной журнал (sys_log).


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
messageObjectДаНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение, но выводит сообщение с пременным значением.


Пример:

ss.warning
const task = new SimpleRecord('task');
task.query();
while(task.next()){
  ss.warning(task.sys_id);
}

ss.error(message)


Используйте этот метод, чтобы добавить сообщение об ошибке в системный журнал, расположенный в таблице Основной журнал (sys_log).


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
messageStringДаНет
messageNumberДаНет
messageObjectДаНет


Возвращаемое значение:

TypeОписание
VoidЭтот метод не возвращает значение, но выводит сообщение с пременным значением.


Пример:

ss.error
(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 или таблицей, расширенной от нее.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет
currentSimpleRecord objectДаНет
param_1stringНетNULL
param_2stringНетNULL
param_3stringНетNULL
param_4stringНетNULL
param_5stringНетNULL


Возвращаемое значение:

TypeОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.eventQueue
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.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет
currentSimpleRecord objectДаНет
process_started_atSimpleDateTime objectДаНет
param_1stringНетNULL
param_2stringНетNULL
param_3stringНетNULL
param_4stringНетNULL
param_5stringНетNULL


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.eventQueueScheduled
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Токен для сброса пароля


Пример:

generateResetToken
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_toStringДаНет
scriptStringДаНет
expire_atStringДаНет


Возвращаемое значение:

ТипОписание
StringURL-адрес действия


Пример:

ss.generateUrlAction
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 приложения.


getApplicationID
const appId = ss.getApplicationId();
ss.info(appId);
//Инфо: 155931135900000002


ss.getProperty(name)


Используйте этот метод, чтобы получить значение из "sys_property" на основе параметра "name".


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет


Возвращаемое значение:

ТипОписание
String Значение свойства, если доступно; в противном случае метод возвращает "NULL".


Пример:

ss.getProperty
ss.info(ss.getProperty('simple.passwordreset.enabled'));
//Инфо: false

ss.setProperty(name, value, description)


Используйте этот метод, чтобы проверить наличие записи в таблице Системный свойства (sys_property) при помощи параметра name.

Если запись отсутствует, метод создает новую запись. В противном случае метод выполняет действие Обновить.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет
valueStringДаНет
descriptionStringНетNULL


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.setProperty
ss.setProperty('user.timezone.default', 'Europe/Moscow', 'Укажите часовой пояс пользователя по умолчанию');


ss.getSession()


Используйте этот метод, чтобы получить ссылку на текущую сессию авторизации.


Возвращаемое значение:

ТипОписание
SimpleSessionСсылка на текущую сессию.

Пример:

getSession()
const session = ss.getSession();
const ipAddress = session.getClientIP();
ss.info(ipAddress);
//Инфо: 127.0.0.1

ss.getUser()


Используйте этот метод, чтобы получить объект SimpleRecord текущего пользователя.


TypeОписание
SimpleRecord objectОбъект SimpleRecord текущего пользователя
getUser
ss.info(ss.getUser().username);
//Инфо: admin

ss.getUserID()


Используйте этот метод, чтобы получить sys_id текущего пользователя.


Возвращаемое значение:

ТипОписание
StringЗначение sys_id 


Пример:

getUserID
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).


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
tableIDStringДаНет
RecordIDStringДаНет


Возвращаемое значение:

ТипОписание
StringЗапись Document ID (32-значное значение UUID )


Пример:

ss.getDocIdByIds()
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 таблицы.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
DocIDStringДаНет


Возвращаемое значение:

ТипОписание
StringID таблицы


Пример:

ss.getTableIdByDocId()
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 записи.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
DocIDStringДаНет


Возвращаемое значение:

ТипОписание
StringID записи


Пример:

ss.getRecordIdByDocId()
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)


Используйте этот метод, чтобы проверить, имеет ли текущий пользователь указанную роль или роль админа.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
roleStringДаНет


Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение "true", если у пользователя есть указанная роль или роль админа; если нет, метод возвращает значение "false".


Пример:

ss.hasRole
const isUserManager = ss.hasRole('process_manager'); // true or false
return isUserManager;

Этот метод всегда возвращает значение "true", если у пользователя есть указанная роль или роль админа. Чтобы проверить, есть ли у пользователя определенная роль, используйте следующий скрипт:

ss.hasRole
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
ss.importIncludeScript('get_access'); return get_access();


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

ss.importIncludeScript
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

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
urlStringНет""

Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.

Пример:

setRedirect
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