Import and export data between Excel 2010 and SharePoint 2010

Excel, Export, Import, SharePoint 2010, Users No Comments »

SharePoint 2010 offers functionality to export data to Excel 2010 while a link is maintained to the original data. This will allow you to use data from SharePoint in such a matter that suites your business. Whenever the data changes in SharePoint 2010 you are able to refresh that data in Excel. It is also possible to import data from Excel into SharePoint 2010 very easily. It allows you to import business data into a custom list and use it in your business processes defined in SharePoint 2010. This could involve BI related processes or just other lists and views linked to the custom list.

In the following examples i will show you how to export data to and import data from Excel into SharePoint 2010. We start with exporting data to Excel. When you browse to a list in SharePoint 2010 and choose from the ribbon “List” under “List Tools” you will notice an option called “Export to Excel”.

Export1

By clicking on the option in the ribbon, it tries to download an iqy file. This file contains the information needed for Excel to get the data from. Click “Open” to open de lin into Excel.

Export2

 The Excel application opens the link and shows the data from SharePoint in a Workbook sheet. Currently the data is linked which means that whenever data in SharePoint is changed the data can be refreshed in Excel again. This is only possible when the link is still there. As soon as “Unlink” option is clicked the link is gone and you need to do an export again. As long as the link is there you will see a square around the data which is linked to SharePoint.

Note: Data changed in Excel is NOT updated in the SharePoint list.

Export3

Because you now have the data in Excel you are able to use all the Excel functionality like generating nice graphs based on the data.

Export4

What if the the data is changed in SharePoint? For example we change the percentage of “Taak 4″ in SharePoint. After the percentage is changed to 90% the “Save” button is clicked.

Export5

To reflect the change in Excel (while we are still linked) we use the “Refresh” menu command in the “Table Tools” ribbon.

Export6

This will refresh the data and the depending graphs.

Export7

 Lets say we want to import data from Excel into SharePoint 2010. We have the following Excel containing usage data of different browsers over the months.

import

Go into SharePoint 2010 and select the option “More options…” under “Site actions”.

import2

This will open the create dialog of SharePoint 2010 which normally allows you to create content like sites, pages and lists. Look for something called “Import spreadsheet” and press the “Create” button.

import3

“Import spreadsheet” will create a custom list from an Excel data file. Give the custom list a name and use the browse functionality to select the earlier mentioned xlsx file. Click on the “Import” button to start the import.

import4

This will open Excel and let you select the range of cells to import into the custom list of SharePoint 2010. The first row in the Excel sheet will define the column names.

import5

When the “Import” button is clicked the Excel sheet is closed and the new custom list is opened in SharePoint 2010. As you can see the columns are based on the first row of the selected data. The data is not linked in any way back to Excel. So you will need to export it again to get linked data. The custom list is standard SharePoint and will allow you to do anything with this list what would be possible in SharePoint 2010.

import6

Performance and Capacity Management

IT Pro, Requirements, Scalability, SharePoint 2010, Specifications, Uncategorized, performance No Comments »

The idea of performance and capacity management is that you setup your solution according to specifications which will result into specific hardware and farm setup.

capacityperformance

Technet has some articles which decribe several elements which are important for performance and capacity management. Keep in mind that defining a system depends not only on SharePoint 2010, but also on your solution. Did you use a lot of customisation? How are you users using the solution? Are you using external data sources? and how are you connected with these data sources? I think you get the picture….

The following articles are available:

  • Hardware and software requirements
    This article lists the minimal hardware and software requirements to install and run SharePoint 2010.
  • Technical diagrams
    Simply a lot of diagrams describing different setups of SharePoint farms and use of feature sets.
  • Technical case studies
    This include information about environments. Think of specifications of hardware, topologies and configuration. But also health and performance data, database content, indexes and external data sources.
  • Software boundaries and limits
    This will help you understand performance and capacity limits of the product. Keep in mind that this depends on your solution. The capacity elements which are addressed are boundaries, thresholds and limits.
  • Capacity and sizing
    A single whitepaper describing elements to understand targets, data architecture, hardware support versus number of users, monitoring and adjusting your environment.
  • Capacity test results and recommendations
    This will include a set of white papers describing the impact of specific feature sets. This will include things like characteristics, test results, recommendations and troubleshooting performance and scalability.

