Использование служб Business Connectivity Services с рабочими процессами SharePoint
Дата последнего изменения: 16 апреля 2010 г.
Применимо к: SharePoint Server 2010
Microsoft Business Connectivity Services (BCS) позволяет пользователю обращаться к внешним данным в рабочих процессах SharePoint двумя способами:
Посредством рабочих процессов без кода, созданных с помощью Microsoft SharePoint Designer 2010, которые взаимодействуют с внешними списками.
Посредством рабочих процессов, содержащих код (рабочих процессов с кодом), созданных в Microsoft Visual Studio, которые взаимодействуют с внешними списками или с объектными моделями Microsoft SharePoint 2010 или Business Connectivity Services.
Перед построением рабочих процессов для своих сценариев пользователь должен учесть следующие аспекты:
Рабочие процессы не могут быть связаны с внешним списком. Хотя в SharePoint Server 2010 рабочие процессы работают с внешними списками, они не могут быть связаны с внешними списками напрямую. Можно создать рабочий процесс сайта или рабочий процесс списка для списка SharePoint, например для библиотеки документов, и считывать или обновлять его из внешнего списка. Также можно использовать элемент внешнего списка в качестве места назначения для процесса задачи в SharePoint Designer; однако ссылка на задачу не будет отображать заголовок для элемента внешнего списка.
Рабочие процессы, обращающиеся к подключения к бизнес-данным (BDC), всегда выполняются как учетная запись службы, даже в шаге олицетворения. Рабочий процесс всегда выполняется как учетная запись службы и поддерживается только при использовании Secure Store или механизма RevertToSelf (который по умолчанию отключен из-за его влияния на безопасность, см. дополнительные сведения в статье Обзор системы безопасности служб Business Connectivity Services). Это ограничение может помочь защитить SharePoint 2010 от вредоносных моделей BDC и кода. Так как доступ к внутренней системе всегда происходит через одну учетную запись, можно потерять возможность отслеживания пользователей, которые вносят изменения. Рабочий процесс может передать имя SPUser в столбец внешнего списка или в настраиваемое действие, которое использует интерфейсы API BDC. Этот сценарий представлен только для сведения и не должен использоваться как компонент обеспечения безопасности.
Определение рабочего процесса без кода для списка SharePoint для обновления внешнего списка с помощью SharePoint Designer 2010
SharePoint Designer 2010 позволяет создавать рабочие процессы, не использующие код (рабочие процессы без кода), которые можно присоединить к любому списку или сайту SharePoint. Действия рабочего процесса создание элемента списка, обновление элемента списка и удаление элемента списка для списков SharePoint расширены для поддержки внешних списков. Кроме того, с внешними списками можно использовать и другие действия, например присвоение значения переменной рабочего процесса, чтобы выбрать список или элемент из списка SharePoint. Рабочие процессы списка могут запускаться автоматически при добавлении или изменении элемента списка и могут содержать условную логику для связанных действий. Рабочие процессы сайта не требуют запуска для начала работы.
С помощью SharePoint Designer 2010 можно настроить действия списка, например создание элемента списка или обновление элемента списка, в списке SharePoint для считывания или записи данных во внешний список. Например, можно создать рабочий процесс, который обновляет элемент во внешнем списке при каждом изменении элемента в списке SharePoint по умолчанию или документа в библиотеке документов. Следующая процедура описывает действия по созданию простого рабочего процесса, который обновляет поле Адрес во внешнем списке "Клиенты" при добавлении документа "Новые контактные данные" для клиента в библиотеку документов "Контактные данные клиентов".
Создание рабочего процесса, автоматически обновляющего внешний список при создании нового элемента в библиотеке документов
В SharePoint Designer 2010 перейдите к библиотеке документов "Контактные данные клиентов".
В сервера щелкните Новый рабочий процесс списка.
Задайте имя и описание рабочего процесса и щелкните Далее. В SharePoint Designer 2010 откроется конструктор рабочих процессов.
Вставьте действие обновление элемента списка как показано на рисунке 1.
Рис. 1. Вставка действия "обновление элемента списка"
Щелкните ссылку этот список, а затем выберите внешний список "Клиенты" в поле "Список". Нажмите кнопку Добавить, чтобы добавить поля, которые необходимо обновлять во внешнем списке.
Рис. 2. Добавление полей, которые необходимо обновлять во внешнем списке
В диалоговом окне Задание значения выберите поле Адрес из внешнего списка, который необходимо обновлять, и соответствующее поле Адрес в библиотеке документов, а затем нажмите кнопку OK.
Примечание В диалоговом окне Задание значения отображаются все поля параметра, возвращаемого из SpecificFinder. Если для полей "средство создания" или "средство обновления" требуется только подмножество этих полей, выберите только необходимые поля в этом диалоговом окне.
Рис. 3. Диалоговое окно "Задание значения"
Укажите соответствующие поля в списках источника и назначения, чтобы SharePoint мог определить соответствующие элементы в библиотеке документов и во внешнем списке. Для этого выберите поле CustomerID из внешнего списка и поле Текущий элемент: идентификатор клиента из библиотеки документов (предполагается, что эти поля можно использовать для определения соответствующих элементов в обоих списках). Нажмите кнопку ОК.
Рис. 4. Указание соответствующих полей в списках источника и назначения
Создан простой рабочий процесс, обновляющий внешний список, как показано на рисунке 5.
Рис. 5. Простой рабочий процесс, обновляющий внешний список
Чтобы настроить автоматический запуск этого рабочего процесса при создании элемента в библиотеке документов "Контактные данные клиентов", нажмите кнопку Параметры рабочего процесса на ленте, а затем щелкните Автоматически запускать рабочий процесс при создании элемента, как показано на рисунке 6.
Рис. 6. Параметры запуска рабочего процесса
Создан рабочий процесс, автоматически обновляющий внешний список при создании нового элемента в библиотеке документов.
Советы по действиям и использованию рабочего процесса и описание распространенных ошибок
Используйте встроенные действия рабочего процесса SharePoint в следующих сценариях:
Необходимо считать небольшое количество столбцов из внешнего списка для их последующего использования в рабочем процессе.
При считывании нескольких значений из одного элемента внешнего списка этот элемент не кэшируется. Поэтому действие сначала вызывает метод Read List (Finder), а затем метод считывания элемента (SpecificFinder) для каждого считываемого столбца. Таким образом, при считывании 10 свойств в списке из 2000 элементов происходит 20 вызовов BDC и получается 20010 элементов из внешней системы.
Необходимо создать, обновить или удалить один элемент из внешнего списка.
Важно знать следующее:
Считывание значения из элемента, не имеющего значения, возвращает null. В SharePoint 2010 это то же, что и empty, но во внешних списках существуют различия между значением null и значением "не найдено".
После создания элемента во внешнем списке при любых изменениях этого элемента из того же рабочего процесса следует использовать удостоверение BDC, которое возвращается из действия создание элемента списка.
По умолчанию службы Business Connectivity Services отображают все поля SpecificFinder. Поэтому, если для полей "средство создания" или "средство обновления" требуется только подмножество этих полей, выберите только необходимые поля в пользовательском интерфейсе рабочего процесса в SharePoint Designer 2010.
Получить удостоверение BDC можно только из поля "средство создания". Следует использовать удостоверение BDC, возвращенное в поле "средство создания", если необходимо найти только что созданный внешний элемент. Его невозможно найти с помощью других полей. Также для поиска только что обновленного внешнего элемента нельзя использовать удостоверение BDC, так как оно не возвращается в поле "средство обновления". Его можно искать только по другому полю.
При создании рабочего процесса для его использования с формой InfoPath убедитесь, что во время процесса публикации в столбцы SharePoint преобразованы правильные поля шаблона формы, чтобы они могли использоваться в условиях и действиях рабочего процесса.
Создание рабочих процессов на основе кода с помощью Visual Studio
С помощью Visual Studio можно создавать рабочие процессы с кодом, которые взаимодействуют с внешними данными через внешние списки или объектные модели SharePoint 2010 и Business Connectivity Services. Также можно создавать настраиваемые действия рабочих процессов. Дополнительные сведения см. в описании рабочего процесса SharePoint в SDK SharePoint 2010.