Этот серверный класс содержит методы для работы с записями базы данных.
SimpleRecord(tableName)
Используйте этот конструктор для создания объекта класса SimpleRecord для конкретной таблицы.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
tableName | String | Да | Нет |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRecord |
---|
linenumbers | true |
---|
|
const taskRecord = new SimpleRecord('task'); |
REM-атрибуты объекта
В классе SimpleRecord имеется отдельный объект Расширенная модель записи (REM) – rem_attr, который содержит информацию о REM-атрибутах. Используйте его для чтения и редактирования значений REM-атрибутов текущей записи с помощью методов класса, как в примере ниже.
Tip |
---|
rem_attr имеет несколько методов аналогичных методам SimpleRecord: Например: record.rem_attr.getValue('my_rem_attribute');
|
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | get using REM |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('task');
record.get('160638931615274614');
if (record.getReModelId()) {
ss.info(record.rem_attr.description);
} |
addOrCondition(property, operator, value)
Этот метод добавляет ИЛИ условие к существующему запросу. Он работает в сочетании с методом addQuery(). В этом методе вы можете использовать необходимый оператор из списка операторов условий, указанный в нижнем или верхнем регистре. Обратите внимание, что необходимо использовать системное имя оператора в скриптах.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы соответствующие типу атрибута.
Note |
---|
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет
Info |
---|
Для REM-атрибутов используйте следующий паттерн: '<sys_id>:<attr_name>', где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута. |
|
operator | String (больше информации в статье Операторы условий) | Нет | = |
value | Integer / String / Boolean / Array / SimpleRecord object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
SimpleRecord | Запрос содержащий объект SimpleRecord или условие, добавленное к этому объекту. |
Примеры:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addOrCondition |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('task');
record.addQuery('subject', 'like', 'not work');
record.addOrCondition('description', 'like', 'not work');
ss.info('Условие запроса: ' + record.getConditionQuery());
record.query();
// Информация: Условие запроса: (subjectLIKEnot work)^OR(descriptionLIKEnot work) |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addOrCondition c REM-атрибутом |
---|
linenumbers | true |
---|
|
let record = new SimpleRecord('task');
record.addQuery('subject', 'like', 'not work');
record.addOrCondition('166972638116358001:description', 'contains', 'not work');
ss.info('Условие запроса: ' + record.getConditionQuery());
record.query();
// Информация: Условие запроса: (subjectLIKEnot work)^OR(166972638116358001:descriptionLIKEnot work) |
Info |
---|
В качестве значения для метода addOrCondition() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта: Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRecord как аргумент |
---|
linenumbers | true |
---|
collapse | true |
---|
| const task = new SimpleRecord('task');
task.setLimit(1);
task.query();
if (!task.next()) {
ss.info('No tasks found!');
return;
}
const relatedTask = new SimpleRecord('task');
relatedTask.addQuery('caller', task.caller);
relatedTask.addOrCondition('assigned_user', task.caller);
relatedTask.query();
ss.info('Количество задач: ' + relatedTask.getRowCount());
// Информация: Количество задач: 122 |
|
addQuery(property, operator, value)
Используйте этот метод, чтобы добавить условие для выбора записей из базы данных. этом методе вы можете использовать необходимый оператор из списка операторы условия, указанный в нижнем или в верхнем регистре. Обратите внимание, необходимо использовать системное имя оператора в скриптах.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы соответствующие типу атрибута.
Note |
---|
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет Info |
---|
Для REM-атрибутов используйте следующий паттерн: '<sys_id>:<attr_name>', где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута. |
|
operator | String (больше информации в статье Операторы условий) | Нет | = |
value | Integer / String / Boolean / Array / SimpleRecord object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
SimpleRecord | Условие запроса добавленное в объект SimpleRecord. |
Примеры:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addQuery |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.addQuery('active', true);
task.addQuery('subject', 'like', 'email');
task.addQuery('sys_created_at', '<', '2019-04-01 00:00:00');
task.query();
ss.info('Количество: ' + task.getRowCount());
// Информация: Количество: 0 |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addQuery с REM-атрибутом |
---|
linenumbers | true |
---|
|
let record = new SimpleRecord('task');
record.addQuery('166972638116358001:description', 'not work');
record.query();
ss.info("Всего записей: " + record.getRowCount());
// Информация: Всего записей: 1 |
Info |
---|
В качестве значения для метода addQuery() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта: Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRecord как аргумент |
---|
linenumbers | true |
---|
collapse | true |
---|
| const task = new SimpleRecord('task');
task.setLimit(1);
task.query();
if (!task.next()) {
ss.info('Нет задач!');
return;
}
const otherTask = new SimpleRecord('task');
otherTask.addQuery('caller', task.caller);
otherTask.addQuery('sys_id', '!=', task.sys_id);
otherTask.query();
ss.info('Количество задач: ' + otherTask.getRowCount());
// Информация: Количество задач: 720 |
|
addEncodedQuery(condition)
Используйте данный метод, чтобы добавить закодированное условие для выбора записей из базы данных.
Info |
---|
Допустимо использование декодированного условия. |
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы соответствующие типу атрибута.
Note |
---|
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
При настройке фильтрации по текстовым полям String, Text, Translated Text, Conditions и URL используйте фигурные скобки для аргумента фильтрации. Запись аргумента в круглых скобках может вызвать ошибку фильтрации:
Code Block |
---|
language | java |
---|
theme | Eclipse |
---|
title | Фильтрация по текстовым полям |
---|
linenumbers | true |
---|
collapse | true |
---|
|
const subject = 'Hello, SimpleOne)';
const task = new SimpleRecord('task');
task.addEncodedQuery(`subjectLIKE${subject}`);
ss.info(task.getConditionQuery());
try {
task.query();
} catch (e) {
ss.error(e.message);
}
// Информация: (subjectLIKEHello, SimpleOne))
// Ошибка: Условие запроса неверное |
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|
condition | String | Да | Нет Info |
---|
Для REM-атрибутов используйте следующий паттерн: '<sys_id>%3A<attr_name>', где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута. |
|
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Примеры:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addEncodedQuery |
---|
linenumbers | true |
---|
|
const currentUser = ss.getUser();
const reciever = new SimpleRecord('employee');
reciever.addQuery('active', true);
if (currentUser.company.class === 'internal') {
reciever.addEncodedQuery(`(company=${currentUser.getValue('company')})`);
} else {
reciever.addEncodedQuery(`%28sys_db_table_id%3D158645243815904649%5Esys_created_byDYNAMIC156957117519820256%29`);
}
ss.info('Decoded condition: ' + reciever.getConditionQuery());
reciever.query();
// Инфо: Декодированное условие: (active=1)^((sys_db_table_id=158645243815904649^sys_created_byDYNAMIC156957117519820256)) |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | addEncodedQuery с REM-атрибутом |
---|
linenumbers | true |
---|
|
const receier = new SimpleRecord('task');
receiver.addQuery('active', true);
receiver.addEncodedQuery('%28sys_db_table_id%3D158645243815904649%5E166972638116358001%3AdescriptionLIKEwork`);
ss.info('Decoded condition: ' + receiver.getConditionQuery());
receiver.query();
// Инфо: Декодированное условие: (active=1)^((sys_db_table_id=158645243815904649^166972638116358001:descriptionLIKEwork)) |
canCreate()
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю создание записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | canCreate |
---|
linenumbers | true |
---|
|
current.canCreate(); |
canDelete()
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю удаление записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | canDelete |
---|
linenumbers | true |
---|
|
current.canDelete(); |
canRead()
Используйте этот метод, чтобы проверить, доступен ли текущему пользователю просмотр записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | canRead |
---|
linenumbers | true |
---|
|
current.canRead(); |
canUpdate()
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю редактирование записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | canUpdate |
---|
linenumbers | true |
---|
|
current.canUpdate(); |
deleteMultiple()
Используйте этот метод, чтобы удалить записи из полученной выборки. Обратите внимание, что при удалении записей с помощью этого метода не удаляются вложения.
Note |
---|
Не используйте этот метод для таблиц с зависимостями. Всегда удаляйте каждую запись по отдельности. |
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает "true", если записи успешно удалены, в случае ошибки метод возвращает значение "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | deleteMultiple |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('sys_activity_feed_item');
record.addQuery('content', 'isempty');
record.query();
ss.info(record.getRowCount());
ss.info(record.deleteMultiple());
// Информация: 0
// Информация: true |
deleteRecord(id)
Используйте этот метод для удаления записи.
При вызове метода в выборке записей с указанием параметра, удаляется запись с конкретным ID. Для удаления текущей записи можно как указать ID, так и не указывать. В обоих случаях в результате удаляется сама запись.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
id | String | Нет | |
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение "true", еслизапись успешно удалена, в случае ошибки метод возвращает значение "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | deleteRecord |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.get('155931135900000000');
if (!task.sys_id) {
return;
}
const isDeleted = task.deleteRecord();
if (isDeleted) {
ss.info('Задача с ID ' + task.sys_id + ' была удалена!');
return;
}
ss.error(task.getErrors()); |
get(propertyOrValue, value)
Используйте этот метод, чтобы загрузить объект из базы данных по значению поля или, в некоторых случаях, по ID. propertyOrValue принимает значение ID записи или имени свойства. Если значение равно имени свойства, второй параметр value является обязательным.
Note |
---|
Передача значения 'NULL' или пустой строки в качестве значения параметра propertyOrValue ведет к исключению: "Аргумент 1 функции "get()" не может быть пустым".
|
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
propertyOrValue | | Да | Нет |
value | String | Нет | NULL |
Возвращаемое значение:
Тип | Описание |
---|
SimpleRecord object | Этот метод возвращает объект SimpleRecord из таблицы, указанной в запросе. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | get |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163663310116371174'); |
Info |
---|
В качестве значения для методаget() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта: Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRecord как аргумент |
---|
linenumbers | true |
---|
collapse | true |
---|
| const task = new SimpleRecord('task');
task.setLimit(1);
task.query();
if (!task.next()) {
ss.info('Нет задач!');
return;
}
const user = new SimpleRecord('user');
user.get(task.caller);
user.language_id = '156628684306541141'; // Английский
ss.info(user.update());
// Информация: 167515292501757147 |
|
getAttributes()
Данный метод возвращает объект с атрибутами текущей записи в качестве ключей и значения атрибутов как значения ключей.
Возвращаемое значение:
Тип | Описание |
---|
Object | Объект с атрибутами записи и их значениями. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getAttributes |
---|
linenumbers | true |
---|
|
const userRecord = ss.getUser();
ss.info(userRecord.getAttributes());
// Информация: {"sys_id":"155931135900000001","sys_created_at":"2019-09-30 00:00:00","sys_updated_at":"2021-06-28... |
getClassDisplayValue()
Данный метод возвращает заголовок таблицы.
Возвращаемое значение:
Тип | Описание |
---|
String | Заголовок таблицы записи. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getClassDisplayValue |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163663310116371174');
ss.info(current.getClassDisplayValue());
// Информация: Задачи |
getConditionQuery()
Метод возвращает текущее условие запроса.
Возвращаемое значение:
Тип | Описание |
---|
String | Условие запроса. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getConditionQuery |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
const condition = task.addQuery('state', '7');
condition.addOrCondition('priority', '<', '3');
ss.info('Условие до запроса: ' + task.getConditionQuery());
task.query();
ss.info('Условие после: ' + task.getConditionQuery());
// Информация: Условие до запроса: (state=7)^OR(priority<3)
// Информация: Условие после: |
getDisplayValue(property)
Anchor |
---|
| getDisplayValue() |
---|
| getDisplayValue() |
---|
|
Данный метод возвращает отображаемое значение параметра записи. Например, для поля reference возвращается название сущности, а не ID.
Без параметра данные метод возвращает отображаемое значение записи из поля с установленным флажком display_by_ref.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
Property | String | Нет | NULL |
Возвращаемое значение:
Type | Описание |
---|
String | Отображаемое значение записи или поля. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getDisplayValue |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163663310116371174');
ss.info(current.getDisplayValue('caller'));
ss.info(current.getValue('caller'));
// Информация: Иван Иванов
// Информация: 155931135900000001 |
getErrors()
Этот метод возвращает сообщения об ошибке в случае сбоя при создании, обновлении или удалении записи.
Используйте этот метод для контроля проведения операции с записью в скрипте.
Warning |
---|
Настоятельно рекомендуется использовать данный метод, так как некоторые ошибки могут не отображаться в процессе отладки. Например, ошибки в запросах условия, переданных addEncodedQuery()или аналогичным методом, можно получить, вызвав getErrors(). |
Возвращаемое значение:
Тип | Описание |
---|
Array of Strings | Значения ошибок. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getErrors |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('user');
const insertedRecordId = record.insert();
if (insertedRecordId == 0) {
ss.info(record.getErrors());
}
// Информация: ["Поле \"\"Логин\" [username]\" обязательно для заполнения. (id записи: )",... |
getLabel(property)
Используйте этот метод, чтобы получить заголовок поля.
Info |
---|
Метод getLabel() не используется с атрибутами REM. Вместо этого используйте метод getTitle(). |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
String | Название поля. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getLabel |
---|
linenumbers | true |
---|
|
const current = ss.getUser();
const fieldLabel = current.getLabel('username');
ss.addErrorMessage('Поле "' + fieldLabel + '" должно быть заполнено');
// Поле "Логин" должно быть заполнено |
getReModelId()
Используйте этот метод, чтобы извлечь получить ID расширенной модели записи, относящейся к текущей записи. Используйте метод setReModelId, чтобы установить новый ID модели.
Возвращаемое значение:
Тип | Описание |
---|
String | Метод возвращает ID модели. Если модель не найдена, метод возвращает значение 'null'. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getReModelId |
---|
linenumbers | true |
---|
|
(function executeRule(current, previous = null /*not null only when action is update*/) {
if (current.getReModelId()) {
const model = new SimpleRecord('sys_rmc_model');
model.get(current.getReModelId()); // current model
current.$$service = model.getValue('cmdb_service_id'); // Передает в сервис, если поле существует
}
})(current, previous); |
getRowCount()
Используйте этот метод, чтобы получить количество элементов в рядувыборке.
Возвращаемое значение:
Тип | Описание |
---|
Integer | Количество элементов в рядувыборке. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRowCount |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.query();
ss.addInfoMessage('Количество всех задач: ' + task.getRowCount());
//Количество всех задач: 2 |
getTableName()
Используйте этот метод, чтобы получить системное название текущей страницытаблицы.
Возвращаемое значение:
Тип | Описание |
---|
String | Системное название текущей таблицы. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getTableName |
---|
linenumbers | true |
---|
|
const current = ss.getUser();
ss.info('/list/' + current.getTableName() + '/' + current.sys_id);
// Информация: /list/user/155931135900000001 |
getTitle(attribute)
Метод возвращает заголовок , определенный атрибутом указанного атрибута расширенной модели записи (REM).
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
String | Метод возвращает заголовок атрибута REM. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getTitle |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163638951512716126');
if (current.sys_id) {
ss.info(current.rem_attr.getTitle('reviewed'));
}
// Информация: Проверка завершена |
getValue(property)
Этот метод возвращает значение свойства объекта на основе его имениуказанного атрибута объекта.
Если поле относится к типу " Reference " или " List", возвращается его значение sys_id.
Note |
---|
To speed up the script execution, use this method to get values of the fields of the Reference type instead of Используйте этот метод, чтобы получить значения полей типа Reference вместо Dot-walking. For example, it is preferable to use the Например, current.getValue('reference_field') structure instead of вместо current.reference_field.sys_id one. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет |
Возвращаемое значение:
Mixed строки свойства указанного атрибута объекта. |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getValue |
---|
linenumbers | true |
---|
|
const current = ss.getUser();
const user = new SimpleRecord('user');
user.addQuery('timezone_id', current.getValue('timezone_id'));
user.selectAttributes('sys_id');
user.query();
ss.info(user.getRowCount() + ' пользователя в вашем часовом поясе');
// Информация: 24 пользователя в вашем часовом поясе |
hasAttachment()
Используйте этот метод, чтобы проверить, имеет ли указанная запись вложение.
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает "true", если в записи есть вложение, если нет, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | hasAttachment |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163663310116371174');
const hasAttach = current.hasAttachment();
if (!hasAttach) {
ss.addErrorMessage('FileНужно shouldприкрепить be attachedфайл');
return;
}
current.state = '2'; // Открыто
current.update(); |
initialize()
Используйте этот метод, чтобы заполнить все активные пустые доступные поля предопределенными значениями по умолчанию.
Он подходит только для новых записей, которые никогда не сохранялись и не могут вызываться повторно..
Метод вызывается автоматически при первой операции установкисоздании записи.
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | initialize |
---|
linenumbers | true |
---|
|
const taskRecord = new SimpleRecord('task');
ss.info(taskRecord.getAttributes().caller);
taskRecord.initialize();
ss.info(taskRecord.getAttributes().caller);
// Информация:
// Информация: 155931135900000001 |
insert()
Этот метод использует значения полей текущей записи для вставки в новую записьобъекта для создания новой записи.
Если запись не вставленасоздана, метод возвращает «0» (ноль) и выводит генерирует сообщение об ошибке, которое можно получить с помощью метода getErrors().
Возвращаемое значение:
Тип | Описание |
---|
String | - Если запись не была добавленасоздана, метод возвращает '0'«0» (ноль), а так же генерирует сообщение со списком ошибок.
- Если запись была добавленасоздана, метод возвращает уникальный ID добавленной созданной записи.
|
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | insert |
---|
linenumbers | true |
---|
|
const newTask = new SimpleRecord('task');
newTask.subject = 'Subtask';
const inserterTaskIDinsertedTaskID = newTask.insert();
ss.info(`/record/task/${inserterTaskIDinsertedTaskID}`);
// Информация: /record/task/163675231910113745 |
isTableVcsEnabled()
Используйте этот метод, чтобы проверить был ли атрибут VCS enabled включен установлен ли флажок Контроль версий для указанной таблицы.
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает значение атрибута is_vcs_enabled таблицы записи. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | isTableVcsEnabled |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('user');
ss.info(current.isTableVcsEnabled());
// Информация: false |
matchesCondition(condition)
Используйте этот метод, чтобы проверить, соответствует ли текущая запись условию в текущем статусе.
Название | Тип | Обязательный | Значение по умолчанию |
---|
condition | String | Нет | '' |
Возвращаемое значение:
Тип | Описание |
---|
Boolean | Метод возвращает "true", если запись соответствует указанным условиям, в противном случае метод возвращает "false". |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | matchesCondition |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.description = 'emaio';
ss.info(task.matchesCondition('descriptionLIKEemail')); // false
task.description = 'email';
ss.info(task.matchesCondition('descriptionLIKEemail')); // true |
next()
Используйте этот метод, чтобы получить следующую запись в запросе.
Возвращаемое значение:
Тип | Описание |
---|
Record SimpleRecord object or Boolean | При первом вызове, метод возвращает первую запись в запросе. Если запрос пуст, метод возвращает "false". |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | next |
---|
linenumbers | true |
---|
|
const user = new SimpleRecord('user');
user.setLimit(1);
user.query();
user.next();
ss.info(user.sys_id);
// Информация: 100000000000000000 |
Note |
Пока метод не вызван, значения объекта SimpleRecord недоступны., и появляется сообщение «Текущая запись не установлена». См. пример
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | next |
---|
linenumbers | true |
---|
|
const taskuser = new SimpleRecord(' taskuser');
taskuser.setLimit(1);
taskuser.query();
// taskuser.next();
ss.info( taskuser. numbersys_id);
// ОшибкаИнформация: Текущая запись не установлена.100000000000000000 |
orderBy(column)
Используйте этот метод, чтобы отсортировать записи в порядке возрастания.
Tip |
---|
Исползуйте Используйте этот метод, чтобы отсортировать записи по нескольким колонкам. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | orderBy |
---|
linenumbers | true |
---|
|
const firstLog = new SimpleRecord('sys_log');
firstLog.orderBy('sys_created_at'); // oldestсначала recordстарые firstзаписи
firstLog.addQuery('message', 'like', 'Connection');
firstLog.setLimit(1);
firstLog.selectAttributes(['message', 'sys_created_at']);
firstLog.query();
firstLog.next();
ss.info(firstLog.sys_created_at + ' - ' + firstLog.message);
// Информация: 2021-06-03 06:34:02 - IMAP IMAP (Default): Connection error: ... |
orderByDesc(column)
Используйте этот метод, чтобы отсортировать записи в порядке убывания.
Tip |
---|
Используйте этот метод, чтобы отсортировать записи по нескольким колонкам. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | orderByDesc |
---|
linenumbers | true |
---|
|
const lastComment = new SimpleRecord('sys_activities_stream_field');
lastComment.orderByDesc('sys_created_at'); // сначала новая запись
lastComment.setLimit(1);
lastComment.selectAttributes(['value', 'sys_created_by']);
lastComment.query();
lastComment.next();
ss.info(lastComment.sys_created_by.display_name + ': ' + lastComment.value);
// Информация: Иван Иванов: Тестовый комментарий |
query()
Используйте этот метод, чтобы применить запрос к выбору для получения выборки из базы данных. После этого метод заполняет набор записейВыборка будет сохранена в объекте, для которого этот метод был вызван.
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | query |
---|
linenumbers | true |
---|
|
const tasks = new SimpleRecord('task');
tasks.addQuery('sys_created_at', '>', '2020-01-01');
tasks.orderBy('sys_created_at');
tasks.setLimit(2);
tasks.query();
while (tasks.next()) {
ss.info('Номер задачи: ' + tasks.number);
}
// Информация: Номер задачи: TSK0000001
// Информация: Номер задачи: TSK0000003 |
selectAttributes(attributes)
Используйте этот метод для оптимизации запросов к базе данных, особенно когда необходимо получить только несколько полей объекта, а не весь объект.
Warning |
---|
Не используйте этот метод для выбора записей, которые можно нужно обновить или удалить после выбора. В противном случае некоторые значения полей записи могут быть потеряны при их обновлении или удалении. Выполненное действие также может вызвать следующее исключение, подобное следующему: Info |
---|
Вы не можете обновить запись с набором сокращенных атрибутов. Удалите вызов метода selectAttributes и обновите снова. |
|
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|
attributes | String / Array | Да | Нет |
Info |
---|
Рекомендуется передавать значение одного атрибута в качестве строки. Для передачи большего количества название аттрибутоватрибутов, используйте массив, как в примере ниже. |
Возвращаемое значение:
Тип | Описание |
---|
SimpleRecord object | Метод возвращает объект SimpleRecord, содержащий атрибуты и значения. Note |
---|
Независимо от исходного содержимого набора атрибутов, возвращаемый объект всегда содержит атрибут sys_id. Смотрите пример ниже. |
|
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | selectAttributes (String) |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('user');
record.selectAttributes('email');
record.query();
record.next();
ss.info(record.getAttributes());
// Информация: {"email":"ivan.ivanov@email.com","sys_id":"162423321917274937"} |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | selectAttributes (Array) |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('user');
record.selectAttributes(['email', 'username']);
record.query();
record.next();
ss.info(record.getAttributes());
// Информация: {"email":"john.doe@email.com","username":"john.doe","sys_id":"162423321917274937"} |
setAbortAction(flag)
Используйте этот метод в бизнес-правилах для настройки флажка, обозначающего прерванность текущей операции (добавить/обновить/удалить).
Note |
---|
Важно, что код не выполняется, если он написан после вызова данного метода в теле скрипта. |
Note |
---|
Не рекомендуется использовать этот метод с бизнес-правилами async, так как это может привести к непредсказуемому поведению системы. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
flag | Boolean | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setAbortAction |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('163663310116371174');
const hasAttach = current.hasAttachment();
if (!hasAttach) {
ss.addErrorMessage('File should be attached!');
current.setAbortAction(true);
}
current.state = '2'; // Открыто
current.update(); |
setLimit(maxNumRecords)
Используйте этот метод, чтобы ограничить количество записей, выбранных при помощи методов запроса SimpleRecord.
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|
maxNumRecords | Integer | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setLimit |
---|
linenumbers | true |
---|
|
const record = new SimpleRecord('user');
record.setLimit(3);
record.query();
ss.info(record.getRowCount());
// Информация: 3 |
setMultipleValue(property,value)
Используйте этот метод, чтобы установить значения свойств для каждой записи в текущей выборке.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setMultipleValue |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.addQuery('state', '7'); // Черновик
task.query();
ss.info(task.getRowCount());
task.setMultipleValue('state', '2'); // Открыто
// task.updateMultiple(); |
setReModelId(reModelId)
Используйте этот метод, чтобы установить ID определенной модели расширенной записи. Чтобы получить ID модели, используйте метод getReModelId.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
reModelId | String | Да | Нет |
Если параметр reModelId равен "null", модель расширенной записи, относящейся к записи, будет отвязана.
Возвращаемое значение:
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getReModelId |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.get('163352033916904699');
if (task.getValue('service') === '164069027812962298') { // Email Server Service
task.setReModelId('158569205818704980'); // Email Server Access Request
} else {
task.setReModelId(null);
}
task.update(); |
Note |
---|
При вызове данного метода на экземпляре SimpleRecord(), значения его атрибутов, привязанных к предыдущей модели, будут сброшены. После вызова данного метода и обновления текущей записи значения атрибута, привязанного к предыдущей модели будут утеряны. |
setValue(property, value)
Используйте этот метод, чтобы установить значение поля в текущей записи.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
property | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Этот метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setValue |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.setValue('subject', 'mail');
task.insert(); |
silentMode(enable)
Используйте этот метод для обновления записи без выполнения каких-либо элементов, связанных с этой записью, реализующих бизнес-логику, например бизнес-правила, уведомления, рабочие процессы и т. д.
Название | Тип | Обязательный | Значение по умолчанию |
---|
enable | Boolean | Нет | true |
Тип | Описание |
---|
Void | Метод не возвращает значение. |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | silentMode |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.addQuery('active', false);
task.addQuery('approval_state', 'isempty');
task.query();
ss.info(task.getRowCount());
task.silentMode();
task.setMultipleValue('approval_state', 'not_requested'); // set Default Value
//task.updateMultiple(); |
update()
Используйте этот метод для обновления записи базы данных.
Info |
---|
Используйте этот метод для существующих записей. - Измененияя буду применены, если запись уже существовала.
- Если запись ранее не существовала, метд getErrors() вернет сообщение об ошибке:
"Невозможно обновить новую запись. Используйте для этого `insert()`. (record id: )"
|
Возвращаемое значение:
Тип | Описание |
---|
String | - Если запись не была обновлена, метод возвращает '0' и сообщение со списком ошибок.
- При отсутствии ошибок метод возвращает ID обновленной записи.
|
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | update |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('user');
current.get(ss.getUserId());
current.timezone_id = '156076775207670452'; // UTC
ss.info(current.update());
ss.info(current.getErrors());
// Информация: 155931135900000001
// Информация: [] |
updateMultiple()
Используйте этот метод, чтобы обновить все записи выбора.
Возвращаемое значение:
Тип | Описание |
---|
Void или Integer | - Если произошли ошибки проверки и запись не была обновлена, метод возвращает «0» и сообщение со списком ошибок.
- При отсутствии ошибок метод не возвращает значение.
|
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | updateMultiple |
---|
linenumbers | true |
---|
|
const task = new SimpleRecord('task');
task.addQuery('state', '0'); // Открыто
task.query();
ss.info(task.getRowCount());
task.setMultipleValue('state', '10'); // Отменено
// task.updateMultiple(); |