Compare SharePoint 2010 Editions

SharePoint 2010 No Comments »

Microsoft has a comparison list on their SharePoint Website which allows you to compare the features between SharePoint Foundation 2010 , SharePoint 2010 Standard and SharePoint 2010 Enterprise.

comparesharepointeditions

You are able to compare all features at once or by the known slices called Sites, Communities, Content, Search, Insights and Composites.

http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx

Microsoft SharePoint 2010 Software Development Kit Available

Developers, SDK, SharePoint 2010, Software Development No Comments »

The Microsoft SharePoint 2010 Software Development Kit is available for download. It contains conceptual overviews, programming tasks, samples, and references to guide you in developing solutions based on SharePoint 2010 products and technologies.

As stated on the website “The Microsoft SharePoint 2010 Software Development Kit (SDK) includes documentation and code samples for Microsoft SharePoint Foundation 2010 and for Microsoft SharePoint Server 2010, which builds upon the SharePoint Foundation 2010 infrastructure. The documentation includes detailed descriptions of the technologies that SharePoint Server 2010 and SharePoint Foundation 2010 provide for developers, reference documentation for the server and client object models, and step-by-step procedures for using these technologies and object models and programming with them. This SDK also includes best practices and setup guidance to help you get started with your own custom applications that build and extend upon the SharePoint Foundation 2010 and SharePoint Server 2010 platforms.

Download the SharePoint 2010 Software Development Kit here.

Using Business Connectivity Services in SharePoint 2010

BCS, Business Connectivity Services, Connectivity, SDN, SharePoint 2010, SharePoint Designer 2010, Uncategorized No Comments »

The following article is published in the online digital magzine of the SDN for SharePoint. The complete article can also be read below:

Many organizations use a combination of different systems to incorporate their business data and processes. Depending on the need one or more different back-end systems are used to store and maintain business data. Employees will need to have access to all those different back-end systems to get information they need. What if you could expose all that information through one Portal? This will cut maintenance costs and support to employees because they are using only one entrance to reach their information. It also enables employees and suppliers to get access to business data from outside the company through a computer or mobile device while your back-end systems are not exposed to the outside world. SharePoint 2010 has a solution for this called Business Connectivity Services.

SharePoint as an integration platform
SharePoint is often seen as only a collaboration and Portal product on the market. SharePoint is mostly used as an internet facing website, extranet or intranet. But with the release of Microsoft’s newest version of SharePoint called SharePoint 2010, this will absolutely change. Today SharePoint 2010 can best be seen as a platform product which exists of many capabilities on many levels like social media, record management, collaboration, document management and more. The power of SharePoint is combining all those capabilities. One of them is integrating and exposing different business data and processes. The integration with Office and working offline and its ability to connect to external data sources has been improved dramatically.

With Microsoft Office SharePoint Server 2007, also called MOSS 2007, you were already able to connect to external data sources. But there were some major disadvantages. Building up a connection had to be done completely in Xml. Secondly data was only viewed and could not be edited without creating custom coding. There are some great tools around like “BDC Metaman” but still for a lot of people using Business Data Catalog (BDC) was a nightmare.

With SharePoint 2010 this has been improved. It actually gets to be fun creating connections to external data. SharePoint 2010 allows you to expose very easily business data from back-end systems. Business Connectivity Services (BCS) will bring different worlds of information together. And it gets even better. You are able to delete, update and even add new items to that back-end system. Don’t get me wrong. There are still some challenges to overcome and if you want to connect to something which is not supported OOB; you will need to write code.

