Implementing an Updater

Applies to: SharePoint Server 2010

In this article
Description
Syntax
Remarks
Examples

Description

An Updater method instance enables you to update an existing entity instance in an external system. For example, given a business object named Customer, this stereotype can be used to update the address of a customer "John" in the external system.

If you do not define an Updater method, items cannot be updated by using the Business Connectivity Services features for the entity. For example, you cannot click the Edit Item button on the ribbon of an external list that is based on that external content type, to edit an item in the list.

BDC performs a read operation before update to detect any data conflicts.

For an Updater method, the set of fields that are required to update the item is referred to as the Updater View.

Syntax

Following is the typical method signature for an Updater method:

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

Remarks

To qualify as a Updater method:

  • The Updater method should take the identifier (or combination of identifiers) of the item as input.

  • The Updater method should take all the read/write fields of a SpecificFinder method.

  • The Updater view must be equal to, or a subset of, the SpecificFinder view.

Note

We recommend that the update method be transactional to avoid potential data loss.

If there are multiple specific finders, the Updater view should be equal to, or a subset of, at least one SpecificFinder view.

As in the case of the Creator view, the Updater view must be equal to, or a subset of, the view of one of the specific finders. It must contain all of the fields in the specific finder that are not read-only. This is because the Business Connectivity Services auto generated forms are dependent on the SpecificFinder view. If not, the extra fields in the Updater view will not be updatable. Just like the create operation, Business Connectivity Services checks for this dependency and disables the update operation on the external list. Updatable identifiers (or combination of identifiers) can also be updated by this stereotype, but they are not supported by the Business Connectivity Services auto-generated forms.

Table 1 summarizes the dependencies for the Creator view and the Update view and status for create and update operations.

Table 1. Dependencies for Creator view and Update view and status for create and update operations

Scenario#

Fields in Specific Finder View

Fields in Creator View

Fields in Updater View

Operations Allowed

Notes

1.     

A

B (read-only)

C

D

E (read-only)

A

B

C

D

E

F

A

C

D

F

Create: Not allowed

Update: Not allowed

Offline Create: Not allowed

Offline Update: Not allowed

Field F cannot be found on the specific finder. This causes BCS to disable create operations and update operations.

2.     

A

B (read-only)

C

D

E (read-only)

A

B

C

D

E

A

C

D

Create: Allowed

Update: Allowed

Offline Create: Allowed

Offline Update: Allowed

The values of field B and field E can be specified by the user during create, but cannot be updated later.

3.     

A

B (read-only)

C

D

E (read-only)

A

B

A

C

D

Create: Allowed

Update: Allowed

Offline Create: Allowed

Offline Update: Allowed

The value of field B can be specified by the user during create, but cannot be updated later.

The value of field E is assigned by the external system and cannot be updated by the user.

For offline create, the update operation is called immediately after create.

4.     

A

B (read-only)

C

D

E (read-only)

A

B

A

C

Create: Allowed only on default EL forms

Update: Not allowed

Offline Create: Not allowed

Offline Update: Not allowed

Field D cannot be updated. This inconsistency causes BCS to disable the update operation.

Offline create is disabled because there is no valid update operation.

5.     

A

B (read-only)

C

D

E (read-only)

A

C

D

No update operation defined

Create: Allowed

Update: Not Allowed

Offline Create: Allowed

Offline Update: Not allowed

The values of field B and field E are assigned by the external system.

6.     

A

B (read-only)

C

D

E (read-only)

A

B

C

No update operation defined

Create: Allowed only on default EL forms

Update: Not allowed

Offline Create: Not allowed

Offline Update: Not allowed

The value of field D cannot be set during create, and there is no valid update operation defined for setting it later. This causes BCS to disable the offline create operation.

Note

Ensure that you handle null values correctly. Validate whether the fields are required and do not assign null to fields that are not required.

Warning

The names of the parameters must match what is defined in the external system. Names of parameters are case-sensitive.If the names of parameters are not identical on all methods, Microsoft SharePoint Designer 2010 interprets them as different fields.

It is important to handle exceptions properly. The Updater case has a few interesting exceptions, which are listed in Table 2.

Table 2. Exceptions

Exception Name

Use This Exception When….

AccessDeniedException

User is not allowed to perform this operation on the external system.

ConflictDetectedException

Used for conflict resolution. The item was updated concurrently and was changed by another user.

LobBusinessErrorException

Guarantees that the error message is displayed to the user as is (from the external system).

ObjectDeletedException

Use this exception if the item is known to be deleted.

ObjectNotFoundException

The item is not found.

RuntimeException

If the update fails, ensure that you raise this exception to alert your users and to use the error handling features in Microsoft Outlook 2010 and Microsoft SharePoint Workspace 2010.

Examples

Code Snippet: Implementing an Updater

See Also

Concepts

XML Snippet: Modeling an Updater Method

Code Snippet: Execute an Updater Method Instance of an External Content Type