В контексте серверного JavaScript для работы с Records API добавлен сервис Records, который доступен в глобальном контексте.
Класс сервиса: ru.citeck.ecos.records.script.RepoScriptRecordsService
В сервисе предусмотрены следующие методы:
Возвращаемое значение | Название метода | Аргументы (* - обязательный) |
---|---|---|
Any (в зависимости от attributes) | getAtts | record*: RecordRef, attributes*: RecordAttributes |
Record | get | record*: RecordRef |
QueryRes | query | query*: RecsQuery, attributes: RecordAttributes |
Типы:
- RecordRef - ссылка на запись. Допустимые значения: NodeRef, RecordRef, ScriptNode, String;
- Record - инстанс записи, у которой можно запросить атрибуты или записать туда атрибуты;
- QueryRes - результат поиска;
- RecsQuery - запрос на поиск записей;
- RecordAttributes - атрибуты для получения. Допустимо передавать String или String[] или Map<String, String>.
Возможные варианты:
- Если мы передаем string, то получаем обычное значение (строка, число и тд.).
- Если мы передаем массив ["aa", "bb"], то это эквивалентно объекту (Map) {"aa":"aa","bb":"cc"}
- Если мы передаем объект (Map), то в результате получим тот же объект, но вместо значений исходного объекта будут значения атрибутов. Пример:
Пример:
{"disp": "cm:title"} -> {"disp": "Договор №2"}
- getAtts - получить атрибуты по заранее известной записи или записям (допускается массив);
- get - получить инстанс записи, с которым можно проводить операции чтения/записи атрибутов;
- query - выполнить поисковый запрос для получения записей.
Описание Record:
Возвращаемое значение | Название метода | Аргументы (* - обязательный) |
---|---|---|
RecordRef | getRef | - |
String | getLocalId | - |
Any (в зависимости от attributes) | load | attributes*: RecordAttributes |
- | att | name*: String, value*: Any |
Record | save | - |
- getRef - получить RecordRef записи;
- getLocalId - получить локальный идентификатор записи;
- load - загрузить атрибуты из записи. Описание аргумента RecordAttributes см выше;
- att - установить значение некоторого атрибута в записи. Без вызова save ничего с реальной записью не происходит;
- save - сохранить изменения, которые сделаны с записью через метод att.
Методы att и save доступны с версии ecos-community-core 4.1.0
Поиск записей:
var result = Records.query({ sourceId: '', query: 'TYPE:"cm:person"', language: 'fts-alfresco' }, ['cm:userName', 'cm:firstName']).records;
Загрузка атрибутов записи:
var result = Records.getAtts(['people@admin', 'people@fet'], {'aa': 'cm:userName'}); --- var result = Records.get('people@admin').load(['cm:userName', 'cm:firstName']) ; --- var result = Records.get('people@admin').load('cm:firstName');
Изменение записи:
var rec = Records.get('workspace://SpacesStore/c34da292-fa35-4593-a08b-0e3a2c675db7'); rec.att('idocs:note', 'Some Value'); rec.att('ecos:documentAmount', 123); rec.save();