Skip to main content

Sharepoint 2007 Business Data Catalog Issues , Limitations and Concerns

On three different projects , I was exposed to a new product being marketed by Microsft , Microsoft Office Sharepoint Server 2007 (MOSS 2007) . More particularly , I was into the Business Data Catalog functionality where I was tasked to retrieve data from third party software and display it on a MOSS Portal . Here are some issues that I stumbled upon and found a really interesting website that affirmed my issues together with "answers" from Microsoft Technology Center .

1. Filter Pattern Re-arrangement - Search parameters are fixed to “is equal to”, “starts with”, “ends with” and “contains”. Is it possible to change the order in which these appear in the menu ?. In our interface “is equal to” would hardly be used; however, it is the first option available, is it possible to retain only the “contains” filter and remove the rest ? . Sadly , according to MTC , it is not possible .

2. Lack of handling co-related sub queries . The BDC does not handle joining of tables together unless a joined view is provided by the database. That is not what is desired. Basically, without this capability within the BDC layer, a parent child relationship requires this relationship to be displayed in two web parts (i.e. one parent web part and one child web part). We would like to have a single joined view displayed in the user interface and have that join performed in the BDC layer. This is not just true with databases but also for custom webservices . In order for the BDC to support Business Data Related List a method that supports it must be in the web service . MTCs reply to this : Not possible / Not Available .

3. Buggy Parent Child Relationship - If a parent / child relationship is used using two web parts, the search on the parent does not update the results of the child web part. Thus, if the results of the search change the display of the parent, then what is shown in the child web part is inaccurate. Only when you select an item from the parent web part, the child web part is updated. This causes confusion to the end user. This is a pretty obvious bug , its not that critical but it would be better if it is improved . MTCs comment : It's a bug in BDC Architecture

4. BDC Scability/Performance Issues - In general, we find slow/low performance when using the BDC.

5. Image Support - The BDC does not support attaching images (for example) so that these images can be displayed as part of the BDC SharePoint List table view. SharePoint list do allow embedded images, but the BDC does not support it. According to MTC , it is not yet possible in the current version .

6. More than 4 or more criteria Exception - BDC architecture bug according to MTC .

Listed above are just some of the issues I have met in MOSS . Other related issues on MOSS can also be found on the site above . Clearly , no matter how Microsoft seems to market BDC for MOSS , the technology is not yet mature and theres a lot more development needed before it can deliver its promises .

Comments

MTC Dallas said…
I'm ignorant to exactly what you have attempted and for what purposes, but after reading your post here are some thoughts that came to mind.

IMO, the BDC's real power is not in using it to surface items through the OOB webparts, but rather to open the items up for indexing that would otherwise require an LOB specific search interface. When combined with search you can also create a custom search and search results page specifically for the scope of that BDC entity. As such, you could display images as such as part of your result set.

I'm not sure of your goals exactly, but a multiple join query can be used in the application definition file. For WS, I would think that you would want a set of services that are rationalized and factored in order to access entities throughout the enterprise from various consumers. That being said, you would want to have the WS to return the composite data that forms the entity. You can certainly write that yourself or you can use tools such as K2 SmartObjects or, for SAP, Sitrion to create that layer; BizTalk is also an option here. The real message here is that in this evolution the BDC is not meant to be enterprise solution to a rationalized services environment, but rather a means to get information that is otherwise unavailable into a consumable form within MOSS.

I don't think that is a buggy parent-child relationship. If there has been no specifc data selected and the control works off of the action of clicking an item then that would be expected behavior. You see this behavior in many connected web parts - MOSS or not. That being said, expected behavior is an opinion and you might expect something different, but that doesn't make it a bug.

I've used the BDC a lot and haven't had scale or perf issues. I would guess this has more to do with the back-end DB or WS implementation than it does the BDC (I could be wrong). For example, the first call to BDC entity fronting SAP is usually a bit latent, but after the first call it generally runs quickly. Now, if you have a lot of items being returned in the Finder that could certainly cause some lag especially when searching, but again, it is something that could be improved in the Finder implementation.

Agreed, it isn't mature yet, but it is our first round. We'll keep building on it, but for now it is an excellent way to get data into your portal and indexed for search.
joy n said…
Hi Marvin,
I'm also currently working on a MOSS project and I'm struck with the attachment problem on a blog site. Msdn's work-around didn't work for me. Have you come accross a solution for this with OOB? We're not allowed yet to install dlls and create files in the 12-hive directory.
Marvin said…
Hi Maam Joy!!

Unluckily I havent been into that scenario and I havent worked with MOSS for quite sometime. Maybe a little bit of more google can do wonder for you.

Nice to hear from you. Goodluck.

Marvin

Popular posts from this blog

Hiding Unwanted Python Folders and Files in Visual Studio Code

Visual Studio Code is a universal editor and pretty good at it. However, the explorer view maybe cluttered with the automatically generated folders and files confusing developers. Python is no different. Below are example files and folders generated by Python.

The __pycache__ folder and *.pyc files  are totally unnecessary to the developer. To hide these files from the explorer view, we need to edit the settings.json for VSCode. Add the folder and the files as shown below:
Copy and paste the lines below :

"**/*.pyc":{"when":"$(basename).py"},"**/__pycache__":true

renaming default namespaces for VSTO projects in VS2008

So here is the scenario , you are starting a VSTO project and decided that your default namespace is ExcelAddInTesterApp . You created the project and started coding the project. After several days , your boss called and said "hey marvin , make use of this namespace OurCompany.ExcelAddInTesterApp , we have to add our company name to it got it?" . You get back to your machine thinking its just a simple property just like any project you've been working on. So you right clicked the VSTO project and hit properties . Boom! What the F@#$? The default namespace textbox is disabled!!!!



I've been through this and I googled for ways to do it and ended up with a blog from a Microsoft MVP telling me it can't be done because it is disabled. Then I thought of Refactoring, the beauty and grandeur of the renaming process. I selected the namespace and hit the refactor menu hoping that this would solve the problem . Unfortunately , it did not rather it displayed the message box …

Automatic Properties and Object Initializers in .Net 3.5

With the release of .Net 3.5 alongside with Visual Studio 2008 , new enhancements was again introduced . Some maybe well pronounced such as the inclusion of WCF, WPF , LINQ in .Net 3.0 and some just came unnoticed. If you have been accustomed of using a particular method or technique in implementing a certain code in .Net 2.0 , because of backward compatibility , you may not even notice that there are new ways of implementing it in .Net 3.5.

Here are two new concepts in .Net 3.5 that a developer may not notice ( at least in my opinion ) : Automatic Properties and Object Initializers . To illustrate these two , I am going to present the pre-.Net 3.5 way (.Net 2.0) and the .Net 3.5 way in creating a simple class with simple properties.

Automatic Properties

Creating a class can be tedious , especially when working with a list of properties , . One way to get around having to type the code for a private field and its public property getter and setter is to use a refactoring tool. However, …