Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Этот серверный класс содержит методы для работы с записями базы данных.

SimpleRecord(tableName)


Используйте этот конструктор для создания объекта класса SimpleRecord для конкретной таблицы.


Параметры:

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

Пример:

Code Block
languagejs
themeEclipse
titleSimpleRecord
linenumberstrue
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
languagejs
themeEclipse
titleget using REM
linenumberstrue
const record = new SimpleRecord('task');
record.get('160638931615274614');
if (record.getReModelId()) {
    ss.info(record.rem_attr.description);
}

addOrCondition(property, operator, value)


Этот метод добавляет ИЛИ условие к существующему запросу. Он работает в сочетании с методом addQuery(). В этом методе вы можете использовать необходимый оператор из списка операторов условий, указанный в нижнем или верхнем регистре. Обратите внимание, что необходимо использовать системное имя оператора в скриптах.

Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы соответствующие типу атрибута. 

Note

Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ.


Параметры:

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

Нет


Info

Для REM-атрибутов используйте следующий паттерн:

'<sys_id>:<attr_name>',

где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута.


operatorString (больше информации в статье Операторы условий)Нет=
valueInteger / String / Boolean / Array / SimpleRecord objectДаНет


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

ТипОписание
SimpleRecordЗапрос содержащий объект SimpleRecord или условие, добавленное к этому объекту.


Примеры:

Code Block
languagejs
themeEclipse
titleaddOrCondition
linenumberstrue
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
languagejs
themeEclipse
titleaddOrCondition c REM-атрибутом
linenumberstrue
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
languagejs
themeEclipse
titleSimpleRecord как аргумент
linenumberstrue
collapsetrue
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

Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ.

Параметры:

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

Нет

Info

Для REM-атрибутов используйте следующий паттерн:

'<sys_id>:<attr_name>',

где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута.


operatorString (больше информации в статье Операторы условий)Нет=
valueInteger / String / Boolean / Array / SimpleRecord objectДаНет


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

ТипОписание
SimpleRecordУсловие запроса добавленное в объект SimpleRecord.


Примеры:

Code Block
languagejs
themeEclipse
titleaddQuery
linenumberstrue
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
languagejs
themeEclipse
titleaddQuery с REM-атрибутом
linenumberstrue
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
languagejs
themeEclipse
titleSimpleRecord как аргумент
linenumberstrue
collapsetrue
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
languagejava
themeEclipse
titleФильтрация по текстовым полям
linenumberstrue
collapsetrue
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))
// Ошибка: Условие запроса неверное


Параметр:

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

Нет

Info

Для REM-атрибутов используйте следующий паттерн:

'<sys_id>%3A<attr_name>',

где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута.



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

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


Примеры:

Code Block
languagejs
themeEclipse
titleaddEncodedQuery
linenumberstrue
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
languagejs
themeEclipse
titleaddEncodedQuery с REM-атрибутом
linenumberstrue
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
languagejs
themeEclipse
titlecanCreate
linenumberstrue
current.canCreate();

canDelete()


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


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

ТипОписание
BooleanМетод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false".


Пример:

Code Block
languagejs
themeEclipse
titlecanDelete
linenumberstrue
current.canDelete();

canRead()


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


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

ТипОписание
BooleanМетод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false".


Пример:

Code Block
languagejs
themeEclipse
titlecanRead
linenumberstrue
current.canRead();


canUpdate()


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


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

ТипОписание
BooleanМетод возвращает значение "true", если действие разрешено, если нет, метод возвращает "false".


Пример:

Code Block
languagejs
themeEclipse
titlecanUpdate
linenumberstrue
current.canUpdate();

deleteMultiple()


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

Note

Не используйте этот метод для таблиц с зависимостями. Всегда удаляйте каждую запись по отдельности.


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

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


Пример:

Code Block
languagejs
themeEclipse
titledeleteMultiple
linenumberstrue
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, так и не указывать. В обоих случаях в результате удаляется сама запись. 

Параметры:

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

Нет


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

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


Пример:

Code Block
languagejs
themeEclipse
titledeleteRecord
linenumberstrue
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

String

Да

Нет

valueStringНетNULL


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

ТипОписание
SimpleRecord objectЭтот метод возвращает объект SimpleRecord из таблицы, указанной в запросе.


Пример:

Code Block
languagejs
themeEclipse
titleget
linenumberstrue
const current = new SimpleRecord('task');
current.get('163663310116371174');


Info

В качестве значения для методаget() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта:

