SimpleRecord
Этот серверный класс содержит методы для работы с записями базы данных.
SimpleRecord(tableName)
Используйте этот конструктор для создания объекта класса SimpleRecord для конкретной таблицы.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
tableName | String | Да | Нет |
Пример:
const taskRecord = new SimpleRecord('task');
REM-атрибуты объекта
В к лассе SimpleRecord имеется отдельный объект расширенной модели записи (REM) – rem_attr, который содержит информацию о REM-атрибутах. Используйте его для чтения и редактирования значений REM-атрибутов текущей записи с помощью методов класса, как в примере ниже.
rem_attr имеет несколько методов, аналогичных методам SimpleRecord:
Пример:
record.rem_attr.getValue('my_rem_attribute');
Пример:
const record = new SimpleRecord('task');
record.get('160638931615274614');
if (record.getReModelId()) {
ss.info(record.rem_attr.description);
}
Объект SimpleReference
При обращении к ссылочным полям в ответ приходит специальный объект SimpleReference, позволяющий обращаться через dot-walking к полям объекта, указанного в ссылочном поле.
Объект SimpleReference имеет несколько методов, аналогичных методам SimpleRecord:
Пример:
let record = new SimpleRecord('task');
record.setLimit(1);
record.query();
record.next();
ss.info(record.caller.getValue('username'));
addOrCondition(property, operator, value)
Используйте метод, чтобы добавить условие ИЛИ к существующему запросу. Он работает в сочетании с методом addQuery(). В этом методе вы можете использовать необходимый оператор из списка операторов условий, указанный в нижнем или верхнем регистре. Используйте системные имена операторов в скриптах.
Вы также можете задавать атрибуты расширенной модели записи (REM-атрибуты) определенной таблицы. Чтобы отфильтровать записи, используйте операторы, соответствующие типу атрибута.
Условие может содержать критерии на основе атрибутов из разных моделей. Если такие критерии создаются с использованием оператора И, выборка записей будет пуста. Чтобы отобразить записи соответствующие условию, используйте оператор ИЛИ.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
property | String | Да | Нет Для REM-атрибутов используйте следующий паттерн: '<sys_id>:<attr_name>' где sys_id – ID модели, которая содержит атрибут, и attr_name – системное имя REM-атрибута. |
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}. Пример скрипта:
SimpleRecord как аргумент
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