Реализация метода Creator
Дата последнего изменения: 20 апреля 2010 г.
Применимо к: SharePoint Server 2010
В этой статье
Значение
Синтаксис
Примечания
Примеры
Значение
Экземпляр метода Creator позволяет создавать новые экземпляры сущности. Например, если имеется бизнес-объект Customer, с помощью этого метода можно создать клиента "Андрей" во внешней системе.
Если у внешнего типа контента нет стереотипа Creator, новые элементы (экземпляры сущности) нельзя создавать с помощью функций Business Connectivity Services. Например, для создания элемента нельзя просто нажать кнопку Создать элемент на ленте внешнего списка.
Метод Create позволяет создавать внешние элементы во внешней системе путем задания значений полей, необходимых для операции Create. Набор полей, необходимых для создания нового элемента, называется Представление Creator. Значения полей необязательно соответствуют полям внешнего элемента. Метод должен возвращать идентификатор, соответствующий созданному внешнему элементу. Экземпляр IFieldValueDictionary, предоставляемый этому методу качестве входных данных, должен создаваться из представления.
Этот метод также позволяет создавать внешний элемент путем указания значений полей создаваемого внешнего элемента. Если экземпляр метода Create принимает все предоставляемые поля, BDC вызывает только экземпляр метода Create. В противном случае BDC также вызывает Update MethodInstance для созданного внешнего элемента, чтобы задать указанные значения для остальных полей. Метод возвращает EntityInstanceReference созданному внешнему элементу. Экземпляр IFieldValueDictionary, предоставляемый в качестве входных данных этому методу, должен создаваться из представления, соответствующего MethodInstance типа SpecificFinder, полученного с помощью метода GetCreatorView.
Синтаксис
Ниже приводятся типовые подписи метода для метода Creator:
structureContainingIdentifierValues CreateEntity(EntityDataType fields)
void CreateEntity(EntityDataType fields)
structureContainingIdentifierValues CreateEntity()
Примечания
В качестве Creator используется соответствующий метод:
Для создания экземпляра во внешней системе должен получать в качестве входных параметров обязательные поля.
В качестве входных параметров может принимать необязательные поля во внешней системе.
Может принимать в качестве входа идентификатор (или сочетание идентификаторов) элемента — ИЛИ — может возвращать идентификатор (или сочетание идентификаторов) для созданного элемента.
Должен быть транзакционным для защиты от потери данных.
Представление Creator должно быть эквивалентным представлению метода SpecificFinder (см. пример ниже) или быть его подмножеством. Если представление Creator содержит больше полей, чем SpecificFinder, его нельзя переводить в автономный режим для клиентов Microsoft Office 2010.
При наличии нескольких специальных методов поиска представление Creator должно быть эквивалентным по крайней мере одному представлению специального метода поиска или быть его подмножеством.
Как уже отмечалось, представление Creator должно быть эквивалентным по крайней мере одному представлению специального метода поиска (может включать поля только для чтения) или быть его подмножеством, поскольку во внешних списках автоматически созданные формы Business Connectivity Services, которые используются для создания элементов, основаны на представлении SpecificFinder. Если представление Creator содержит дополнительные поля, они не отображаются в автоматически созданных формах и могут приводить к ошибкам действия Create operation. Во избежание этого Business Connectivity Services проверяет наличие такой зависимости и отключает Create operation для внешнего списка, если представление Creator оказывается больше представления SpecificFinder.
Если представление Creator является подмножеством представления SpecificFinder, Business Connectivity Services позволяет создавать элемент с помощью действия Create operation во внешних списках. Однако в сценариях с автономным режимом (например, Microsoft Outlook) требуется метод Updater, поскольку Business Connectivity Services вызывает метод Updater сразу после метода Create (для обновления полей, не включенных в представление Creator).
В таблице 1 приводится сводка по зависимостям для представлений Creator и Updater, а также состояниям операций создания и обновления.
Таблица 1. Зависимости для представлений Creator и Updater и состояние для операций создания и обновления
Номер сценария |
Поля в конкретном представлении Finder |
Поля в представлении Creator |
Поля в представлении Updater |
Разрешенные операции |
Примечания |
---|---|---|---|---|---|
1. |
A B (только для чтения) C D E (только для чтения) |
A B C D E F |
A C D F |
Создание: запрещено Обновление: запрещено Автономное создание: запрещено Автономное обновление: запрещено |
Не удается найти поле F в указанном средстве поиска. В результате службы BCS отключают операции создания и обновления. |
2. |
A B (только для чтения) C D E (только для чтения) |
A B C D E |
A C D |
Создание: разрешено Обновление: разрешено Автономное создание: разрешено Автономное обновление: разрешено |
Пользователь может указать значения полей B и E во время создания, но не может обновить их впоследствии. |
3. |
A B (только для чтения) C D E (только для чтения) |
A B |
A C D |
Создание: разрешено Обновление: разрешено Автономное создание: разрешено Автономное обновление: разрешено |
Пользователь может указать значение поля B во время создания, но не может обновить его впоследствии. Значение поля E задается внешней системой и не может быть изменено пользователем. Для операции автономного создания операция обновления вызывается сразу же после создания. |
4. |
A B (только для чтения) C D E (только для чтения) |
A B |
A C |
Создание: разрешено только для форм EL по умолчанию Обновление: запрещено Автономное создание: запрещено Не в сети Обновление: запрещено |
Поле D обновлять нельзя. В результате этого несоответствия службы BCS отключают операцию обновления. Автономное создание отключено, поскольку отсутствует допустимая операция обновления. |
5. |
A B (только для чтения) C D E (только для чтения) |
A C D |
Операция обновления не определена |
Создание: разрешено Обновление: запрещено Автономное создание: разрешено Автономное обновление: запрещено |
Значения полей B и E задаются внешней системой. |
6. |
A B (только для чтения) C D E (только для чтения) |
A B C |
Операция обновления не определена |
Создание: разрешено только для форм EL по умолчанию Обновление: запрещено Автономное создание: запрещено Автономное обновление: запрещено |
Значение поля D нельзя задать во время создания, и не существует допустимой операции обновления для задания этого поля впоследствии. В результате службы BCS отключают операцию автономного создания. |
Убедитесь, что исключения обрабатываются правильно. Если операция создания во внешней системе заканчивается ошибкой, следует вызывать исключения, перечисленные в таблице 2.
Таблица 2. Исключения
Имя исключения |
Используйте это исключение, когда... |
---|---|
AccessDeniedException |
Пользователю запрещено выполнять эту операцию во внешней системе. |
PartialCreateException |
В некоторых внешних системах могут быть сценарии, когда необходимо создать новый элемент с несколькими полями, а затем обновить оставшиеся поля. Если при создании элемента и возвращении идентификатора значения полей заданы неправильно, вызовите это исключение для оптимизации обработки ошибок. |
Исключение времени выполнения |
Если создание завершается ошибкой, обязательно вызовите это исключение, чтобы предупредить пользователей и использовать функции обработки ошибок в Outlook 2010 и Microsoft SharePoint Workspace 2010. |
![]() |
---|
Имена параметров должны совпадать с именами, определенными во внешней системе. В именах параметров учитывается регистр. Если имена параметров в каких-то методах не совпадают, Microsoft SharePoint Designer 2010 считает их разными полями. |
Примеры
Фрагмент кода: реализация автора
См. также
Концепции
Фрагмент XML-кода: моделирование метода Creator
Фрагмент кода: выполнение экземпляра метода Creator для внешнего типа содержимого