Skip Ribbon Commands
Skip to main content
SharePoint

SharePoint Inspiration

Jan 26
Synchronizing limitations with files between Office 365 and SkyDrive Pro

​I found a great summary of the limitations when synchronizing files between Office 365 and SkyDrive Pro. The post is written by Christopher Woodill at the Microsoft Trends website.

This great new feature comes of course with some limitations reagarding the size of files, the number of files and amount of storage within site collections and lists. Also there are some limits regarding synchronization, file structure, use of characters and file types.

The post can be found here.

Office 365 and SkyDrive Pro hard limits are found here.

 

Jan 26
ShareCoffee - a lightweight library for creating SharePoint Apps

Thorsten Hans has created a lightweight library for accelerating the creation of SharePoint Apps. It is easy to install and to incorporate into your App and allows you to solve some common functionalities in SharePoint Apps. Think of notifictions, contextual information, status messages, cross-domain queries and more.

https://github.com/ThorstenHans/ShareCoffee

Dec 12
Design a SharePoint 2013 Architecture – The basics

​On Tuesday December 10th at DIWUG i have held a session about "Design a SharePoint 2013 Architecture – The basics".


The session walks you through the necessary steps to design a SharePoint 2013 architecture. It explains what information is needed to actually design such an architecture and discusses the many things you need to know to make the right decisions. It helps you to design a small, medium or large SharePoint farm for your customers.

Sep 28
Change user’s credentials connecting to TFS when using Visual Studio 2012

​When doing SharePoint development projects we mostly use a Single Server Farm build in a virtual machine. This virtual machine is copied between the developers to prevent developers to build their own development machine. If you copy such a virtual from another developer and you want to work in the same project folder it still connects to TFS with that developers account.

Most developers create a new project connection with TFS based on their account in another folder on disk. This is a time consuming and totally unnecessary when you are the only one working on that virtual machine. It would be easier to change the account which connects TFS to Visual Studio.

And that is easy!! Just open your settings and go into "User Accounts".

userscredentials1.png 

You will find at the left side a link to "Manage your credentials". This will open a new view. Select "Windows Credentials" at the top and all credentials against domains and URLs are shown below.

userscredentials2.png 

Change the credentials for the domain and URL's of your TFS connection by clicking on the "Edit" link below each of the credentials. Restart Visual Studio and you are ready to go. You now connect to TFS with your own credentials in the same project folder.

Sep 19
 Microsoft Clustering on VMWare – What can be done with SQL Server 2012?

I design SharePoint platform architectures for a lot of our customers. Nowadays most customers are using some kind of virtualization technology. A lot of those customers are using VMWare virtualization technology like VMWare vSphere 5.1.

When you are using Microsoft Clustering technology for your data storage in your SharePoint platform architecture there are some things you need to be aware of when using VMWare.

Since SQL Server 2012 we have two (new) technologies for clustering.

  • Microsoft AlwaysOn Failover Clustering which is mostly used for supporting high availability. In theory is handles the failover of a SQL Server to another node within the same cluster when the active SQL Server does not function anymore.
  • Microsoft AlwaysOn Availability Groups can be used for disaster recovery due to sets of databases that are synchronized to another location.

Both use the Windows Server 2012 Failover Cluster and expect that the Failover Clustering feature is installed.

But when using VMWare vSphere 5.1 in combination with the clustering technologies there are some important things to understand;

  • Microsoft AlwaysOn Failover Clustering is based on shared-disks and therefore not allowed to be used in combination with VMWare vSphere 5.1 when using vMotion.
  • You can use Microsoft AlwaysOn Availability Groups in all cases when using non shared-disks only.

VMWare-Clustering-table.png

Deviating from the supported Microsoft clustering solutions will eventually result in losing your support for VMWare.

More information can be found at:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1037959

Also an interesting article which goes deeper into the background of reasons why:

http://longwhiteclouds.com/2013/03/22/the-status-of-microsoft-failover-clustering-support-on-vmware-vsphere-5-1/

Aug 26
Blank icon after copied documents are converted with Muhimbi PDF Converter in a SharePoint 2010 environment

​As Microsoft Partner we always try to use as much as possible out of the box SharePoint functionality. If functionality gets more specific we first check if there are any products on the market we can use. For PDF conversion in SharePoint there is a great product called Muhimbi PDF Converter. It allows you to convert any type of documents from the user interface of SharePoint and has the ability to use a separate PDF converter server which increases conversion speed dramatically.

