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 позволяет определить значения для динамических частей переведенного сообщения.


Параметры:

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


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

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


Пример:

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

ss.addErrorMessage(message, params)


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

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


Параметры

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


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

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


Пример:

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

ss.addSuccessMessage(message, params)


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

Используйте этот метод для отображения сообщения на языке текущего пользователя. Для этого введите значение source_message в параметр message. Дополнительные сведения см. в разделе Локализация элементов интерфейса. Параметр 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)


This method queues an event with a specific start time. Используйте этот метод, чтобы поставить событие в очередь на определенное время.
Имя аргумента должно совпадать с именем 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', 'Define the default user time zone');


ss.getSession()


Use this method to get a reference to the current authorization session.


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

TypeОписание
SimpleSessionReference to the current session.

Пример:

getSession()
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 objectThe current user SimpleRecord object.
getUser
ss.info(ss.getUser().username);
//Info: admin

ss.getUserID()


This method returns the sys_id of the current user.


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

TypeОписание
StringThe sys_id value


Пример:

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)


This method gets a table ID and a table record ID, and returns the record Document ID (32-character UUID value).


Параметры:

NameTypeОбязательныйЗначение по умолчанию
tableIDStringYN
RecordIDStringYN


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

TypeОписание
StringRecord DocumentID (32-character UUID value).


Пример:

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)


This method gets a record Document ID (32-character UUID value) and returns the table ID.


Параметры:

NameTypeОбязательныйЗначение по умолчанию
DocIDStringYN


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

TypeОписание
StringThe table ID.


Пример:

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)


This method gets a record DocumentID (32-character UUID value) and returns the record ID.


Параметры:

NameTypeОбязательныйЗначение по умолчанию
DocIDStringYN


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

TypeОписание
StringThe record ID.


Пример:

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)


This method checks whether the current user has a specified or admin role.

Параметры:

NameTypeОбязательныйЗначение по умолчанию
roleStringYN


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

TypeОписание
BooleanThis method returns true if the user has a specified or admin role, otherwise, it returns false.


Пример:

ss.hasRole
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:

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)


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


Параметры:

NameTypeОбязательныйЗначение по умолчанию
nameStringYN


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

TypeОписание
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)


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 recommendedRecommended
https://instance.example.com/record/task/record/task

Параметры:

NameTypeОбязательныйЗначение по умолчанию
urlStringN""

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

TypeОписание
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