Отношения CMIS -> Список объектов (документов или папок) по типу отношений - PullRequest
0 голосов
/ 31 мая 2019

Доброе утро.

У меня есть несколько типов отношений, созданных в пользовательской модели.Используя CMIS, есть ли способ поиска ассоциаций по типу?Чтобы получить все исходные или целевые документы или папки, которые используют эту связь?

Я оценил использование запроса в CMIS, чтобы получить идентификаторы документов, но невозможно использовать запросв отношениях (если я хорошо понимаю).

Например, у меня есть 4 процесса A;B, C и D, с каждым из которых связано несколько документов.

Процесс A ----> тип отношений ---> sc.fatura

Процесс B ----> типотношений ---> sc.contrato

процесс C ----> тип отношений ---> sc.acta

процесс D ----> тип отношений --> sc.fatura

При поиске контракта вы получите все документы, связанные с процессом B. При поиске sc.fatura вы получите все документы в процессах A и D.

Можно ли сделать что-то подобное с помощью CMIS?

Спасибо за помощь

1 Ответ

0 голосов
/ 26 июля 2019

Обычно при фильтрации результатов вы пытаетесь использовать OperationContext.Я думал, что может быть способ сказать OC фильтровать к определенному типу отношений, но это не похоже на это.Поэтому я думаю, что лучшее, что вы можете сделать, это отфильтровать его самостоятельно, проверив идентификатор типа отношения, например:

Session session = getSession();

// Dump the object's associations
OperationContext oc = new OperationContextImpl();
oc.setIncludeRelationships(IncludeRelationships.SOURCE);

Document sourceDoc = (Document) session.getObject(session.createObjectId(sourceObjectId), oc);
List<Relationship> relList = sourceDoc.getRelationships();
System.out.println("Associations of objectId: " + sourceObjectId);
for (Relationship rel : relList) {
    // In this example I only want relationships of type sc:exampleRel1
    if ("R:sc:exampleRel1".equals(rel.getRelationshipType().getId())) {
        System.out.println("    " + rel.getTarget().getId());
    }
}
...