Wednesday, April 02, 2014

Managed metadata – lookup terms using custom properties in CSOM

 

SharePoint Server 2013 introduces the notion of custom properties on specific terms in managed metadata termset and with  the added support for .NET client object model (CSOM) for managed metadata APIs you have some quite interesting scenarios that you can imagine (Check out managed metadata and navigation in SharePoint Server 2013)

A typical scenario is one in which you have a master system for which you want to export some parts to a termset in the managed metadata store. To make this to happen you will however need a key from the master system to be linked to the different terms that you are creating. Listed below is some sample code to look for a specific term based on a custom property.

   1:          static Term GetTermByCustomID(string customid)
   2:          {
   3:              Term retTerm = null;
   4:   
   5:              CustomPropertyMatchInformation matchinfo = new CustomPropertyMatchInformation(Program.clientContext);
   6:              matchinfo.CustomPropertyName = "ID";
   7:              matchinfo.CustomPropertyValue = customid;
   8:              matchinfo.TrimUnavailable = false;
   9:   
  10:              var terms = termSet.GetTermsWithCustomProperty(matchinfo);
  11:              Program.clientContext.Load(terms);
  12:              Program.clientContext.ExecuteQuery();
  13:   
  14:              if (terms.Count > 0)
  15:              {
  16:                  retTerm = terms[0];
  17:              }
  18:              
  19:              return retTerm;
  20:   
  21:          }



One of the things which puzzled me for quite a while was the TrimUnavailable property – but recently the documentation got updated which made it a little more clear - see TermSet.GetTermsWithCustomProperty method (String, String, StringMatchOption, Int32, Boolean) – apparently it is indicates whether to trim out Term objects that have the IsAvailableForTagging property set to false.


Tuesday, April 01, 2014

Session Yammer and SharePoint social data mining at SharePoint Saturday Belgium 2014

I will be doing a session on social data mining on SharePoint Saturday Belgium 2014 –  Yammer and SharePoint social data mining - actionable insights into what drives your co-workers and employees

Enterprise social tools such as Yammer and SharePoint allow you to listen to what is driving your employees. In this session we will examine how analytics tools can be use to monitor employee sentiment, predict employee churn or how they can be incorporated in an employee evaluation process. Attendees will explore how to use the different social APIs - both for Yammer and SharePoint as well as data mining and analysis tools to present employee social data in dashboards using Excel Services, Power BI and Visio Services which provide actionable insights.

Also check out the other speakers on SharePoint Saturday Belgium 2014 and the different sessions at SharePoint Saturday Belgium 2014

Monday, March 31, 2014

Search refiners in SharePoint 2013 and 2010: differences and some tips

An out of the box SharePoint Server 2010 installation shows six refiners or “Categories” including  Result Type, Site, Author, Modified Date, Managed Metadata columns, and Tags in the refinement panel webpart on the content search page.

The refinement panel webpart provides a summary of search results and enables users to filter results (See Refinement Panel Overview)


Figure Search refiners in SharePoint 2010

Refiners (SP2010) Managed Property
ResultType FileExtension
Site SiteName
Author Author
Modified Date Write
Managed Metadata Columns ows_MetadataFacetInfo
Tags ows_MetadataFacetInfo, popularSocialTags

