Relations – связывание документов
<< Click to Display Table of Contents >> Объектная модель > Content – управление документами > ElectronicDocuments – документы Relations – связывание документов |
В системе можно связывать документы между собой для добавления смысловых взаимосвязей и быстрого перехода к связанным документам. Например, с договором можно связать весь необходимый комплект документов: приложения, дополнительные соглашения, акты и переписку по договору. Все связанные документы отображаются на закладке «Связи» в карточке документа.
Пользователь в Directum RX может связывать документы между собой. Администратор настраивает типы связей, которые предназначены для группировки связанных документов по их назначению. Например, договор может быть связан с входящим счетом типом связи Финансовые документы (FinancialDocuments), а с письмом типом связи Переписка (Correspondence). Кроме этого, добавление связей можно настроить программно. Например, чтобы при выполнении задания документы автоматически связывались между собой.
Создание связи, как правило, выполняется в событиях документа, на основании данных, полученных из свойств документа. Например, в событиях сущности «Создание», «До сохранения». Для связывания документов используются свойства документа:
•HasRelations – признак того, что у документа есть связи;
•Relations – связи с документами. Используется для программного связывания документов.
У связи есть две стороны: источник (Source) – текущий документ, от которого устанавливается связь, и назначение (Target) – документ, который привязывается к источнику. Например, если в карточке договора на закладке «Связи» устанавливается связь с приложением, то договор будет источником, а приложение – назначением. В этом случае, если в карточке договора нужно добавить связь с приложением, то используется метод Add(). Если в карточке приложения добавляется связь с договором, то используется метод AddFrom().
Методы свойства Relations
Имя |
Описание |
---|---|
Add() |
Добавить связь. Направление связи от текущего документа к связанному, то есть от источника к назначению, Source.Relations.Add(Target) |
AddFrom() |
Добавить связь. Направление от указанного документа к текущему, то есть от назначения к источнику, Target.Relations.AddFrom(Source) |
Добавить новую или обновить существующую связь |
|
Добавить новую или обновить существующую связь в направлении от указанного документа к текущему |
|
GetRelatedDocuments() |
Получить список документов, связанных с текущим в направлении от текущего документа к связанному |
GetRelatedFromDocuments() |
Получить список документов, связанных с текущим в направлении от связанного документа к текущему |
GetRelatedAndRelatedFromDocuments() |
Получить список документов, связанных с текущим в любом направлении |
GetRelated() |
Устаревший метод, оставлен для совместимости |
GetRelatedFrom() |
Устаревший метод, оставлен для совместимости |
Удалить связь с указанным документом |
|
Удалить связь в направлении от указанного документа к текущему |
|
Сохранить добавленные и удаленные связи. Созданные связи сохраняются вместе с сохранением документа, в событиях которого они созданы. Если связь создается вне контекста событий документа, то для сохранения созданных и удаленных связей необходимо вызвать данный метод |
Пример. Работа со связанными документами в событии «До сохранения»
public override void BeforeSave(Sungero.Domain.BeforeSaveEventArgs e)
{
// Получить связанные документы с типом связи «В ответ на».
var currentRelatedDocuments = _obj.Relations.GetRelated("В ответ на");
// Удалить старые связи с типом «В ответ на».
foreach(var document in currentRelatedDocuments)
_obj.Relations.Remove("В ответ на", document);
// Создать связь исходящего письма с входящим письмом, полученным
// из свойства IncomingLetter.
if (_obj.IncomingLetter != null);
_obj.Relations.Add("В ответ на", _obj.IncomingLetter);
}
© Компания Directum, 2024 |