SharePoint bug: mysterious deleted tasks

In the June 2016 CU for SharePoint 2013, there’s a bugfix for a problem we’ve been researching for some time. The bug itself was found by my colleague Said El Yaghmouri.

We submitted a bugreport to Microsoft. Here’s a recap of that report.

Description

When I delete a document set in the document library, non-related tasks are deleted from the task list.
After deleting the document set, I check if the related tasks are deleted. The related tasks are indeed deleted but also (and incorrect) some other tasks are deleted. The incorrectly deleted tasks have no relation to the deleted document set. They have a lookup value to a different document set or even a blank/empty lookup field.
This issue occurs on any type of list with a lookup column set to the document library and ‘Cascading Delete’ set, not just the Task list.

This issue also effects multiple lists, as long as they have a lookup column to the document library and ‘Cascading Delete’is set.

After some research we found the issue:
It seems that the cascading delete removes all the tasks that have an ID that corresponds with the (list item) ID’s of the documents inside the deleted document set.

Expected behavior

Only the explicitly related tasks to a (to be) deleted document set should be deleted.

Steps to reproduce the problem

Setup environment

  • Create a new SiteCollection (In this example: “Case”)
  • Go to Documents > Library Settings > Advanced Settings
    • Allow management of content types > Set this value to Yes
  • Go to Documents > Library Settings > Content Types
    • Add from existing site content types:
      • Add Document Set > Click OK
  • Go to Site Content
    • Add an list (via Add an app), based on Tasks
      • Name: MyTasks
  • Go to MyTasks > Settings
    • Create column
      • Name: RelatedDocSet
      • Type is Lookup: Documents on ID
      • Enforce Cascading Delete

Setup data

  • Go to Documents
    • Add a document set (in example: Test docset)
    • Add 2 documents (in example: Test Document 1 & Test Document 2)
    • Customize the default view to show the ID of the documents
      Note the ID’s of the test documents: 3 & 4
  • Go to MyTasks
    • Create a number of tasks with NO relation to a document set.
      RelatedDocSet is set to (None).
    • Make sure there are tasks that have ID 3 & 4

Trigger the cascading delete

  • Go to Documents
    • Open the document set (in example: Test docset)
    • Open the ribbon tab ‘Manage’
    • Click on Delete
    • Confirm the delete action by pressing OK
  • Go to the created list (in example: MyTasks)
    • Check what tasks are deleted
    • In this example taskitems with ID 3 & 4 should still be there as they have not relation to the deleted document set.
    • Tasks with ID 3 & 4 are not there anymore !!

Provider-hosted apps and SharePoint memory

After a period of building and testing a full-blown business application (a provider-hosted app on a SharePoint 2013 farm) it was time to release it to Production.

After an hour or so after installation on Production, I received a call from the IT department telling me memory usage of the SharePoint front-ends has increased significantly. More than 500MB per server and growing… Up to 2GB+…

Very naively, during building, I never really looked at memory usage because I assumed, since I wasn’t building a farm solution, SharePoint would clean up its own mess and the provider-hosted app would be kept under control by the garbage collector.

After the initial call from IT, I immediately started looking at our provider-hosted app. Was there anything there that could leak memory? I did see memory growing so obviously there was an issue.

Because I couldn’t find anything wrong in our code, I decided to start a new provider-hosted app, generated from Visual Studio. Continue reading

Hitting the listview threshold AKA did you empty your recycle bin?

A couple of weeks ago, I received a call from a customer telling me his users were hitting the listview threshold eventhough he was sure there weren’t more than about 3000 listitems in the specific list they were using.

Now, after several years of working with SharePoint, you somehow develop a sort of sixth sense of understanding what the problem might be. I’m sure all you SharePoint developers recognize this 🙂

So I asked the application owner if he could check the recycle bin (both of them!) and empty if needed. Fortunately, that did the trick.

After some Googling, I found out that this behaviour is known for SharePoint. Items in the recycle bin are not really deleted. If you are using an indexed field, the deleted items in the recycle bin will still be taken into the total count. So, if there are a couple of thousand deleted listitems in the recycle bin and only a few in the list itself, you might still hit the listview threshold.

SharePoint Notifications Facebook / Google style

A few weeks ago, a client of mine wanted a way of notifying intranet users of new functionality. Now of course you can show some sort of message in the middle of the intranet homepage, but we wanted something more like a ‘Facebook / Google’ experience.

If there is a new piece of functionality, the visitor should get a nice looking notification at the top of the screen, even if he’s not on the homepage.