In SharePoint Server 2013 you will get a different set of default refiners  File Type, contentClass, ContentTypeId, WebTemplate, DisplayAuthor and LastModfiedTime. The way that these search refiners are being rendered is determined by the display template which is selected.  This makes it a lot easier to modify the refinement panel. You will find the different search refiner display templates which are being used in the master page gallery underneath /Display Templates/Filters/ (The full URL will be something like http://yoursharepoint/_catalogs/masterpage/display templates/filters/)



If you look for example at the standard Refinement Item display template, you will also see why why the contentClass, ContentTypeId and WebTemplate are not shown in the search refinement panel.



A common question that you might get when upgrading from SharePoint 2010 to SharePoint 2013 is how to add the Tags refiner back in the refinement panel. This is actually pretty simple, just go to the refiners preview panel and add in the same managed property ows_MetadataFacetInfo.
One of the changes in SharePoint Server 2013 is the fact that refiner counts are not shown anymore by default. Fortunately it is actually quite easy to change this again. You can modify the display template of the refiners – the only thing you have to change is, setting the ShowCounts value to true.



The final result should look like this. If you need to repeat this step on multiple search centers you can use the PowerShell enable refiner count in SharePoint 2013





References:

Wednesday, March 19, 2014

Why enterprise social networks matter

In an time where globalization, co-creation and cross-company cooperation is essential for a company’s survival it is quite strange to see why companies still hesitate to embrace enterprise social networks (See Trends impacting collaborative tools and platforms for more background information)

The fact that we are more and more working in different locations makes it more difficult to use our traditional means of communication and collaboration. Especially in organization where physical face-to-face meetings are less and less the norm you see a change in how people collaborate.

In the late 1970s Tom Allen (MIT) undertook a project to determine how the distance between engineers’ offices was related to the way that they communicated and collaborated. One of the key findings was the fact that the probability of communicating at least once a week drops significantly if people are more than 50 feet apart.

We also see that people are not only working on multiple locations (separation by space) but also more and more asynchronously. This might be caused by the fact that people work in different time zones but also by the rise of flex-working.

This separation in both distance and time provides for some specific challenges which are hard to resolve using traditional technologies. Typical intranet and email solutions are broadcasting and are push technologies. Especially with email you see that the sender chooses the recipients (push medium instead of pull) and replies overload mailboxes.



Another side effect of using email as a many-to-many async mechanism is that knowledge gets trapped in email clients with no easy means of discovery and searching for knowledge. When a new employee enters the company he will probably be subscribed to a large number of email distribution lists but he has no access to all of the conversations which were ongoing or which happened in the past.
It is however essential that to create an organization in which social is embedded, that you need something more than enabling software tools. It is critical to have a social computing strategy that aligns business objectives, required cultural change, supporting processes and technology.

Whether you will be using SocialCast (VMWare), Salesforce Chatter, Tibco Tibbr, Jive or SocialText – a succesful implementation implementation all boils down to these 5 critical components:
  • Clear executive sponsorship and cultural willingness of the organization. If management is not listening or does not show it is listening, change will not happen.
  • Explicitly define specific communities of users to target as well specific use cases.
  • Define desired results and/or objectives for the different use cases and continuously measure the output. Make sure that the output is aligned with the core key performance indicators (KPIs)
  • Use an iterative approach – plan/experiment/learn – but make sure that the different learning experiences and use cases are aligned with your global social strategy.
  • Identify change agents (or champions or key users) who will get the social network started
References:

Monday, March 17, 2014

Images in SharePoint Server 2013 search

You might have noticed that SharePoint Server 2013 does not crawl image files (jpg, png,gif,…) and that it only returns these images as list items. Steve Mann wrote a series of blog posts about this (see links in the references) section – in the next steps I will outline a summary of the required steps as reminder:

  1. Add image to file types to search and run a full crawl of all content
  2. The image result type still uses the Default item display template – create a copy of the image result type and modify it to use the Picture item display template as outlined in SharePoint 2013: Image Preview in Search Results - Part II, strangely enough this will work different for images stored in a picture library or in another library – so you still have to modify the Picture item display template
  3. A last possible step is that you modify the hover panel so that it will also include a bigger preview of the image – as outlined in SharePoint 2013: Image Preview in Search Results - Part III

References:

Thursday, March 13, 2014

Using folders in SharePoint document libraries – some guidance and tips

The discussion about whether folders in SharePoint are a good or a bad idea comes up quite often – I already wrote a number of posts about this topic: Follow up – Folders in SharePoint document libraries – why??(October 2008)  as well as Folders and metadata – again (February 2010).

After some years of working with SharePoint and talking to a lot of users I have come to the following conclusions and I have re-written the original blog post to take into account the different enhancements of SharePoint 2013.

Sometimes users simply want to group documents in small groups since they are used to work this way, these groups of documents can be ad hoc and don’t necessarily translate into document metadata. So declaring folders in SharePoint to be evil is just one bridge too far – sometimes they have their use. But if possible and when the added value is clear you should indeed translate your folders into metadata especially when the naming of the folders contains a specific meaning.

Advantages of using folders in SharePoint document libraries:

  • It looks familiar to people used to work with file shares
  • Folders are required when you have a large number of documents in a document library – if you look at the Software boundaries and limits for SharePoint 2013 guidance on Technet – you will notice that the supported limit is 30 million documents in a single library but it also states that can use nested folders to store this amount of documents.
  • It is possible to define security on folders
  • Possible to define metadata on folders. Remark: the metadata is not replicated on the documents within the folder, if you want to do push down metadata from a folder level to the documents contained within you can use common default values or location-based metadata defaults (available in SharePoint 2010 and 2013) or document sets.
  • Possible to create an alert on a folder
  • SkyDrive Pro and Explorer View don’t really support metadata, by combining folders together with metadata you can still provide for some classification support.
  • If you really want to use folders, you can still create a “without folders” view in SharePoint.

Disadvantages of using folders in SharePoint document libraries:

  • Not possible to use it for filtering or to create views
  • Only allows for adding a single dimension of information, it also requires you to drill down into sub folders before you find the documents. All in all it is quite a rigid structure which leads to difficulty in finding content. It is especially annoying since you don’t see a count for the number of items contained in a folder so you click all the way down just to find that there is no document stored in the folder.
  • When you move a document to another folder (because you miscategorized it) - the url will change. This is not the case when you change a metadata field
  • Will increase the length of the URL - remember URL length for Docs in SharePoint is still at 260 characters
  • Contributors can change your carefully architected folder structure containing your classification.

Just keep in mind folders should be the exception in SharePoint and not the rule. Do not hesitate to leave a comment or your opinion.

Tuesday, March 04, 2014

Lock site collections in SharePoint Server 2007 and 2010

After migrating data from SharePoint Server 2007 to SharePoint Server 2010 you might want the information to be still available on the original SharePoint 2007 but you want to avoid that they still make changes to the original content. The easiest way to do this is using

stsadm –o setsitelock http://sitecollectionurl –lock readonly 

which allows you to lock one or more site collections - see Lock site collections (Office SharePoint Server) on TechNet for more information.

SharePoint Server 2010 provides you another option to do this using the Set-SPSiteAdministration PowerShell cmdlet -

Set-SPSiteAdministration -Identity http://sitecollectionurl -LockState ReadOnly