Создание нового экземпляра карточки

Базовый API

Менеджер карточек базового API предоставляет метод CreateCardData для создания новых экземпляров карточек определённого типа. В качестве примера, новый экземпляр карточки файла с версиями может быть создан следующим образом:

CardData card = userSession.CardManager.CreateCardData(new Guid("6E39AD2B-E930-4D20-AAFA-C2ECF812C2B3")); (1) (2)
1 userSession — пользовательская сессия.
2 6E39AD2B-E930-4D20-AAFA-C2ECF812C2B3 — идентификатор карточки типа Карточка файла с версиями.

Идентификатор типа карточки можно посмотреть в разделе Описание полей стандартной карточки, либо в схеме карточки, например, используя программу "CardManager" из комплекта "Resource Kit".

Если необходимо создать карточку с определённым идентификатором, можно воспользоваться соответствующей перегрузкой метода:

CardData card = userSession.CardManager.CreateCardData(new Guid("6E39AD2B-E930-4D20-AAFA-C2ECF812C2B3"), newCardId); (1)
1 newCardId — идентификатор создаваемой карточки.

После создания экземпляра карточки, если необходимо, её данные могут быть изменены по аналогии с примером, приведенным в разделе Изменение данных карточки. Возможность изменения определённых данных карточки, а также тип этих данных определяются типом карточки, описание которых приведено в разделе Описание полей стандартной карточки.

Объектная модель

API данного уровня не предлагает отдельного метода для создания нового экземпляра карточки. Данная задача распределена между преобразователем данных соответствующего типа карточки и сервисом для работы с этим типом карточек.

Полное описание сервисов, предоставляемых в рамках базовой поставки Docsvision, было приведено в разделе Сервисы объектной модели, также можно обращаться к описанию интерфейсов сервисов в разделе Библиотека классов.

Далее приведён пример использования методов для создания карточек типа документ и задание:

IDocumentService documentService = objectContext.GetService<IDocumentService>(); (1)
ITaskService taskService = objectContext.GetService<ITaskService>(); (2)

Document document = documentService.CreateDocument(); (3)

Task taks = taskService.CreateTask(); (4)

objectContext.AcceptChanges(); (5)
1 Получаем из контекста объектов два сервиса: для работы с документами и для работы с заданиями.
2 Метод GetService возвращает сервис по его интерфейсу.
3 Создаем экземпляр карточки типа Документ.
4 Создаем экземпляр карточки типа Задание.
5 Сохраняем все изменения контекста объектов.
Как видно из примера, типовой сценарий создания экземпляра карточки включает три шага:
  1. Получение сервиса для работы с карточками определённого типа.

  2. Вызов метода, отвечающего за создание карточки.

  3. Сохранение изменений методами ObjectContext.AcceptChanges или ObjectContext.SaveObject.

Перед сохранением данных, если необходимо, можно изменить данные карточки.