So, how to go about this? I wanted the administrator to have several options:

  • He should be able to show a notification one time only or multiple times.
  • The notification should have a:
    • ‘Close’ button if it’s a one time only notification
    • ‘Remind me later’ button for recurring notifications
    • ‘Go to’ button which will take the visitor to a specified URL

We start off with the creation of a Notifications list which will enable the administrator to add notifications in a simple way.

Please note that I wrote this functionality for SharePoint 2010 but I’m sure it will work in SharePoint 2013 as well…

Continue reading

Getting ready for SPC12!

Only one more days before I leave for the SharePoint conference 2012 in Las Vegas. And for those who are connected to me via Twitter (https://twitter.com/ErnstWolthaus, @ernstwolthaus) know I’m really excited about this conference. For more than 1 reason:

  • Las Vegas
    What a great venue to pick for Microsoft for the first SharePoint conference about SharePoint 2013. Off course it should be all about SharePoint 2013 but the ambiance of Las Vegas will certainly contribute to a great SPC12!
  • The SharePoint community
    Since I’ve been involved with SharePoint, I’m amazed by the amount of SharePoint knowledge that our community is sharing every day! There’s no community that’s living up to the name of it’s product more than the SHAREpoint community. I really love the way people can get excited about anything in SharePoint.
    I couldn’t agree more with Joel Oleson with his recent blogpost: The SharePoint community is the BEST technical community on earth.
  • Meeting the community
    The SharePoint conference 2011 in Anaheim was my first SharePoint conference. I so enjoyed meeting a lot of SharePoint enthusiasts and seeing the great speakers strut their stuff on stage. As you walk don the halls of the conference center, you can feel the excitement. And with SharePoint 2013 RTM, I guess SPC12 will be even more better!
  • SharePoint 2013
    Off course, we’re all excited about this new shiny thing we can play with. Microsoft is really maturing the SharePoint platform. A lot of enhancements have been made to the overall user experience. The new app model is causing a stir (for good or bad…). The integration of FAST into Search is a real sellingpoint to our customers as search is getting ever more important to our intra/extranets.
    But I’m most excited about the improvements on the client object model. In the past two years I’ve been doing a lot of work with REST, CSOM, SPServices, jQuery, javascript and numerous addons. The client object model in SharePoint 2010 is a powerful (and fast!) way of retrieving and editing data. Combined with all kinds of javascript libraries and a creative imagination, you can build some great one page apps.
    And with the extensions made in SharePoint 2013 the possibilities are even more powerful and awesome. Man, I so love this way to get good looking and working apps out the to customer in no-time at all, just by adding a textfile with javascript. You should see me jumping up and down with excitement when I’m presenting a session about this stuff! (it’s kind of embarrassing actually…oh well…)

So, a number of good reasons to be in Vegas next week: the people, the product, the place.
Hope to see and meet you in Vegas!

Selection Check Box Disappears from Grouped View SharePoint Slide Library

A SharePoint Slide Library offers an effective way of storing, sharing and managing your PowerPoint presentations. If you publish your PowerPoint presentation to a Slide Library, the slides will be uploaded as individual files which you can edit en even reuse for new PowerPoint presentations.

Now when you have a lot of slides, it seems only logical to group your slides into functional groups and maybe even subgroups. However, when you start grouping your slides, a SharePoint bug shows up (SharePoint 2007 & 2010): the selection check boxes disappear! Continue reading

Office programs keeps asking credentials to connect to SharePoint

Do you recognize this?

You connected a document library to Office, because you want to be able to save Office documents directly to SharePoint, without looking for the right URL. With this ribbon button, you can create a SharePoint location in Word/Excel/etc that you can use as save location. Very usefull.

After some time however, I was going nuts because everytime I had Office documents opened on my machine, about every 15 minutes, I was asked credentials for a customer site I had connected to about a year ago. I didn’t have access to that site anymore, so removing the location thru the ribbon wasn’t possible.

Very annoying when you are in the middle of a training or demosession and every 15 minutes your screen is switched to the login screen. Arghhh!!

Btw: I also had another location Office kept bugging me for. I removed the location in SharePoint but this didn’t help either…

After some #sphelp tweets and a lot of Googling the internet I finally found the solution. Yeah! 🙂

The solution can be found in the registry, at the following key:

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Portal\Link Providers\*Name of link*]

Once you remove the sites for which you are asked credentials, the problem is gone. Puff!!

Synchronize Excel 2010 with SharePoint 2010 List

A couple of days ago, I demonstrated to a group of customers the ability to synchronize Excel 2010 with SharePoint 2010.

In order to synchronize Excel data with SharePoint, you need to convert a range of data into a table. The moment you create the table, Excel will show you an extra button to “Publish and allow Sync” to SharePoint (see screenshot).

Continue reading