Code Block
languagejs
themeEclipse
titleSimpleRecord как аргумент
linenumberstrue
collapsetrue
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
languagejs
themeEclipse
titlegetAttributes
linenumberstrue
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
languagejs
themeEclipse
titlegetClassDisplayValue
linenumberstrue
const current = new SimpleRecord('task');
current.get('163663310116371174');
ss.info(current.getClassDisplayValue());
// Информация: Задачи

getConditionQuery()


Метод возвращает текущее условие запроса.


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

ТипОписание
StringУсловие запроса.


Пример:

Code Block
languagejs
themeEclipse
titlegetConditionQuery
linenumberstrue
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.

Параметры:

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


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

TypeОписание
StringОтображаемое значение записи или поля.


Пример:

Code Block
languagejs
themeEclipse
titlegetDisplayValue
linenumberstrue
const current = new SimpleRecord('task');
current.get('163663310116371174');
ss.info(current.getDisplayValue('caller'));
ss.info(current.getValue('caller'));
// Информация: Иван Иванов
// Информация: 155931135900000001

getErrors() 
Anchor
getErrors()
getErrors()


Этот метод возвращает сообщения об ошибке в случае сбоя при создании, обновлении или удалении записи.

Используйте этот метод для контроля проведения операции с записью в скрипте.

Warning

Настоятельно рекомендуется использовать данный метод, так как некоторые ошибки могут не отображаться в процессе отладки.

Например, ошибки в запросах условия, переданных addEncodedQuery()или аналогичным методом, можно получить, вызвав getErrors().


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

ТипОписание
Array of StringsЗначения ошибок.


Пример:

Code Block
languagejs
themeEclipse
titlegetErrors
linenumberstrue
const record = new SimpleRecord('user');
const insertedRecordId = record.insert();
if (insertedRecordId == 0) {
  ss.info(record.getErrors());
}
// Информация: ["Поле \"\"Логин\" [username]\" обязательно для заполнения. (id записи: )",...


getLabel(property) 
Anchor
getLabel()
getLabel()


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

Info

Метод getLabel() не используется с атрибутами REM. Вместо этого используйте метод getTitle().


Параметры:

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


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

ТипОписание
StringНазвание поля.


Пример:

Code Block
languagejs
themeEclipse
titlegetLabel
linenumberstrue
const current = ss.getUser();
const fieldLabel = current.getLabel('username');
ss.addErrorMessage('Поле "' +  fieldLabel + '" должно быть заполнено');
// Поле "Логин" должно быть заполнено

getReModelId() 
Anchor
getremodelid
getremodelid


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


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

ТипОписание

String

Метод возвращает ID модели. Если модель не найдена, метод возвращает значение 'null'.

Пример:

Code Block
languagejs
themeEclipse
titlegetReModelId
linenumberstrue
(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
languagejs
themeEclipse
titlegetRowCount
linenumberstrue
const task = new SimpleRecord('task');
task.query();
ss.addInfoMessage('Количество всех задач: ' + task.getRowCount());
//Количество всех задач: 2


getTableName()


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


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

ТипОписание
StringСистемное название текущей таблицы.


Пример:

Code Block
languagejs
themeEclipse
titlegetTableName
linenumberstrue
const current = ss.getUser();
ss.info('/list/' + current.getTableName() + '/' + current.sys_id);
// Информация: /list/user/155931135900000001

getTitle(attribute) 
Anchor
getTitle()
getTitle()


Метод возвращает заголовок , определенный атрибутом указанного атрибута расширенной модели записи (REM).


Параметр:

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

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

ТипОписание
StringМетод возвращает заголовок атрибута REM.


Пример:

Code Block
languagejs
themeEclipse
titlegetTitle
linenumberstrue
const current = new SimpleRecord('task');
current.get('163638951512716126');
if (current.sys_id) {
    ss.info(current.rem_attr.getTitle('reviewed'));
}
// Информация: Проверка завершена


Info

Чтобы вернуть колонки, заголовки которых не являются частью модели расширенной записи, используйте метод   getLabel().

getValue(property) 
Anchor
getValue()
getValue()


Этот метод возвращает значение свойства объекта на основе его имениуказанного атрибута объекта.

Если поле относится к типу " 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.


Параметры:

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


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

ТипОписание
Mixed
Any

Значение

строки свойства

указанного атрибута объекта.


Code Block
languagejs
themeEclipse
titlegetValue
linenumberstrue
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
languagejs
themeEclipse
titlehasAttachment
linenumberstrue
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
languagejs
themeEclipse
titleinitialize
linenumberstrue
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
languagejs
themeEclipse
titleinsert
linenumberstrue
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
languagejs
themeEclipse
titleisTableVcsEnabled
linenumberstrue
const current = new SimpleRecord('user');
ss.info(current.isTableVcsEnabled());
// Информация: false


matchesCondition(condition)


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


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


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

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


Code Block
languagejs
themeEclipse
titlematchesCondition
linenumberstrue
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
languagejs
themeEclipse
titlenext
linenumberstrue
const user = new SimpleRecord('user');
user.setLimit(1);
user.query();
user.next();
ss.info(user.sys_id);
// Информация: 100000000000000000
NoteПока метод не вызван, значения объекта SimpleRecord недоступны., и появляется сообщение «Текущая запись не установлена». См. пример

".


Пример:

Code Block
languagejs
themeEclipse
titlenext
linenumberstrue
const 
task
user = new SimpleRecord('
task
user');
task
user.setLimit(1);
task
user.query();
// task
user.next();
ss.info(
task
user.
number
sys_id);
// 
Ошибка
Информация: 
Текущая запись не установлена.
100000000000000000

orderBy(column)


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


Tip

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


Параметры:

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


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

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


Пример:

Code Block
languagejs
themeEclipse
titleorderBy
linenumberstrue
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

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


Параметры:

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


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

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


Пример:

Code Block
languagejs
themeEclipse
titleorderByDesc
linenumberstrue
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
languagejs
themeEclipse
titlequery
linenumberstrue
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 и обновите снова.


Параметр:

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


Info

Рекомендуется передавать значение одного атрибута в качестве строки. Для передачи большего количества название аттрибутоватрибутов, используйте массив, как в примере ниже.


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

ТипОписание
SimpleRecord object

Метод возвращает объект SimpleRecord, содержащий атрибуты и значения.

Note

Независимо от исходного содержимого набора атрибутов, возвращаемый объект всегда содержит атрибут sys_id. Смотрите пример ниже.


Пример:

Code Block
languagejs
themeEclipse
titleselectAttributes (String)
linenumberstrue
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
languagejs
themeEclipse
titleselectAttributes (Array)
linenumberstrue
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, так как это может привести к непредсказуемому поведению системы.


Параметры:

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


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

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


Пример:

Code Block
languagejs
themeEclipse
titlesetAbortAction
linenumberstrue
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.


Параметр:

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


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

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


Пример:

Code Block
languagejs
themeEclipse
titlesetLimit
linenumberstrue
const record = new SimpleRecord('user');
record.setLimit(3);
record.query();
ss.info(record.getRowCount());
// Информация: 3


setMultipleValue(property,value)


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


Параметры:

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

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

ТипОписание
Void

Метод не возвращает значение.


Code Block
languagejs
themeEclipse
titlesetMultipleValue
linenumberstrue
const task = new SimpleRecord('task');
task.addQuery('state', '7'); // Черновик
task.query();
ss.info(task.getRowCount());
task.setMultipleValue('state', '2'); // Открыто
// task.updateMultiple();

setReModelId(reModelId) 
Anchor
setremodelid
setremodelid


Используйте этот метод, чтобы установить ID определенной модели расширенной записи. Чтобы получить ID модели, используйте метод getReModelId.

Параметры:

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

Если параметр reModelId равен "null", модель расширенной записи, относящейся к записи, будет отвязана.

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

ТипОписание
Void

Метод не возвращает значение.

Пример:

Code Block
languagejs
themeEclipse
titlegetReModelId
linenumberstrue
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) 
Anchor
setValue()
setValue()


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

Параметры:

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


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

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


Пример:

Code Block
languagejs
themeEclipse
titlesetValue
linenumberstrue
const task = new SimpleRecord('task');
task.setValue('subject', 'mail');
task.insert();


silentMode(enable)


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


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


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


Code Block
languagejs
themeEclipse
titlesilentMode
linenumberstrue
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
languagejs
themeEclipse
titleupdate
linenumberstrue
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
languagejs
themeEclipse
titleupdateMultiple
linenumberstrue
const task = new SimpleRecord('task');
task.addQuery('state', '0'); // Открыто
task.query();
ss.info(task.getRowCount());
task.setMultipleValue('state', '10'); // Отменено
// task.updateMultiple();


Table of Contents
absoluteUrltrue
printablefalse