BCS Architecture
The BCS architecture exists of two parts mainly, exposing external data through lists in SharePoint 2010 and exposing external data through parts in an Office client. BCS uses External Content Types (ECT) and External lists to expose data inside SharePoint 2010. From their using VSTO packages data is exposed through External Business Parts in an Office client.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_1
Figure 1: BCS Architecture

External data can be accessed through a SQL Server connection, WCF, .NET Connector or your own written custom connection. SharePoint 2010 supports OOB a number of systems which can be exposed through its environment without writing any line of coding. Examples are SQL Server and SAP.

When business data from external systems is exposed in SharePoint 2010 as a list it is nothing more than a view on that data. The data itself is not stored in SharePoint 2010. But you are able to browse, view, change and even search through it. Before we go into exposing external data there are some new types of components in SharePoint 2010 we need to understand better.

External Content Types
Solutions based on BCS rely on the use of External Content Types to expose and integrate external data into SharePoint. The External Content Type is just like a Content Type and describes the schema and data access capabilities of an external data source and its behavior inside SharePoint and Office clients. It uses a database connection, web service, .NET connector or custom code to connect to the external data source. External Content Types are created in SharePoint Designer 2010 or with Visual Studio 2010. It is also possible to define an External Content Type in an Xml file and import it into the Visual Studio environment.

External Lists
The data exposed through an External Content Type is shown in an External list. The External list looks just like an ordinary list in SharePoint. Some options you have on ordinary SharePoint lists are not available to the External list. For example adding extra columns, changing existing columns and using Workflow is not allowed.

Associations
It is also possible to associate External Content Types to enrich your data. Think of showing the orders a customer has made. SharePoint Designer 2010 supports only two ways of creating associations. The first one is a one-to-many association based on a foreign key and the second one is self-referential associations based on a foreign key.
With Visual Studio 2010 you have also the ability to create one-to-many associations and many-to-many associations without a foreign key. And it is even possible to create multiple External Content Type associations when multiple External Content Types are required to identify a unique item.

Solutions
When we talk about exposing external data using BCS we have two options. The first is called “simple” solution and is created using SharePoint Designer 2010. It delivers an OOB UX solution on thin and rich clients like Outlook and Groove based on External lists. Connections are only made to existing back-end integration services (SQL Server, SAP …) or other simple databases using simple BDC models (few ECTs and simple associations).

Secondly is called “Advanced” solution and is created using Visual Studio 2010. You will be using this type of solutions when custom UX and data integration on thin and rich clients is needed or when the need is for custom back-end connectivity through .NET objects. This will often involve complex BDC models (many ECT’s and complex associations). Such a solution is built from scratch or based on an import from an export of a “simple” solution made in SharePoint Designer 2010.

BCS and SharePoint Designer 2010
So, how does it work? Actually using SharePoint Designer 2010 will allow you to create a Business Connectivity Service solution without writing any line of code. In our example we use the “Customers” database of a company called Contoso. This database contains customers, orders and the products they have ordered. We will be using an intranet website called intranet.contoso.com. We start SharePoint Designer 2010 and open this intranet website. At the left navigation under “Site Objects” we choose the tab called “External Content Types”. The ribbon gives us the option to add a new External Content Type as can be seen in figure 2.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_2
Figure 2: Setting up an External Content Type

The name “Customer” is entered and de link behind “External System” is clicked on. This will allow us to choose an external system.  We connected to the database “Customers” on the local server under the current users’ identity. In a real life scenario you would not be using the current user’s identity but a separate account.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_3
Figure 3: Choose operations from the connection view

The view shows us all available routines, views and tables in the selected database. By right-clicking on the “Customer” table, see figure 3, and selecting the option “Create All Operations” the operations on that table are generated for you automatically. These actions will startup a wizard which allows you to select the fields from the table and specify the primary key as the identifier which can be seen in figure 4. It is also possible to add some filter parameters but we will not do that for now.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_4
Figure 4: Define the parameters for the operation