MuhimbiPDFConverter.jpg

But even with third-party products you can have some issues. Something which is of course normal due to the fact it is still software. Some time ago we implemented the product at one of our customers. That customer uses a single site collection with a lot of project sites. Each project site contains multiple document libraries with a lot of Word and Excel documents. A part of the process when documents are finalized is converting to PDF files. At some point we needed to copy the documents (Word, Excel and PDF) to another project site within the same site collection.

Our customer used the Content and Structure page which allows in an easy way to copy and move documents from one site to another site. But after copying the PDF files we lost the PDF icon and a blank icon was shown. The problem did not appear when in the new project site the Word document was converted again to PDF. Somewhere during the copy action from within the Content and Structure page metadata was lost which causes the PDF icon to be replaced by a blank icon.

Together with Muhimbi we did some extensive testing and tried several ways to copy the document from one project site to another project site. In every case the icons were correct. Using the File Explorer, with and without document metadata did not cause the same problem. But as soon as we used the Content and Structure page the problem arises.

The following steps will reproduce the problem;

  • Open Site Settings of the site collection and make sure that at site collection the "SharePoint Server Publishing Infrastructure" feature is enabled
  • Create a site and place one or more libraries in there.
  • Enrich the libraries with Content Types and some metadata fields
  • Now generate a site template from that site an make it available to generate sites from that template
  • Create site "A" from the template
  • Place documents in there and use the Muhimbi solution to convert those to PDF
  • Now create site "B" from the template
  • Move the documents from the library in site "A" to site "B" using the "Content & structure page within SharePoint.
  • Check the documents in site "B" and try to convert documents.


The solution seems to lay in a single field of the item and can be solved by executing the following command at one of the servers in your SharePoint Farm.

stsadm.exe -o setproperty -pn Muhimbi.SharePoint.DocumentConverter.PDF.SkipMetaDataFieldNames -pv vti_filetype

It seems that for some reason the Content and Structure page adds this property to all files so SharePoint no longer resolves the file type automatically. This will solve the problem for all copied files with or without metadata.

I understood from Muhimbi that there will be a fix implemented in the 7.1 release of the product. Thanks to Muhimbi this problem was resolved in a very short time period.

More information about the product can be found here

Aug 09
Exposing external BCS content via search in SharePoint 2013

​Goal

The goal of this article is to explain how you can expose external data through the Business Data Connectivity Service into search in SharePoint 2013. This blog post will take you onto a tour from creating data, exposing it through BCS as an external content type, viewing it as an external list and finally getting that data back into the search results.

We need external data

So the first step is to have some external data. We will use the Northwind database which can be found here;

http://northwinddatabase.codeplex.com/

Download the file and unzip the SQL Backup file into a local folder on your computer. Go into Microsoft SQL Server Management Studio and create a new database.

Right mouse click on the root item "Databases" and choose from the menu "Restore Database". Select the earlier downloaded database and restore it.

 

When SQL has finished restoring the database it will appear as follow:

 

The next step is to expose it through Business Connectivity Services (BCS) into SharePoint 2013. At first we will need a SharePoint site which makes use of a Business Connectivity Service Application. So there are some steps to be taken to achieve this.

A new SharePoint Web Application

