in SharePoint 2010

BCS Limitations

Even though BCS is great and can do wonders when you want SharePoint 2010 to interact with your external systems or other LOB applications, it has its own limitations. Understanding these limitations will help you build good BCS solutions.

Below are some/all of the BCS/External Lists limitations:

  1. Workflows cannot be associated with external lists
    • However, you can use the external data columns and manipulate the external lists in a workflow
  2. No RSS feed support for external lists
  3. No REST based access for external lists
  4. LINQ to SharePoint spmetal.exe does not support external lists
  5. Cannot configure alerts for external lists
  6. Cannot export external list items to Excel (Export to Excel feature)
  7. Item-Level permissions is not available for external lists
  8. Versioning cannot be configured on external lists
  9. Item History is not available on external lists
  10. Datasheet view cannot be used in external lists
    • XSLT is supported though
  11. You cannot create a site column of type ‘External Data Column’
    • External data columns can be created only as list based columns and cannot be consumed in site level content types
  12. No Write support for BLOB
    • You cannot write back to BLOB fields using BCS unless you write your own method
    • You can access BLOB columns by defining a StreamAccessor method and presenting the external data via the BCS Data List web part by checking the Display stream fields property
  13. Ratings feature is not supported for external lists
  14. Metadata based navigation is not supported for External Lists

Some of the limitations are quite obvious as the data does not reside in SharePoint and it is not SharePoint’s responsibility on how the data behaves. SharePoint is here to just present the external data. That said, I do think some are not limitations, but Microsoft just didn’t have time to implement, like:

  1. RSS feed support
  2. External data site columns
  3. Export to Excel

If I have missed any limitations, please feel free to comment and I will add them to the list.

Write a Comment

Comment

Time limit is exhausted. Please reload the CAPTCHA.

16 Comments

  1. Although the SharePoint 2010 External List is a great step forward in case of data integration, it is not a REAL SharePoint list – as the SharePoint BDLC List definitely is. BDLC connects each type of SharePoint 2007 / 2010 lists (e.g. contacts, tasks, events etc.) directly to almost any external data souce in just minutes [b]without any programming[/b] and [b]ALL list features available[/b], e.g. workflow, write-back etc.

    http://www.layer2.de/en/community/FAQs/BDLC/Pages/Feature-comparision-sharepoint-external-list.aspx

  2. I found that the validation options for external list data entry are rather limited as well. You can read more about my experience here:
    http://pholpar.wordpress.com/2010/10/04/validation-issues-with-external-lists-or-have-i-missed-something/
    You wrote "You can access BLOB columns by defining a StreamAccessor method and presenting the external data via the BCS Data List web part". You are not limited to use the StreamAccessor method only in BCS Data List web part. It is available in external lists after a bit of XSL customization as illustrated in this other post:
    http://pholpar.wordpress.com/2010/09/19/publishing-files-stored-in-the-file-system-through-external-list/

  3. @Chaks – You are right. I just mentioned that because it was not trivial for me based on the documentation found on MSDN. AFAIK, BCS web parts are only included in the Enterprise version. It would be nice to know if it is true for the DownloadExternalData.aspx as well or one can use that technique (I mean downloading BLOB data through external lists) in SharePoint foundation either.

    Do you have any suggestion to my earlier issue, displaying external list data in a calendar view, using only customization techniques, if possible?

    Thanks,
    Peter

  4. I just got this link forwarded and wanted to write some comments here

    Completely disagree with some of the items in the list
    Cannot configure alerts for external lists
    Item-Level permissions is not available for external lists
    Versioning cannot be configured on external lists
    Item History is not available on external lists
    Ratings feature is not supported for external lists

    [Ram:]
    BCS allows you to integrate external data into SharePoint, External list provide familiar list like user experience You can’t compare external lists with standard lists where data is stored inside of SharePoint and say it has limitations

  5. I agree that we should not compare with normal SharePoint lists. But for customers/users this isn’t the case. They see it as SharePoint List and we need to educate customers/users on what is an external list and what operations are possible on an external list. And that is what the limitations are. As I have said in my blog post, understanding these BCS limitations will help build a good BCS solution.

    [Believe me, explaining that "data does not reside in SharePoint" is so complex and confusing for many :)]

  6. BDLC connector clones external data inside of SharePoint, not to mention potential issues with Stale data, performance etc. If I want the data inside of sharepoint aren’t u better of migrating that from external datasource to SharePoint lists and then not worry about connecting to it etc

  7. Ram, you are right: In some cases it could make sense to migrate. But it’s a SharePoint consultants dream, that the people would throw away all their existing CRM/ERP/CMS and whatever systems and business processes to move to SharePoint completely 😉 So in a real-world we will continue to have "real" databases (with all the required transaction and integrity features) to integrate, e.g. for column lookups to basic claims data in SharePoint, for change notification and workflows, for 2010 enterprise metadata management and social networking etc.

    What do you mean with “stale data”? With BDLC you have [b]ALL[/b] security features, which a native SharePoint list could have. So it’s the same compared to migration.

    And yes, you can do this "cloning" in a way, that will cause performance issues on SharePoint using BDC or SSIS – that delete and re-insert ALL list items on external data changes – or you can use BDLC, that safely modifies [b]changed data items and columns only[/b] – without any performance issues using the very fast SharePoint batch update API.

    Even with BCS you have to connect to external data on every page load. The external data source must be permanently available with high performance. In case of BDLC you have [b]disconnected[/b] systems: When a page is called, SharePoint only is involved. All the well-known performance optimizations for lists could be used. Both systems get connected only in case of data changes in SharePoint (if write-back is used) or in case of scheduled updates from external sources (e.g. once a day or hour).

    See here for more typical business requirements, which could be solved by BDLC:
    http://www.layer2.de/EN/PRODUCTS/Pages/SharePoint-Business-Data-List-Connector.aspx#3

  8. Hai chekkradeep,

    It is possible to copy the External list data to normal list and CRUD operations also working.

    If it is possible to share any information regards this issue.

    Thanks in advance..,
    suresh