In the wizard are messages and errors shown at the bottom of each step which guide you through the process of setting up the operations. These messages and errors tell you what you have to change or to correct in that step. It is also possible to create each operation separately.  Remember that both operations “Read list” and “Read Item” are needed for browsing and viewing when you want to create an External list based on this External Content Type.  The others are needed for deleting and updating existing items and adding new items.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_5
Figure 5: Overview of an External Content Type

Finally we need to save the External Content Type which is shown in figure 5. The configuration data has been stored into the Metadata store of the Business Data Service. We will need to do the same for the “Orders” table. If everything went well you will now have two External Content Types called “Customer” and “Order”.

We will need to create two External lists based on each of the External Content Types to view the data inside SharePoint 2010. These lists will appear under “All Site Content” of the intranet website just like ordinary SharePoint lists.

It would be nice if we were able to view the profile of a customer and the orders he has made. For that we need to create an association. We go back into SharePoint Designer 2010 and select the External Content Type called “Order”. We need to add from there an association to the External Content Type “Customer”. An association is just like an operation and needs to be added under the ”Operations Design View”.

You will need to start creating the association from the same table as you did for the other operations. Again right-click the “Orders” table in the “Data Source Explorer” and select the option “New Association”.  We change the name to “GetOrderForCustomer” and browse to the Related External Content Type called “Customer” and associate the primary key with the foreign key as can been seen in figure 6.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_6
Figure 6: Setting up an association

The next step, figure 7, is defining the input parameters. Because we need to get the orders based on the customer, the field “CustomerID” is mapped to the identifier. By doing this the association will understand the relation setup between both External Content Types.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_7
Figure 7: Define the input for the association

Finally we press the finish button and the association is created. We will need a Profile page to see the effect of the association. But before we can use a Profile page to show our association, we will need to specify the URL where the Profile page is going to be hosted. This is done through the configuration of the Business Data Service in Central Administration. This configuration, see figure 8, is called “Configure External Content Type Profile Page Host”.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_8
Figure 8: Configure the External Content Type Profile Page Host

The Profile page can now be created via SharePoint Designer 2010 or directly through the administration of the Business Data Service Application. Whenever you decide to change the association you need to upgrade the Profile page. The previous Profile page will be overwritten. A URL is generated and expects an identifier of the customer.

The Profile page contains several Business Data Web Parts. A Business Data Item Builder Web Part, which is invisible, is used for retrieving the input parameter in the query string of the URL. A Business Data Item Web Part for showing the customer information and a Business Data Related List Web Part for showing the orders are both connected to the Business Data Item Builder Web Part. By calling the generated URL with a customer identifier will show the customer and the orders he has made. An example is seen in figure 9.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_9
Figure 9: Customer profile page

As you can see we expose related data from a “simple” database model into SharePoint 2010 External lists while not writing any line of code. You can imagine how easy it is for you and your customers to expose business data using SharePoint Designer 2010.

BCS and Visual Studio 2010
But what if you want to do for example a many-to-many relation between objects? SharePoint Designer 2010 will not offer you directly an OOB solution. And what if you want to influence the way how data is returned and even want to put some business logic in between? You could use a WCF service or database views and connect from SharePoint Designer 2010 directly to it. But in most cases you will need more freedom. In those cases Visual Studio 2010 will do the trick.

In the following example we will use the relation between students and lessons at a school. Each student will follow multiple lessons and lessons are followed (in most cases) by multiple students. To store such information, see figure 10, you would use three tables in your database like one table for storing students and one table for storing lessons and one for storing the combination between them. 

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_10
Figure 10: Database diagram of many-to-may relation

In this example I have translated the three tables to two data classes called “Lesson” and “Student” and one manager class called “SchoolManager”. Figure 11 shows the class diagram of these classes. The “Lesson” class contains a collection to “Students” classes. The “SchoolManager” class is a singleton containing all “Student” and “Lesson” classes and a method for returning a collection of “Lessons” classes based on the identifier of the student. There are other ways to resolve this into a manageable solution but for now we used this one.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_11
Figure 11: Data classes overview