For our example we will use a new SharePoint Web Application. But you can use an existing one if you like.

  1. Go to Central Administration and choose Application Management à Manage web applications
  2. Create a new web application. (E.g. a BCS Test site on http://sp-dev-2012:101/)
  3. Generate a new site based on for example the team site template.

Create a Business Data Connectivity Service Application

If you did not yet have a Business Connectivity Service Application execute the following steps;

  • Go to Central Administration and choose Application Management à System settings à Manage Services on server
  • Check if the Business Data Connectivity Service is started. If not click on "Start" to start the service
  • Go to Central Administration and choose Application Management à Manage service applications
  • Choose "New" from the ribbon and select Business Data Connectivity Service.
  • Create the service application.

We have to configure the service and make sure that a Host SharePoint site URL is given for enabling Profile Page Creation. This is for hosting the External Content Types. It is recommended to use a dedicated SharePoint site to host them. In our case we generated a subsite under our web application (E.g. http://localhost:101/BCSProfilePages). This configuration is done though the management page of the service. Click on the just created service application and choose the option "Configure" in the ribbon. This will open a popup dialog which allows you to enter the URL.

 

Connect the service to the SharePoint Web Application

We have to make sure that the Business Connectivity Service Application is connected to the web application. This is checked by clicking next to the name of the just created web application and choose the option "Service connections" from the ribbon. Make sure that there is a checkbox marked in front of the Business Connectivity Service Application.

Connect the data source and create an External Content Type

Connecting the data source (E.g. one of the tables of the NORTHWND database) we use SharePoint Designer 2013. I'm not that fond with the designer but for creating External Content Types, Data Connections and Workflow it is a great product. So open the site http://localhost:101/ and connect to it. The first thing we are going to do is create an External Content Type. An External Content Type makes it possible to expose external data as a type within SharePoint just like other Content Types. There is a difference, because the data is and will not be in SharePoint and the available functionality around the Content Type and External List are limited in comparison with a normal Content Type and List. The cool thing is that you can enrich your External Content Type in SharePoint with additional metadata. Execute the following:

  • Choose from the navigation panel the option "External Content Types"
  • Now select the option "External Content Type" in the ribbon to create a new one.
  • Click on the link "Click here to discover external data sources and define operations". This will change the screen and allows you to add a new data connection, select the data and to generate operations needed to retrieve, add, delete and edit the data.
  • Click on button "Add Connection". A small popup dialog requests to specify what type of data source. Choose "SQL Server" and click at the "OK" button. A new small popup dialog appears which allows you to specify the data connection information. Enter the Database Server, Database name and choose the connect option "Connect with User's Identity". It is also possible to use an account from the Secure Store Service if you want. Click at the "OK" button to continue.

 

In the Data Source Explorer you will see the "NORTHWND" database added. Click on the "Tables" leaf and select right-mouse click on the "Customers" table. You will see a menu allowing you to create operations. Operations are used to retrieve and manipulate the data. For viewing data in search you only need "Read Item" and "Read List" operations. But to make it more interesting we will create all operations at once. This will allow a user to change the data from inside SharePoint.

The "All operations" popup dialog appears. Click once on the "Next >" button to move to the next screen. This screen shows you how the data source elements are mapped into the External Content Type. Select the element "ContactName" and check the box for "Show in Picker". You now will have only one warning with regards to the "CustomerID" element. Just leave that as it is. Click on the "Finish" button to generate the operations.

Now click on back in the breadcrumb to get back to the External Content Type screen. Change the name and display name of the External Content Type to "NorthWindCustomer".

The last thing we need to do is to set the correct field to the title field of the External Content Type. Select the "CustomerID" under "Fields". Choose the option "Set as Title" from the ribbon. The field name of the "CustomerID" field will change to "CustomerID(Title)". Make sure you use a non-numeric field as title otherwise you will get issues when trying to index the content in the Search Service.

 

Click on the save icon in the left top corner of SharePoint Designer to save all your changes to SharePoint. The changes are now saved to the metadata store of the Business Data Connectivity Service.

Create a profile page

Before we start the actual crawl by the Search Service Application, we need to have a Profile Page available for the External Content Type. This profile page is used for generating a correct URL in the search results. This means that the search results will return a URL to that Profile Page with a parameter CustomerID=[some value] to view the details of the data. Execute the following steps.

  • Go to Central Administration and choose Application Management à Manage service applications
  • Click on the Business Data Connectivity Service Application to manage it.
  • Select the view "External Content Types" and select the "NorthwindCustomer" Content Type.
  • Click on the option "Create/Upgrade" in the ribbon. This will open a pop dialog which allows you to create a default profile page for the External Content Type. The profile page is created inside the dedicated profile page site which we created earlier.

If everything goes according plan we should have a search results URL per item like:

http://sp-dev-2012:101/BCSProfilePages/_bdc/http___localhost_101/NorthWindCustomer_1.aspx?CustomerID=[CustomerID]

 

Create an External List

To actually view the external data you will need an External List. This list is based on the selected External Content Type and will show you the data from the external data source. This is accomplished in a very simple way.

  • Open the web application (E.g. http://localhost:101/)
  • Click on the site actions icon and choose the option "Site contents"
  • Select the "Add an app" option.
  • Choose the app type "External List". This will show a popup dialog allowing you to choose from the available External Content Types. The External Content Types are exposed through the Business Data Connectivity Service.

 

  • Click on the "Create" button to create the new External List.

Viewing the external data in SharePoint

If you click on the "Customers" list in the site contents of the SharePoint site you will receive an error.

Cannot connect to the LobSystem (External System). Reason: 'Cannot open database "NORTHWND" requested by the login. The login failed. Login failed for user 'NT AUTHORITY\IUSR'

 

The problem lays in the fact that the BCS connects to the database using the "NT AUTHORITY\IUSR". So execute the following steps.

  • Open SQL Server Management Studio
  • Select the database "NORTHWND" and go into Security à Users
  • Right-mouse click to add a new user
  • Enter under the page "General" the user name and login name "NT AUTHORITY\IUSR".

 

  • Check in the page "Membership" the checkboxes db_datareader and  db_datawriter

 

  • Select the "OK" button to save your changes.
  • Now refresh the page and you will see a list of customers from the external data source.
  • This part is only done to make sure that all settings are correct and that the data can be reached. The actual crawling of the data takes place directly in the database.

Configure a content source to crawl external data

To crawl the data we need to specify a content source for indexing the external data via the Search Service Application. This allows us to crawl the customers from the NORTHWND database. Execute the following steps.

  • Go to Central Administration and choose Application Management à Manage service applications
  • Click on the Search Service Application
  • Click on the left side navigation the option "Content Sources"
  • Choose "New Content Source" to create a new content source
  • Enter the name "Northwind"
  • Choose as Content Source Type "Line of Business Data". You are now able to select the Business Data Connectivity Service Application and specify which external data sources need to be crawled. Select the second radio button and check the checkbox of the NORTHWND database.

 

  • Click on the "OK" button to add the new content source.

Give the appropriate rights for the search service to crawl

You will need to give the default content access account appropriate rights on the NORTHWND database and the Business Data Connectivity Service Application to allow it to crawl the external data. A lot of different errors can happen when crawling external data. The most common error you will receive is "Error while crawling LOB Contents". Most of these errors have something to do with security. So execute the following steps.

If you would crawl immediately you would receive the following error:

bdc3://northwnd_northwnd/Default/00000000%2D0000%2D0000%2D0000%2D000000000000/3006/NORTHWND/3100?s_id=SEAAAAA==VwBFAEwATABJAA==&s_ce=07vfug000g10204000fu00vpffsUse SHIFT+ENTER to open the menu (new window). Open Menu

Error while crawling LOB contents. ( Error caused by exception: Microsoft.BusinessData.Infrastructure.AccessDeniedException Access denied by Business Data Connectivity. )


This error is caused by the fact that the default content access account does not have any rights to access the metadata store in the Business Data Connectivity Service Application. Take the following steps to prevent this error.

  • Go to Central Administration and choose Application Management à Manage service applications
  • Select the Business Data Connectivity Service Application
  • Choose the option "Set Metadata Store permissions" in the ribbon. This will allow us to specify an account and give it rights to all BDC models, External Systems and External Content Types at once.

 

That last option will make sure that the account has rights to all metadata store objects defined in the Business Data Connectivity Service Application.

If you would crawl now you will notice that you still get an error. The error would be something like;

bdc3://northwnd_northwnd/Default/00000000%2D0000%2D0000%2D0000%2D000000000000/3006/NORTHWND/3100?s_id=SEAAAAA==VwBJAEwATQBLAA==&s_ce=07vfug000g10204000fu00vpffsUse SHIFT+ENTER to open the menu (new window). Open Menu

Error while crawling LOB contents. ( Error caused by exception: Microsoft.BusinessData.Runtime.CannotConnectException Cannot connect to the LobSystem (External System). Reason: 'Cannot open database "NORTHWND" requested by the login. The login failed. Login failed for user 'CONTOSO\sp-search'.' )

 

As you see it has something to do with the fact that the default content access account has no rights on the NORTHWND database. We need to give the account (E.g. CONTOSO\sp-search) db_owner rights at the NORTHWND database. This is done exactly when we added the IUSR account. So follow those steps again but then for the default content access account.

Crawl the external data

Select the menu on the right of the content source Northwind to choose the option "Start Full Crawl". Check the Crawl logs by selecting the menu on the right of the content source Northwind again and choose the option "View Crawl Log". If everything went according plan you will see that there are records crawled and no errors has occurred.

Show external data through search on a page

The next and final step is to show the external data through a Search Results Web Part on a page.  We start with executing the following steps.

  • Open the web application (E.g. http://localhost:101/)
  • Click on the "Edit" icon to edit the landings page of the SharePoint site
  • Click inside one of the areas to add the Web Part. This will show an extra tab in the ribbon called "Insert". Click on the tab and choose the option "Web Part". Select the "Search Results" Web Part in the category "Search" and click the "Add" button to add the Web Part to the area.
  • Click in the right part of the header of the Web Part to get the menu and choose the option "Edit Web Part".
  • Click on the "Change query" button
  • Replace the "Query text" field with the following value
ContentSource:Northwind -Path:bdc3

 

 

Test the query by clicking on the "Test query" button. You will see some results at the right side. But you notice that we use –Path:bdc3 in our filter. This prevents two additional results created due to that the table is crawled. In our result set we do not want to have those results present. We only want to see the customers returned.  So finally close the popup dialog, the editor part and save the page.

 

Wrap up

So finally the external data is shown in the search results. As you can see we will need at least two service applications (BCS and Search) to achieve our goal. An important part is security and is the main reason for a lot of strange error messages. So check that first if you encounter any errors. I always generate an External List based on the External Content Type to check if I can reach the data from within the permissions of the current user. The next step is of course to enhance the display template and the profile page for nicer results.

Jul 28
Embedding code into SharePoint 2013 pages and fields

Since SharePoint 2013 when editing a page or a field which allows rich text you have the ability to embed code into your text.

fieldsecurity1.png

The ribbon will expose a button for this functionality under the tab called "INSERT". When clicking on the button a popup is shown where you can paste you html into. So in my case i wanted to embed an iframe of slideshare.net into a blog post.

fieldsecurity1a.png

When you paste the embedded code of a slideshare presentation the following message was shown: "This HTML cannot be inserted because this type of content is not allowed."

It seems that there is a type of field security going on here.

fieldsecurity2.png

When going into the Site Settings through the cool new site actions button you will find a link called "HTML Field Security" under the group Site Collection Administration.

fieldsecurity3.png

Clicking this link will open a popup which allows you to enter additional domains from which you trust to embed code into your pages or fields.

This same popup dialog allows you to specify if you don't want to permit to insert iframes from external domains or allow contributors to insert iframes from any external domain.

In our case we only allow to insert iframes from external domains we have specified in the list.

fieldsecurity4.png

So after adding the slideshare.net domain and going back to the blog post i was able to add the embedded code.

Jul 28
Security Update KB2844286 causes Web Part issues in SharePoint 2010

Microsoft has released a security update called KB2844286 for the .NET Framework 3.5.1 on Windows 7 Service Pack 1 and Windows Server 2008 R2 Service Pack 1. This update resolves issues regarding a vulnerability in the Microsoft .NET Framework that could allow elevation of privileges on a client system if a user views a specially crafted webpage by using a web browser that run XAML Browder Applications.

After installing this update on SharePoint 2010 servers, a lot of customers experienced issues with Web Parts and in particular when adding an image to a webpage using the Asset Picker Dialog. In all cases the "Unable to display this web part" message is shown.

Microsoft has released a fix for this issue and can be found at KB2872442 "Microsoft SharePoint applications may encounter errors while executing web parts". After installation of this fix the issues mentioned earlier will be resolved

Jul 10
Presentation at SharePoint Saturday about SharePoint 2013 and SQL Server 2012 What to choose?

​SharePoint does heavily depend on SQL Server. Today with SharePoint 2013 you have the ability to choose from different versions of SQL Server. So how do you decide what is the best combination for your project and your customer? It depends on the many different aspects like governance, dependencies, used functionality, knowledge level and costs. 


This session will talk about all these aspects, the advantages and extras when using SQL Server 2012 in combination with SharePoint 2013. The information shared in this session is interesting for all types of SharePoint consultants (including developers) and customers.

1 - 10Next
About this blog

Alexander Meijers is SharePoint Lead Architect at Portiva. He has been working in the IT sector for more than 20 years.

He started working with SharePoint since the SharePoint 2003 version and became immediately a SharePoint enthusiast.

Involved in a large amount of SharePoint implementations ranging from small, medium to large business projects handling in some cases more than 100K plus end-users.

His multi discipline allows him to handle a large set of roles in projects like; hard-core development, lead consultant, liaison between business and IT, business advisory, Project management and lead Architect.

As SharePoint enthusiast he loves to be involved in the SharePoint community and find it important to share and collaborate with people about SharePoint technology.