Поделиться через


Реализация Updater

Дата последнего изменения: 20 апреля 2010 г.

Применимо к: SharePoint Server 2010

В этой статье
Описание
Синтаксис
Примечания
Примеры

Описание

Экземпляр метода Updater позволяет обновлять существующий экземпляр сущности во внешней системе. Например, при наличии бизнес-объекта с именем Customer этот стереотип может использоваться для обновления адреса клиента "Джон" во внешней системе.

Если метод Updater не определен, элементы сущности не могут обновляться с помощью компонентов Business Connectivity Services. Например, нельзя нажать кнопку Изменить элемент на ленте внешнего списка, который основан на данном внешнем типе контента, чтобы изменить элемент в списке.

Перед обновлением BDC выполняет операцию чтения, чтобы обнаружить любые конфликты данных.

Набор полей, необходимых методу Updater для обновления элемента, называется представлением Updater.

Синтаксис

Типичная подпись метода для метода Updater:

void UpdateEntity(EntityDataType fields)
void UpdateEntity(EntityDataType fields, EntityDataType previousValuesOfFields)

Примечания

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

  • Метод Updater должен принимать идентификатор (или комбинацию идентификаторов) элемента в качестве входных данных.

  • Метод Updater должен принимать все поля чтения/записи метода SpecificFinder.

  • Представление Updater должно быть равнозначно представлению SpecificFinder или быть его подмножеством.

ПримечаниеПримечание

Рекомендуется сделать метод обновления транзакционным, чтобы избежать возможной потери данных.

Если существует несколько конкретных методов поиска, представление Updater должно быть равнозначно как минимум одному представлению SpecificFinder или быть его подмножеством.

Как и в случае представления Creator, представление Updater должно быть равнозначно представлению одного из конкретных методов поиска или являться его подмножеством. Оно должно содержать все поля конкретного метода поиска, доступные не только для чтения. Это объясняется тем, что автоматически создаваемые формы Business Connectivity Services зависят от представления SpecificFinder. В противном случае дополнительные поля в представлении Updater не будут обновляемыми. Как и операция создания, Business Connectivity Services проверяет эту зависимость и отключает операцию обновления для внешнего списка. Обновляемые идентификаторы (или комбинации идентификаторов) также могут обновляться этим стереотипом, но они не поддерживаются автоматически создаваемыми формами Business Connectivity Services.

В таблице 1 приведена сводка зависимостей для представлений Creator и Update и статуса операций создания и обновления.

Таблица 1. Зависимости представлений Creator и Update и статуса операций создания и обновления

Номер сценария

Поля в конкретном представлении 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 отключают операцию автономного создания.

ПримечаниеПримечание

Убедитесь в правильности обработки значений null. Проверьте, являются ли обязательными поля, которым присваивается значение null, и не присваивайте значение null полям, которые не являются обязательными.

Предупреждающая заметкаВнимание!

Имена параметров должны совпадать с именами, определенными во внешней системе. Имена параметров чувствительны к регистру. Если имена параметров не идентичны во всех методах, Microsoft SharePoint Designer 2010 интерпретирует их как разные поля.

Важно правильно обрабатывать исключения. Метод Updater имеет несколько интересных исключений, которые перечислены в таблице 2.

Таблица 2. Исключения

Имя исключения

Используйте данное исключение, когда….

AccessDeniedException

Пользователю запрещено выполнять эту операцию во внешней системе.

ConflictDetectedException

Используется для разрешения конфликтов. Элемент был обновлен и одновременно был изменен другим пользователем.

LobBusinessErrorException

Гарантирует, что сообщение об ошибке отображается для пользователя "как есть" (из внешней системы).

ObjectDeletedException

Используйте это исключение, если известно, что элемент должен быть удален.

ObjectNotFoundException

Элемент не найден.

RuntimeException

Если при обновлении происходит сбой, убедитесь, что это исключение вызывается для оповещения пользователей и для использования компонентов обработки ошибок в Microsoft Outlook 2010 и Microsoft SharePoint Workspace 2010.

Примеры

Фрагмент кода: реализация метода Updater

См. также

Концепции

Фрагмент XML-кода: моделирование метода Updater

Фрагмент кода: выполнение экземпляра метода Updater внешнего типа контента