In a real life example your data classes would access the database. Instead of using a database we have an initializer method in the “SchoolManager” class which generates some dummy data for us.

Visual Studio 2010 offers us more project templates for SharePoint 2010 than for MOSS 2007. We will be using the “Business Data Connectivity Model” template for this project. During the creation process of the project a URL for a local site is requested for debugging. The site behind this URL will also be used when deploying the solution. The only option further is “Deploy as a farm solution”. You will not be able to deploy this solution as a sandboxed solution. The first time when the project is created it contains an example BDC model including an entity. Further the project contains a Farm feature to install the BDC model in SharePoint 2010.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_12
Figure 12: Solution explorer view of BDC project

The “Solution Explorer”, see figure 12, contains a leaf called “BdcModel1”. This leaf contains the BDC model file with extension “bdcm”. When double clicking on this leaf or the model file will open the BDC model diagram. This is a visual representation of your BDC model.  We remove the example entity from the diagram and add two new entities. The entities are renamed to “Lesson” and “Student”.

BDC diagram model
Before we continue some explanation is needed to understand how this diagram works. The diagram is stored as an Xml file. This Xml file is translated to an External Content Type by the Business Data Connectivity Service in SharePoint 2010. For each entity a service class is generated. The diagram allows you to specify identifiers and methods per entity. For each method like Blank, Creator, Deleter, Finder, Specific Finder and Updater which is added to the entity, a static method is generated in the service class. These methods are called by for example the External List to view, edit, delete or update items returned by the External Content Type. The Xml file describes all identifiers and methods per entity.

It is very important that the Xml file contains the correct information otherwise it will not work. You will notice that when playing around with the diagram some inconsistency could appear between the diagram and the service classes which mean that you could end up updating the Xml file yourself. The structure of the Xml file is not that difficult to understand but we want to avoid updating it.

Defining properties and methods
As you can imagine the actual classes, WCF service or other means providing the data is called from those service classes. This means that you are free to define your data layer in your application as it suits you. In our example we have the three classes providing all the data we need.

At first we define per entity an identifier. The identifier will be used by the associations between entities. In our case we define “lessonId” and “studenId” both based on a “System.Int32” type. Right click on the entity and choose “Add  Identifier”. Use the properties window to change the name and the type.

Secondly we need to define the Finder method and Specific Finder method which are the “ReadList” and “ReadItem” methods. You will recognize their names from the example earlier with SharePoint Designer 2010. Click on the entity to make it the active one and go into the BDC Methods Details window to add methods. You will notice that it allows you to add one of the predefined methods. By adding such a method, Visual Studio 2010, renames it accordingly to “ReadList” and “ReadItem”.

Per method you are able to specify “In”, “InOut”, “Out” and “Return” parameters using TypeDescriptors. At first we use the BDC Methods Details window and properties window to specify the TypeDescriptor for the “Return” parameter for both methods. The “ReadList” method should return an “IEnumerable” of the data class as follow:

System.Collections.Generic.IEnumerable’1[School.Data.Lesson, BdcModel1]

The “ReadItem” method returns an instance of the data class as follow:

School.Data.Lesson, BdcModel1

The “ReadItem” method also needs a TypeDescriptor with an “In” parameter to specify which item needs to be returned. The identifier of the TypeDescriptor is set to the identifier of the entity itself.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_13
Figure 13: Data class properties nested with TypeDescriptors

Using the BDC Methods Details window and the properties window your service class is updated accordingly. But now comes the hard part. You will need to use TypeDescriptors to describe the class and its properties returned. At this moment only your class is described by a TypeDescriptor. The BDC diagram model has no knowledge about your data class’s properties. You have to tell it what it will expect there.

You need to do this in the Xml file itself. To view the diagram as an Xml file we need to close the diagram and reopen it using right click on the diagram in the solution explorer and use the option “Open with…” to open the same diagram in an Xml editor. Figure 13 shows you what Xml is needed to add to the TypeDescriptor of the Entity “Lesson”.

