Добавление связей между внешними типами контента
Дата последнего изменения: 4 мая 2010 г.
Применимо к: SharePoint Server 2010
В этой статье
Наиболее распространенный тип связи: один ко многим
Связи и BDC
Связи, поддерживаемые в SharePoint Designer 2010
Связи внешних типов контента на основе баз данных и на основе веб-служб
Выбор внешнего типа контента для создания связи
Обратная связь
Просмотр связей в пользовательском интерфейсе
В реальных приложениях часто требуется находить информацию, связанную с конкретной бизнес-сущностью или дополняющую ее. Например, может потребоваться дополнительная информация о профиле клиента, последние заказы, размещенные данным клиентом, или пять основных товаров, приобретаемых данным клиентом. Microsoft Business Connectivity Services (BCS) поддерживает возможность привязки к двум внешним типам контента для реализации подобных сценариев. Привязка к двум внешним типам контента называется связью.
Наиболее распространенный тип связи: один ко многим
Наиболее распространенным типом связи является связь "один ко многим" (или "основной/подробности"). В классическом сценарии "клиент-заказы" при задании связи Business Connectivity Services предоставляет следующие возможности:
При просмотре профиля клиента можно видеть заказы, отправленные данным клиентом (отчет "основной/подробности").
При просмотре заказа можно получить сведения о клиенте, разместившем этот заказ.
При создании заказа ему необходимо сопоставить клиента, однако для этого достаточно выбрать клиента из списка на форме создания заказа, а не пытаться угадать его первичный ключ (идентификатор). После выбора клиента будет отображаться его имя, а не первичный ключ.
При просмотре заказа можно просмотреть дополнительные сведения о клиенте, разместившем этот заказ (обратный просмотр).
Связи и BDC
Связь представляет собой экземпляр метода в подключения к бизнес-данным (BDC). В связи хранятся указатели на родительские и дочерние внешние типы контента, а также указатель на бизнес-логику (объект MethodInstance), позволяющую клиенту получить дочерний внешний тип контента из родительского внешнего типа контента. Обходом связи является вызов метода во внешней системе.
Экземпляр метода Association содержит гнезда для значений идентификаторов экземпляров SourceEntity и гнездо для значений идентификатора экземпляра DestinationEntity. Таким образом, необходимо предоставить достаточное количество входных объектов TypeDescriptor с идентификаторами, соответствующими каждому идентификатору каждого внешнего типа контента, который является источником в связи Association в методе Association. Атрибут IdentifierName входного объекта TypeDescriptor сигнализирует BDC о необходимости вставить перед выполнением метода релевантное значение идентификатора экземпляра EntityInstance. Предположим, например, что в экземпляре метода AssociationMethodInstance пользователь предоставил значения идентификатора для исходного экземпляра EntityInstance, который требовалось загрузить. BDC вставит это значение в данное гнездо после полной инициализации экземпляра данного параметра с использованием всех значений по умолчанию.
В модели BDC логика Association (MethodInstance) может быть задана в любом внешнем типе контента, как исходном, так и конечном, или в несвязанном внешнем типе контента, если конечный внешний тип контента относится к системе LobSystem, которая содержит экземпляр метода Association. Microsoft SharePoint Designer 2010 позволяет создавать связи; однако при этом требуется, чтобы связь была задана в конечном внешнем типе контента.
BDC также поддерживает несколько сценариев использования исходного внешнего типа контента и один сценарий использования конечного внешнего типа контента. SharePoint Designer 2010 не поддерживает подобный вид связи.
BDC также поддерживает связи без использования внешних ключей. Связи без использования внешних ключей не являются полноценными связями. Рассмотрим веб-метод, возвращающий клиента Customer, одним из полей которого является ключ адреса Address клиента Customer. Также рассмотрим другой веб-метод, возвращающий адрес Address по указанному ключу. Этот метод можно использовать как метод связи Customer-AddressAssociation (возможно, с методом SpecificFinder для адреса Address). Псевдосвязи на основе внешних ключей определяют, что целевым объектом этого метода является адрес Address, получают ключ адреса Address из возвращенного клиента Customer и вызывают метод Method этой связи, чтобы автоматически вернуть адрес Address.
Внимание! |
---|
Хотя модель BDC поддерживает псевдосвязи на основе внешних ключей, SharePoint Designer 2010 такие связи не поддерживает. Таким образом, в SharePoint Designer нельзя моделировать псевдосвязи на основе внешних ключей. |
Связи, поддерживаемые в SharePoint Designer 2010
В SharePoint Designer 2010внешних типов контента можно создавать связи "один ко многим" и связи, ссылающиеся на себя, которые представляют собой связанные экземпляры одного и того же внешнего типа контента. Все эти связи основаны на внешних ключах.
Связи "многие ко многим" без использования внешних ключей и связи с несколькими связанными внешними типами контента необходимо создавать вручную в редакторе XML или в Visual Studio 2010. Чтобы изучить внешних типов контента в Visual Studio 2010 и научиться создавать связи, посмотрите видеоролик Бориса Шолла Использование SharePoint Business Data Connectivity Designer в VS 2010 (Возможно, на английском языке).
Связи внешних типов контента на основе баз данных и на основе веб-служб
Для внешних типов контента на основе базы данных связь создается в таблице, которая используется для создания других операций. Для внешних типов контента на основе веб-службы связь создается в соответствующем веб-методе. Дополнительные сведения см. в следующих разделах:
Внимание! |
---|
В таблице базы данных невозможно создать обратную связь. Дополнительные сведения см. в разделе Обратная связь. |
Выбор внешнего типа контента для создания связи
К тому времени, когда вы будете готовы к созданию связи, уже будут созданы два внешних типа контента (с соответствующими операциями Чтение элемента и Чтение списка). SharePoint Designerвнешних типов контента позволяет создавать связи декларативно, как и любые другие операции. Создайте связь для внешнего типа контента с внешним ключом, указывающим на родительский внешний тип контента. Рассмотрим, например, сценарий "клиент-заказ", при котором клиент размещает несколько заказов. У каждого заказа есть поле, в котором указывается клиент, разместивший этот заказ (помимо полей "Цена", "Количество" и "Дата"). Это поле является полем внешнего ключа, и поскольку эти сведения хранятся в заказе, необходимо открыть в SharePoint Designer внешний тип контента "Заказ" и создать связь там.
Для внешнего типа контента на основе базы данных щелкните правой кнопкой мыши таблицу, использовавшуюся для создания других операций, и создайте связь для этой таблицы. Дополнительные сведения см. в разделе Практическое руководство. Добавление связи между двумя внешними контентами баз данных на основе таблиц. Для внешнего типа контента на основе веб-служб щелкните правой кнопкой мыши метод, предназначенный для связи. Дополнительные сведения см. в разделе Добавление связи между двумя внешними типами контента на основе веб-службы
Обратная связь
В большинстве случаев требуется прямая связь для отображения связанных элементов (подробности) родительского элемента (основной) на основе внешнего ключа. Однако в некоторых случаях необходимо вывести родительский элемент для конкретного дочернего элемента, например показать клиента, к которому относится конкретный заказ. Для этого необходимо создать обратную связь. Другими словами, связь в SharePoint Designer возвращает несколько элементов для внешнего типа контента, в то время как обратная связь возвращает один элемент для связанного внешнего типа контента.
Просмотр связей в пользовательском интерфейсе
После создания связи между двумя внешними типами контента (см. раздел Практическое руководство. Добавление связи между двумя внешними контентами баз данных на основе таблиц) эти связи можно просмотреть в пользовательском интерфейсе SharePoint Designer 2010 и на сайте SharePoint в следующих расположениях:
Формы внешних списков: связи в основном отображаются в формах внешних списков. Например, для выбора клиента для заказа можно разместить на форме средство выбора внешних элементов. Это позволит выбирать клиентов из списка существующих клиентов. Если внешний список синхронизирован с Outlook или SharePoint Workspace, на формах отображается версия средства выбора для клиентов с расширенными возможностями, с помощью которой также можно создавать заказы.
Рис. 1. Средство выбора внешних элементов
В обоих случаях в средстве выбора внешних элементов необходимо отображать понятные имена, чтобы при выборе клиентов пользователь видел нечто более осмысленное, чем номер, идентифицирующий клиента во внешней системе, например имя клиента или поле, помеченное в SharePoint Designer как поле заголовка.
Страницы профиля: обратите внимание, что после задания связи заказы клиента будут отображаться на странице профиля клиента. Аналогичным образом, на странице профиля для заказов, если задана обратная связь, можно будет просматривать дополнительные сведения о клиенте.
Рис. 2. Заказы на странице профиля клиента
Веб-части бизнес-данных: связи используются в веб-частях "Список бизнес-данных" и "Дополнительный список бизнес-данных", что позволяет реализовать интересные сценарии, например сценарий, показанный на рис. 3, в котором в веб-части "Список бизнес-данных" в верхней части страницы выводится список клиентов, а при выборе клиента в веб-части "Дополнительный список бизнес-данных" выводятся соответствующие заказы.
Рис. 3. Веб-части бизнес-данных
См. также
Задачи
Добавление связи между двумя внешними типами контента на основе веб-службы