JavaScript Records API

Общее

В контексте серверного 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>.

Возможные варианты:

  1. Если мы передаем string, то получаем обычное значение (строка, число и тд.).

  2. Если мы передаем массив [«aa», «bb»], то это эквивалентно объекту (Map) {"aa":"aa","bb":"cc"}

  3. Если мы передаем объект (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();