Now close the Xml editor and reopen the diagram to check if it isn’t broken. Repeat this step for each method in each entity. The BDC diagram model should now be the same as in figure 14.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_14
Figure 14: BDC diagram model of two entities

When opening the service class for the “School” entity, see figure 15, you will see that it generated two methods accordingly to your settings made in the BDC Methods Details window and the properties window. We use our “SchoolManager” class to get the data. You will need to do this also for the “Student” entity.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_15
Figure 15: Generated static members in service class

Before we continue and setup an association between both entities we build and deploy the solution first. After the deployment of the solution we go into “Central Administration” and open the “Business Data Connectivity” service under “Manage Service Applications”. The two entities appear as External Content Types under the service as shown in figure 16.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_16
Figure 16: Business Data Connectivity Service Application

There are now two ways to create an External list based on the External Content Type. We could do this in SharePoint 2010 or via SharePoint Designer 2010. Be careful here. If your BDC model contains an error, it can in some cases still deploy. Creating an External list based on an incorrect External Content Type will result in a created list without any forms and thus hard to remove. In SharePoint 2010 you need to rely on error messages in your log file. While SharePoint Designer 2010 gives you an exact error in a popup window and even let you easily remove the list.

We open the web application using SharePoint Designer 2010 and navigate inside “Site Objects” to “Lists and Libraries”. An option “External List” in the ribbon allows us to create an External list. Select the External Content Type “School.BdcModel1.Lesson”, enter a name and description, and generate the list. The list appears in “Lists and Libraries” under “External Lists”. Do the same for External Content Type “School.BdcModel1.Student”. To view the data presented by the External Content Type in the External List go into your web application and open the list itself. The External list will look similar to figure 17.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_17
Figure 17: Output of the External List named “Lessons”

Creating the association
Just like the first demo using SharePoint Designer 2010  we would like to have on both lists a profile page showing its own and related data. Go back to Visual Studio 2010 and open the BDC diagram model. Right click the “Lesson” entity and choose “Add  Association…”. This will open the Association Editor dialog shown in figure 18.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_18
Figure 18: Association editor

Uncheck the “Is Foreign Key Association” and add two association methods. The first association method is of type “AssociationNavigator” created in the entity “Lesson” and is renamed to “GetStudents”. The Second association is of the same type “AssociationNavigator” created in the entity “Student” and is renamed to “GetLessons”. Both your service classes will be updated accordingly. A separate method will appear in your service class like in figure 19.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_19
Figure 19: Generated static member for association in service class

Some code is added to both members, to retrieve the students based on the identifier of the lesson, and retrieve the lessons based on the identifier of the student. Finally the BDC diagram model is finished and looks similar to the one in figure 20.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_20
Figure 20: Final BDC diagram model

Again we build and deploy the solution to our web application. Go back into “Central Administration” again and open the “Business Data Connectivity” service under “Manage Service Applications”.  Right click on the “Lesson” External Content Type and choose the option “Create/Upgrade Profile Page”. This will generate the Profile page. The URL to the Profile page is shown in the last column of this view. Do the same for the “Student” External Content Type.

Finally, see figure 21, we can view the Profile page which is the same as in the previous demo. The Profile page shows the related lessons for the student, and the related students for the lesson depending on which Profile page you are. You need to specify an identifier to each of the Profile pages to get results.

Meijers_Using_Business_Connectivity_Services_in_SharePoint_2010_21
Figure 21: Profile page of the student

Visual Studio 2010 gives you more flexibility and allows you to implement complex and advanced solution models.

Conclusion
Business Connectivity Service is a great way for exposing external data and back-end systems to your users in a trustful environment. It has been improved dramatically and allows you to expose data very easily. SharePoint Designer 2010 can be used for “simple” solutions to expose data without writing any code, while Visual Studio 2010 will offer you more flexibility to your business logic and allows you to implement “advanced” solutions.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in