BDC Models and Common Scenarios
Depending on your requirements, there are three basic approaches you can take to creating a Business Data Connectivity (BDC) model for an external system:
- You can create a purely declarative BDC model.
- You can create a declarative BDC model and create additional database stored procedures or additional Web service logic to support foreign keyless associations or type flattening.
- You can create a .NET connectivity assembly to connect to the external system and perform data operations, and then build your BDC model around the .NET connectivity assembly.
The following table lists which of these approaches is typically used in various common scenarios.
Note
The table does not prescribe specific approaches to specific scenarios. Your own application scenarios may merit a different approach.
Scenario |
Declarative BDC model |
Declarative BDC model with additional stored procedures or service logic |
.NET connectivity assembly |
---|---|---|---|
Single entity |
|||
One-to-one relationships |
|||
One-to-many relationships |
|||
Many-to-many relationships |
|||
Non-integer–based foreign key relationships |
|||
Complex data types* |
|||
Blob storage |
|||
Unsupported data types |
|||
Proprietary protocol for accessing external system |
|||
Aggregating data into a single entity from multiple data sources |
*Complex data types are limited to read operations in Business Data Web Parts.
There are also various scenarios in which declarative BDC models created in SharePoint Designer require manual edits to the model XML. After you make these edits, you can no longer use SharePoint Designer to work on the BDC model. These scenarios include the following:
- When the user can modify the identifier field. In this case, you must add a PreUpdaterField="true" attribute value to the type descriptor for the relevant parameter in the Update method. For example, if you were using SKU as your identifier field, and you allowed the user to change the SKU when updating a part, you must set this field to true. This capability is not supported by the BDC client runtime for offline data updates.
- When you create a method of typeAssociationNavigator. This type of stereotyped operation represents a foreign keyless association and uses a stored procedure or a Web service method to navigate between entities.
Note
The PreUpdaterField is discussed in more detail in the External Data Models reference implementation.