Этот серверный класс содержит методы для работы с записями базы данных.
Используйте этот конструктор для создания объекта класса SimpleRecord для конкретной таблицы.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
tableName | String | Да | Нет |
Пример:
const taskRecord = new SimpleRecord('task'); |
В классе SimpleRecord имеется отдельный объект расширенной модели записи (REM) – rem_attr, который содержит информацию о REM-атрибутах. Используйте его для чтения и редактирования значений REM-атрибутов текущей записи с помощью методов класса, как в примере ниже.
rem_attr имеет несколько методов, аналогичных методам SimpleRecord: Например:
|
Пример:
const record = new SimpleRecord('task'); record.get('160638931615274614'); if (record.getReModelId()) { ss.info(record.rem_attr.description); } |
При обращении к ссылочным полям в ответ приходит специальный объект SimpleReference, позволяющий обращаться через dot-walking к полям объекта, указанного в ссылочном поле.
Объект SimpleReference имеет несколько методов, аналогичных методам SimpleRecord: |
Пример:
let record = new SimpleRecord('task'); record.setLimit(1); record.query(); record.next(); ss.info(record.caller.getValue('username')); |
Используйте метод, чтобы добавить условие ИЛИ к существующему запросу. Он работает в сочетании с методом addQuery(). В этом методе вы можете использовать необходимый оператор из списка операторов условий, указанный в нижнем или верхнем регистре. Используйте системные имена операторов в скриптах.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы, соответствующие типу атрибута.
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию | |
---|---|---|---|---|
property | String | Да | Нет
| |
operator | String | Нет | = | |
value | Integer/String/Boolean/Array/SimpleReference object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRecord object | Метод возвращает экземпляр, на котором был вызван. |
Примеры:
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) |
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) |
В качестве значения для метода addOrCondition() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта:
|
Используйте этот метод, чтобы добавить условие для выбора записей из базы данных. В этом методе вы можете использовать необходимый оператор из списка операторы условия, указанный в нижнем или в верхнем регистре. Используйте системные имена операторов в скриптах.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы, соответствующие типу атрибута.
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию | |
---|---|---|---|---|
property | String | Да | Нет
| |
operator | String | Нет | = | |
value | Integer/String/Boolean/Array/SimpleReference object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRecord object | Метод возвращает экземпляр, на котором был вызван. |
Примеры:
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 |
let record = new SimpleRecord('task'); record.addQuery('166972638116358001:description', 'not work'); record.query(); ss.info("Всего записей: " + record.getRowCount()); // Информация: Всего записей: 1 |
В качестве значения для метода addQuery() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта:
|
Используйте данный метод, чтобы добавить закодированное условие для выбора записей из базы данных. Допустимо использование декодированного условия.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы, соответствующие типу атрибута.
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ. |
При настройке фильтрации по текстовым полям String, Text, Translated Text, Conditions и URL используйте фигурные скобки для аргумента фильтрации. Запись аргумента в круглых скобках может вызвать ошибку фильтрации:
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 | Да | Нет
|
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Примеры:
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)) |
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)) |
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю создание записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если действие разрешено, если нет, метод возвращает false. |
Пример:
current.canCreate(); |
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю удаление записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если действие разрешено, если нет, метод возвращает false. |
Пример:
current.canDelete(); |
Используйте этот метод, чтобы проверить, доступен ли текущему пользователю просмотр записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если действие разрешено, если нет, метод возвращает false. |
Пример:
current.canRead(); |
Используйте этот метод, чтобы проверить, доступно ли текущему пользователю редактирование записей в указанной таблице по правилам контроля доступа (ACL).
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если действие разрешено, если нет, метод возвращает false. |
Пример:
current.canUpdate(); |
Используйте этот метод, чтобы удалить записи из полученной выборки. Вложения удаляемых записей не удаляются.
Не используйте этот метод для таблиц с зависимостями. Всегда удаляйте каждую запись по отдельности. |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает true, если записи успешно удалены, в случае ошибки метод возвращает значение false. |
Пример:
const record = new SimpleRecord('sys_activity_feed_item'); record.addQuery('content', 'isempty'); record.query(); ss.info(record.getRowCount()); ss.info(record.deleteMultiple()); // Информация: 0 // Информация: true |
Используйте этот метод для удаления записи.
При вызове метода в выборке записей с указанием параметра, удаляется запись с конкретным ID. При отсутствии параметра id будет удалена текущая запись.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
id | String | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если запись успешно удалена, в случае ошибки метод возвращает значение false. |
Пример:
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()); |
Используйте этот метод, чтобы загрузить объект из базы данных по значению поля или, в некоторых случаях, по ID. Параметр propertyOrValue принимает значение ID записи или имени свойства. Если значение равно имени свойства, второй параметр value является обязательным.
Передача значения null или пустой строки в качестве значения параметра propertyOrValue ведет к исключению:
|
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
propertyOrValue | String | Да | Нет |
value | String | Нет | null |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRecord object | Метод возвращает объект SimpleRecord из таблицы, указанной в запросе. |
Пример:
const current = new SimpleRecord('task'); current.get('163663310116371174'); |
В качестве значения для метода get() вместо ID записи может быть передано значение из Reference поля в формате current.{reference_field_name}. Пример скрипта:
|
Используйте метод, чтобы получить объект с атрибутами текущей записи в качестве ключей и значений ключей.
Возвращаемое значение:
Тип | Описание |
---|---|
Object | Метод возвращает объект с атрибутами записи и их значениями. |
Пример:
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... |
Используйте метод, чтобы получить заголовок текущей таблицы.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает заголовок таблицы записи. |
Пример:
const current = new SimpleRecord('task'); current.get('163663310116371174'); ss.info(current.getClassDisplayValue()); // Информация: Задачи |
Используйте метод, чтобы получить текущее условие запроса.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает условие запроса. |
Пример:
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) // Информация: Условие после: |
Используйте метод, чтобы получить отображаемое значение параметра записи. Например, для поля Reference возвращается название сущности, а не ID.
Без параметра данный метод возвращает отображаемое значение записи из поля с установленным флажком Отображаемое поле.
В таблице представлены отображаемые значения в серверных скриптах по типам колонок.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
property | String | Нет | null |
Возвращаемое значение:
Type | Описание |
---|---|
String | Метод возвращает отображаемое значение записи или поля. |
Пример:
const current = new SimpleRecord('task'); current.get('163663310116371174'); ss.info(current.getDisplayValue('caller')); ss.info(current.getValue('caller')); // Информация: Иван Иванов // Информация: 155931135900000001 |
Используйте этот метод, чтобы получить сообщения об ошибке в случае сбоя при создании, обновлении или удалении записи.
Используйте этот метод для контроля проведения операции с записью в скрипте.
Настоятельно рекомендуется использовать данный метод, так как некоторые ошибки могут не отображаться в процессе отладки. Например, ошибки в запросах условия, переданных addEncodedQuery() или аналогичным методом, можно получить, вызвав getErrors(). |
Возвращаемое значение:
Тип | Описание |
---|---|
Array of Strings | Метод возвращает значения ошибок. |
Пример:
const record = new SimpleRecord('user'); const insertedRecordId = record.insert(); if (insertedRecordId == 0) { ss.info(record.getErrors()); } // Информация: ["Поле \"\"Логин\" [username]\" обязательно для заполнения. (id записи: )",... |
Используйте этот метод, чтобы получить заголовок поля.
Метод getLabel() не используется с атрибутами REM. Вместо этого используйте метод getTitle(). |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
property | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает название поля. |
Пример:
const current = ss.getUser(); const fieldLabel = current.getLabel('username'); ss.addErrorMessage('Поле "' + fieldLabel + '" должно быть заполнено'); // Поле "Логин" должно быть заполнено |
Используйте этот метод, чтобы получить ID расширенной модели записи, относящейся к текущей записи. Используйте метод setReModelId, чтобы установить новый ID модели.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает ID модели. Если модель не найдена, метод возвращает значение null. |
Пример:
(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.$$service = model.getValue('cmdb_service_id'); // Передает в сервис, если поле существует } })(current, previous); |
Используйте этот метод, чтобы получить количество элементов в выборке.
Возвращаемое значение:
Тип | Описание |
---|---|
Integer | Метод возвращает количество элементов в выборке. |
Пример:
const task = new SimpleRecord('task'); task.query(); ss.addInfoMessage('Количество всех задач: ' + task.getRowCount()); //Количество всех задач: 2 |
Используйте этот метод, чтобы получить системное название текущей таблицы.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает cистемное название текущей таблицы. |
Пример:
const current = ss.getUser(); ss.info('/list/' + current.getTableName() + '/' + current.sys_id); // Информация: /list/user/155931135900000001 |
Используйте метод, чтобы получить заголовок указанного атрибута расширенной модели записи (REM).
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает заголовок атрибута REM. |
Пример:
const current = new SimpleRecord('task'); current.get('163638951512716126'); if (current.sys_id) { ss.info(current.rem_attr.getTitle('reviewed')); } // Информация: Проверка завершена const current = new SimpleRecord('task'); current.get('163638951512716126'); if (current.sys_id) { ss.info(current.rem_attr.getTitle('reviewed')); } // Информация: Проверка завершена |
Чтобы вернуть колонки, заголовки которых не являются частью модели расширенной записи, используйте метод getLabel(). |
Используйте метод, чтобы получить значение указанного атрибута объекта.
Если поле относится к типу Reference или List, возвращается его значение ID.
В таблице представлены отображаемые значения в серверных скриптах по типам колонок.
Используйте этот метод, чтобы получить значения полей типа Reference вместо dot-walking. Например, current.getValue('reference_field') вместо current.reference_field.sys_id. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
property | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Any | Метод возвращает значение указанного атрибута объекта. |
Пример:
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 пользователя в вашем часовом поясе |
Вы также можете обратиться напрямую к значению ссылочного поля с учетом контекста используя оператор '$$'. Это позволяет проверить наличие дополнительных полей и получить их значение. Подробнее читайте в статье Использование dot-walking в скриптах. |
Используйте этот метод, чтобы проверить, имеет ли указанная запись вложение.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает true, если в записи есть вложение, если нет, метод возвращает false. |
Пример:
const current = new SimpleRecord('task'); current.get('163663310116371174'); const hasAttach = current.hasAttachment(); if (!hasAttach) { ss.addErrorMessage('Нужно прикрепить файл'); return; } current.state = '2'; // Открыто current.update(); |
Используйте этот метод, чтобы заполнить все доступные поля предопределенными значениями по умолчанию.
Он подходит только для новых записей, которые никогда не сохранялись.
Метод вызывается автоматически при создании записи.
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const taskRecord = new SimpleRecord('task'); ss.info(taskRecord.getAttributes().caller); taskRecord.initialize(); ss.info(taskRecord.getAttributes().caller); // Информация: // Информация: 155931135900000001 |
Используйте метод, чтобы создать новую запись со значения полей объекта.
Если запись не создана, метод возвращает '0' (ноль) и генерирует сообщение об ошибке, которое можно получить с помощью метода getErrors().
Возвращаемое значение:
Тип | Описание |
---|---|
String |
|
Пример:
const newTask = new SimpleRecord('task'); newTask.subject = 'Subtask'; const insertedTaskID = newTask.insert(); ss.info(`/record/task/${insertedTaskID}`); // Информация: /record/task/163675231910113745 |
Используйте этот метод, чтобы проверить установлен ли флажок Контроль версий для указанной таблицы.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение атрибута Контроль версий таблицы записи. |
Пример:
const current = new SimpleRecord('user'); ss.info(current.isTableVcsEnabled()); // Информация: false |
Используйте этот метод, чтобы проверить, соответствует ли текущая запись условию.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
condition | String | Нет | '' |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает true, если запись соответствует указанным условиям, в противном случае метод возвращает false. |
Пример:
const task = new SimpleRecord('task'); task.description = 'emaio'; ss.info(task.matchesCondition('descriptionLIKEemail')); // false task.description = 'email'; ss.info(task.matchesCondition('descriptionLIKEemail')); // true |
Используйте этот метод, чтобы получить следующую запись в запросе.
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRecord object или Boolean | При первом вызове, метод возвращает первую запись в запросе. Если запрос пуст, метод возвращает false. |
Пример:
const user = new SimpleRecord('user'); user.setLimit(1); user.query(); user.next(); ss.info(user.sys_id); // Информация: 100000000000000000 |
Используйте этот метод, чтобы отсортировать записи в порядке возрастания.
Используйте этот метод несколько раз, чтобы отсортировать записи по нескольким колонкам. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const firstLog = new SimpleRecord('sys_log'); firstLog.orderBy('sys_created_at'); // сначала старые записи 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): Ошибка соединения: ... |
Используйте этот метод, чтобы отсортировать записи в порядке убывания.
Используйте этот метод несколько раз, чтобы отсортировать записи по нескольким колонкам. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
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); // Информация: Иван Иванов: Тестовый комментарий |
Используйте этот метод, чтобы применить запрос для получения выборки из базы данных. Выборка будет сохранена в объекте, для которого этот метод был вызван.
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
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 |
Используйте этот метод для оптимизации запросов к базе данных, особенно когда необходимо получить только несколько полей объекта, а не весь объект.
Не используйте этот метод для выбора записей, которые нужно обновить или удалить после выбора. Выполненное действие также может вызвать следующее исключение:
|
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
attributes | String/Array | Да | Нет |
Передавайте значение одного атрибута в качестве строки. Для передачи большего количества название атрибутов, используйте массив, как в примере ниже. |
Возвращаемое значение:
Тип | Описание | |
---|---|---|
SimpleRecord object | Метод возвращает объект SimpleRecord, содержащий атрибуты и значения.
|
Примеры:
const record = new SimpleRecord('user'); record.selectAttributes('email'); record.query(); record.next(); ss.info(record.getAttributes()); // Информация: {"email":"ivan.ivanov@email.com","sys_id":"162423321917274937"} |
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"} |
Используйте этот метод для прерывания текущей операции.
|
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
flag | Boolean | Да | Нет |
message | String | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const current = new SimpleRecord('task'); current.get('163663310116371174'); const hasAttach = current.hasAttachment(); if (!hasAttach) { ss.addErrorMessage('Нужно прикрепить вложение!'); current.setAbortAction(true); } current.state = '2'; // Открыто current.update(); |
Используйте этот метод, чтобы ограничить количество записей в выборке по условию.
Параметр:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
maxNumRecords | Integer | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('user'); record.setLimit(3); record.query(); ss.info(record.getRowCount()); // Информация: 3 |
Используйте этот метод, чтобы установить значения полей для каждой записи в текущей выборке.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
property | String | Да | Нет |
value | Any | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const task = new SimpleRecord('task'); task.addQuery('state', '7'); // Черновик task.query(); ss.info(task.getRowCount()); task.setMultipleValue('state', '2'); // Открыто // task.updateMultiple(); |
Используйте этот метод, чтобы установить ID определенной расширенной модели записи. Чтобы получить ID модели, используйте метод getReModelId.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
reModelId | String | Да | Нет |
Если параметр reModelId равен null, расширенная модель, относящаяся к записи, будет отвязана.
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const task = new SimpleRecord('task'); task.get('163352033916904699'); if (task.getValue('service') === '164069027812962298') { // Почтовый сервер task.setReModelId('158569205818704980'); // Запрос доступа к почтовому серверу } else { task.setReModelId(null); } task.update(); |
|
Пример:
(function executeRule(current, previous = null /*not null only when action is update*/ ) { // правило срабатывает при изменении услуги ss.importIncludeScript('getRemAttributes'); const rmc = new SimpleRecord('sys_rmc_model'); rmc.addQuery('cmdb_service_id', current.getValue('service')); rmc.addQuery('active', true); rmc.selectAttributes('sys_id'); rmc.setLimit(1); rmc.query(); if (rmc.next()) { const previousModelAttributes = getRemAttributes(current); current.setReModelId(rmc.sys_id); const currentModelAttributes = getRemAttributes(current); Object.keys(previousModelAttributes).forEach(attributeName => { if (currentModelAttributes.hasOwnProperty(attributeName)) { current.rem_attr[attributeName] = previousModelAttributes[attributeName]; } }) } else { current.setReModelId(null); } })(current, previous); |
Используйте этот метод, чтобы установить значение поля в текущей записи.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
property | String | Да | Нет |
value | Any | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const task = new SimpleRecord('task'); task.setValue('subject', 'mail'); task.insert(); |
Используйте этот метод для обновления записи без выполнения бизнес-логики, реализованной бизнес-правилами, уведомлениями, рабочими процессами и другими.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
enable | Boolean | Нет | true |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
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'); // задает значение по умолчанию //task.updateMultiple(); |
Используйте этот метод для обновления записи в базе данных.
Используйте этот метод для существующих записей.
|
Возвращаемое значение:
Тип | Описание |
---|---|
String |
|
Пример:
const current = new SimpleRecord('user'); current.get(ss.getUserId()); current.timezone_id = '156076775207670452'; // UTC ss.info(current.update()); ss.info(current.getErrors()); // Информация: 155931135900000001 // Информация: [] |
Используйте этот метод для обновления всех записей выборки.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean |
|
Пример:
const task = new SimpleRecord('task'); task.addQuery('state', '0'); // Открыто task.query(); ss.info(task.getRowCount()); task.setMultipleValue('state', '10'); // Отменено // task.updateMultiple(); |