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

Ff798516.6b809b6c-520c-4289-ac4a-0f96df97cd23(en-us,PandP.10).png



One-to-one relationships

Ff798516.c3d7e39d-ea1f-4730-b32a-c973eb03fdb2(en-us,PandP.10).png



One-to-many relationships

Ff798516.dc4d6462-ca6b-4eb7-84e2-e785110e3310(en-us,PandP.10).png



Many-to-many relationships


Ff798516.2f4b92ff-4549-441e-a030-54fe99734b29(en-us,PandP.10).png


Non-integer–based foreign key relationships

Ff798516.28eaa175-71ec-49c7-978b-491aad78f0bb(en-us,PandP.10).png



Complex data types*

Ff798516.3a77d42e-9454-47cf-9f2d-8cc50298d6e1(en-us,PandP.10).png


Ff798516.b5061dd1-224b-4f3f-b61d-deca89074d07(en-us,PandP.10).png

Blob storage

Ff798516.8d176030-8ba8-4d96-b84e-da236433b044(en-us,PandP.10).png



Unsupported data types



Ff798516.e21dd25c-80b8-40f4-8db4-f1638f5ddde2(en-us,PandP.10).png

Proprietary protocol for accessing external system



Ff798516.fc2323d1-0c0b-4d2a-a513-1508432635db(en-us,PandP.10).png

Aggregating data into a single entity from multiple data sources



Ff798516.3e14655d-5891-4f5e-8fac-4b2a6c8e7789(en-us,PandP.10).png

*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.