Document management platforms, such as SharePoint, make real collaboration around documents possible. But this does not mean that collaboration will happen in practice. The most important single point of failure when organisations seek to promote collaboration is the required change in culture amongst users. Yes, the technical aspects of migrating content and scaling infrastructure need to be carefully planned in order for the transition to go smoothly. Yes, interesting training materials need to be prepared and delivered in a way that allows employees to keep up with their normal workload. And yes, the time and costs of doing all this must never be underestimated. But none of these steps can guarantee that successful collaboration will result.

Why?

Some of the prime reasons are listed briefly below:

  • Working together is a learned behaviour.

    People have spent years learning to navigate deep, hierarchical folder structures, exchanging documents as file attachments via email and being unable to work on the same file at the same time. Skills have been built up to do this efficiently. New skills need to be learned in order to collaborate effectively and old habits or reflexes need to be overwritten with new practices. This change needs to be managed, must be participative, takes time and has costs (such as initially lower efficiency and higher stress for those making the transition).

  • Fostering collaboration comes at a price.

    So for workers, moving to a new way of working is not easy and comes at a cost. Just because the web interface for document management looks familiar, does not mean that the underlying concepts have been taken to heart. Hence the tendency to dump documents and their legacy folder structure into SharePoint document libraries without any reorganization. The results is that folders are often used inappropriately in SharePoint and users never learn to make full use of views and the power they offer. Content preparation, migration and the training approach used need to take these issues into account.

  • Better for whom?

    Effective collaboration is always better for an organization but it may appear to be threatening for individuals who have built their positions around the retention of knowledge. It is naïve to believe that knowledge-sharing will just happen and this is part of the reason why social networking in the enterprise has not brought the benefits imagined by relying on an over-simplified Like and Share approach. Incentives for knowledge-sharing need to be imagined in an appropriate manner, adapted to the organisation and its culture, the training strategy needs to include a Why Should I? angle as well as the standard How To? approach.

  • Involvement and participation in creating the collaboration strategy.

    It is difficult to promote a new approach around collaborative document management if the overall strategy has not involved consultation and participation in its construction. The top-down, imposition of collaboration around documents is a contradiction in terms and such an approach will heighten the risks of failure. Involvement of key users can smooth adoption, foster an evangelizing tendency and calm the inevitable fears which accompany deep changes to working with information.
  • Solve some key and persistent problems.

    Document management is often generic and platforms such as SharePoint offer a flexible and easily customisable way forwards. However, every organisation faces some key and persistent problems relating to documents. The issues giving rise to these problems are often deeply embedded in the structure of the organisation and faced by many users in slightly different ways. As part of the roll-out of a successful strategy around collaborative document management, it is useful to identify these challenges ahead of time, work out whether standard solutions can be prepared and made available in the new platform and “be baked” in for all users.

    Example – Managed Metadata: all users within an organisation make repeated use of core metadata. Carefully design SharePoint’s Managed Metadata service to allow users to benefit from day one.

    Example – Taming Excel: all organisations would grind to a halt in from one day to the next, if Excel spreadsheets were banished. The introduction of SharePoint provides an excellent opportunity to rein in worst risks of unmanaged Excel files (data loss or corruption) while keeping the benefits of flexibility and ease-of-use.

  • Training is not just the transmission of knowledge.

    Training is a key part of the successful rollout of a collaborative document management solution. However, it should not be carried out by SharePoint experts or based on generic SharePoint training materials. It should be delivered by training ambassadors from within the organisation, who have helped design the training process and materials. These people need to be recognized as the key actors in the success of the whole project and need to be provided the scope in their work organisation (i.e. the time) to solve problems and help co-workers.

  • Context is everything.

    We all create, edit, publish, print and share documents. Is there anyone left who is not to some degree an information worker? But while the documents may be created in Word, Excel or PowerPoint and managed through SharePoint, each organisation is different, with its own priorities, culture, systems and deficiencies. The decision to use SharePoint (or any other collaborative document management system) is therefore not just about Cloud or On-Premise, version 2010 or 2013, the extent of integration with other IT systems. It is also about adapting document management to the organisation, as well as, to some practical extent, adapting the organisation to document management.

Advertisement

CRM stands for Customer Relationship Management and with the explosion of mobile computing over recent years, these tools for itinerant workers like sales reps have become hot properties. The market is dominated by Salesforce.com, a pure online player with the slightly misleading slogan of “No Software” (they have to deal with the software, not you) and good old Microsoft, which offers both online and on premise CRM solutions via its Dynamics brand.

Both offerings are extensive, powerful and quite complex to evaluate. If you list all the features and then try to do a cost-benefit analysis, you will end up with a spinning head. Microsoft appears to be cheaper per seat per month, but Salesforce has much more integration with social media and other online systems. If you think you might need to start off online but then move to an on premise solution, Salesforce.com is out of the loop from the starting gate. Etc., etc.

So rather than attempting a full, balanced assessment of which is the best solution for you, just ask yourself this simple question:

“Is the use of Outlook email crucial to your customer relationship management?”

If the answer to the question above is yes, then go with Microsoft. If you use Gmail, Yahoo or some other messaging system, then by all means consider using Salesforce.com.

KPI lists are often used to count how many items meet certain criteria. For example, a task list may contain a Status field with the values Not Started, Started and Completed. A KPI list would count how many items have each status and compare to some metric of performance.

It is then very frequent for users to want to display the results as a chart, a step which the SharePoint 2010 Chart web part simplifies considerably. Except that the count totals in the KPI list are not available to the chart web part and neither are totals in a view. So how can a chart be used when reflecting counts of items.

There is a workaround, which entails making the column we are interested in counting a lookup from another list which contains the different values of the column. In the case of our example, Not Started, Started and Completed.

In your task list, make sure the Status column is a look-up from this other list, as follows:

When you have set the Status column on a number of items, as below:

you can then add an additional column to your Status values list called Count, This should also be a look-up column, which should be linked to the Status (Count Related) column in your task list.

The final result is a list which contains a count of the number of items in your tasks list grouped by Status.

It is then a simple process to add a Chart web part and to connect to the count data in the Status list.

SharePoint 2010 comes with a built-in rating system which allows users to record how much they like or value a particular item or page. Sometimes, it would be useful just to be able to set a Star Rating on an item in a list and simply make use of the SharePoint stars, without using all the rating infrastructure behind the scenes.

SharePoint rating uses one graphic called Rating.png on the server:

As you can see, this graphic contains all the possible star combinations and is displayed with an offset to show only the required rating. If you create a list with a choice column called Rating and provide the choices of One, Two, Three, Four and Five, then with a small XSL style sheet attached to the list, you can display the rating in graphical form.

Save the following styling as an .xsl file and upload to a document library on SharePoint.

 

<xsl:stylesheet xmlns:x=”http://www.w3.org/2001/XMLSchema&#8221; xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp&#8221; version=”1.0″ exclude-result-prefixes=”xsl msxsl ddwrt” xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime&#8221; xmlns:asp=”http://schemas.microsoft.com/ASPNET/20&#8243; xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer&#8221; xmlns:xsl=”http://www.w3.org/1999/XSL/Transform&#8221; xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:SharePoint=”Microsoft.SharePoint.WebControls” xmlns:ddwrt2=”urn:frontpage:internal” xmlns:o=”urn:schemas-microsoft-com:office:office”>

 

    <xsl:include href=”/_layouts/xsl/main.xsl”/>

        <xsl:include href=”/_layouts/xsl/internal.xsl”/>

 

 

    <xsl:template name=”FieldRef_body.Rating” match=”FieldRef[@Name=’Rating’]” mode=”body”>

            <xsl:param name=”thisNode” select=”.”/>

 

            <xsl:choose>

                <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘Five'”>

            <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-0px 0px;width:70px;</xsl:attribute>

                        </xsl:when>                        

                    <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘Four'”>

            <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-16px 0px;width:70px;</xsl:attribute>

                    </xsl:when>

                <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘Three'”>

            <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-32px 0px;width:70px;</xsl:attribute>

                        </xsl:when>                        

                    <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘Two'”>

            <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-48px 0px;width:70px;</xsl:attribute>

                    </xsl:when>

                    <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘One'”>

            <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-64px 0px;width:70px;</xsl:attribute>

                    </xsl:when>                    

                    

 

            </xsl:choose>

 

    </xsl:template>

        

        <xsl:template name=”FieldRef_Text_body.RateText” match=”FieldRef[@Name=’RateText’]” mode=”body”>

            <xsl:param name=”thisNode” select=”.”/>

                <xsl:attribute name=”style”>background-image:url(/_layouts/images/Ratings.png);cursor:default;height:16px;margin:0px;background-repeat:no-repeat;background-position:-64px 0px;width:70px;</xsl:attribute>

            </xsl:template>

            

    </xsl:stylesheet>

 

Add the reference to the XSL style sheet above via the view web part’s miscellaneous setting and the result will look something like the example below:

In SharePoint 2007, if you wanted to show graphic icons in a list on the basis of values, you would have had to insert some JavaScript into a Content Editor Web Part.

In SharePoint 2010, a similar result can be achieved via the use of an XSL formatting file attached to the list. Imagine a list where you have a Results field with the values On Target, Underperforming and Failed. It might be useful to replace those descriptions, managed perhaps through a choice field with traffic light icons. Many graphics exist as standard on each SharePoint server, and these can be reused in custom styled views.

The following example should be saved as an .XSL in a document library on your site, with the name of Results.xsl, for example.

 

 

<xsl:stylesheet xmlns:x=”http://www.w3.org/2001/XMLSchema&#8221; xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp&#8221; version=”1.0″ exclude-result-prefixes=”xsl msxsl ddwrt” xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime&#8221; xmlns:asp=”http://schemas.microsoft.com/ASPNET/20&#8243; xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer&#8221; xmlns:xsl=”http://www.w3.org/1999/XSL/Transform&#8221; xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:SharePoint=”Microsoft.SharePoint.WebControls” xmlns:ddwrt2=”urn:frontpage:internal” xmlns:o=”urn:schemas-microsoft-com:office:office”>

    <xsl:include href=”/_layouts/xsl/main.xsl”/>

    <xsl:include href=”/_layouts/xsl/internal.xsl”/>

 

    <xsl:template name=”FieldRef_body.Results” match=”FieldRef[@Name=’Results’]” mode=”body”>

        <xsl:param name=”thisNode” select=”.”/>

            <xsl:choose>

                <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘On Target'”>

                    <img src=”/_layouts/images/IMNON.png” alt=”Results: {$thisNode/@Status}”/>

                </xsl:when>

                <xsl:when test=”$thisNode/@*[name()=current()/@Name] = ‘Underperforming'”>

                    <img src=”/_layouts/images/IMNIDLE.png” alt=”Results: {$thisNode/@Results}”/>

                </xsl:when>

                <xsl:otherwise>

                    <img src=”/_layouts/images/IMNBUSY.png” alt=”Results: {$thisNode/@Results}”/>

                </xsl:otherwise>

            </xsl:choose>

    </xsl:template>

</xsl:stylesheet>

 

Create your list with a choice column called Results and allow On Target, Underperforming and Failed as possible options. Then reference the Results.xsl file you saved previously, by putting the URL to the file in XSL Link box.

The result with the XSL formatting looks like this:

 

SharePoint views are powerful tools for displaying information from lists. Views can be easily re-organized via browser-based configuration tools allowing filtering, sorting and grouping, etc.

There are also some basic built-in styles, as follows:

 

But if you want to go further, most users will quickly get lost in the wild woods of XSL formatting, which is decidedly not for everyone. A halfway house is available using some basic CSS styling of standard Microsoft SharePoint styles, as can be seen below on a modified SharePoint Newsletter view.

The page has been built by styling the ms-rtestate-field with a background colour, padding an border.

 

 

.ms-rtestate-field{

    background-color: #DFF3EA;

    padding: 10px;

    border-style:dotted;

    border-width:1px;

    }

table.ms-listviewtable tbody tr.ms-newsletteralt td{

    background-color: #EBF3C7;

    border: 0px;

    }

 

table.ms-listviewtable tbody tr.ms-alternating td{

    background-color: #ffffff;

    }

    

 

As SharePoint will also automatically alternate the rows in this view, this styling has been cleaned up to give following result.

 

The photo is simply embedded in a standard rich text field floated left and the stars use the graphic available on the SharePoint server but as a static image and not related to SharePoint’s rating system.

SharePoint is very convenient for managing document and lists. As an event management tool it is ideal to allow users to quickly register for an event and obtain the practical information they need. However, event organizers often want to theme their event site with a look and feel which is quite different from SharePoint, developed along standard web design guidelines, using CSS and JavaScript to control layout. This is difficult and costly to integrate with SharePoint and though this may be done for a corporate intranet, it is far beyond the budget limitations of small events.

Can this vicious circle be squared?

Yes by using a site template which has been specially developed with just these aspects in mind. The Event site template comes with three ready-made designs with layout and navigation separated from SharePoint so designers are free to create the look and feel they desire. A basic design is provided as a starting point in a layout called Dark, with a master page as follows:

The page is laid out entirely using external style sheets which can be developed by web designers with no knowledge of SharePoint. Navigation is provided by a standard HTML UL tag (unordered or bulleted list). This technique provides for dynamic menus which can make use of the most sophisticated JavaScript techniques, such as Jquery:

It is also possible to integrate SharePoint’s native top link menu into the event page design to ease the management of links:

Within the design, standard SharePoint web parts can be integrated to management content and to show information stored using SharePoint. This can comprise any of the standard document management features of SharePoint, such as Word, Excel, PowerPoint and Visio, and the use of SharePoint views in web pages:

What is perhaps most useful is the fact that users can be quickly registered to a standard SharePoint list, via their Windows login, using SharePoint’s modal overlay as follows:

This overlay is standard within SharePoint and allows for sophisticated InfoPath forms with dependent drop-down boxes which are revealed based on the choices made by the user.

 

The form can easily be customized via InfoPath independent of the overall design. This technique also avoids the use of pop-up windows which can be problematical depending on the browser settings of each user.

Once registered, the user can see their own registration and modify it as necessary through a view filtered on [Me] as shown below:

Admins have the full power of SharePoint to export registration lists to Excel or to run workflows to inform users about the event.

The whole event template can be managed as a single unit and saved whenever changes are made. Each new event involves simply the creation of a new sub-site using this template and the customization of the design as required.

 

Lists in SharePoint are a very convenient way to store and share information. Now with SharePoint 2010, InfoPath form customization has made it much easier to create tailor-made forms for input and display of SharePoint list data. But when it comes to printing an individual list item in a manner which many companies still require, SharePoint 2010 does not have the tools available out-of-the-box. But with a little bit of work using Word and InfoPath a very user-friendly but powerful solution can be created. Here are the steps you will need to follow.

  1. Your starting point is the list which contains your information in SharePoint. In this example, it is a simple list called costs with four columns.

    Name (a simple text column, which was the default Title column of the list),

    Country of Origin (a choice column providing a list of countries),

    Family (a numeric column constrained to values between 0 and 5),

    Signed-Off (a Yes/No column).

  2. Next step is to create a Site Content Type, (Site Settings, Site Content Types, Create) based on the Document content type. In this example, the new Content Type is called Print-Item.

  3. You will need to create New Site Columns which match the names of columns in your list and add them to the Print-Item content type.
  4. Next up, design a Word template laid out in a manner that you would like to use for printing your list information. This could take the form of the example below:
  5. Save this Word file as a template somewhere (e.g. mydemotemplate.dotx) and then upload it to your new Print-Item content type under Advanced settings.

  6. Now create a new document library called Print and add your new Print-Item content type, after changing the Advanced settings to allow for the management of content types.

    Once the Print-Item content type is available, you can hide the default Document content type, by clicking on the Change new button order and default content type link and unchecking the Visible check-box.

  7. Now when you create a new document in the document library, you should see your Word template as designed earlier. If you display the Document Information Panel (File, Info, Properties, Show Document Panel), you will see your site columns associated with the content type:

  8. Now you can insert these into the document using Insert, Quick Parts, Document Properties and chose the appropriate document property for each column in your list:


    Then save your Word file again as .dotx template and upload it to your Print-Item content type once more.

  9. You are now in a position to edit the Document Information Panel which is associated with the Print-Item content type and link it to your list rather than the document library. Fire up InfoPath and choose the Document Information Panel template:

    Then enter the URL for your SharePoint site and choose the Print-Item content type:

  10. Next right-click the Title field and Change Control to a Drop-Down List Box. Then right click Title again and choose Drop-Down List Box Properties. Select Get Choices from an external data source, then Add and create a new connection to Receive data from a SharePoint list. Then select your list.

  11. Then select the columns you require from your SharePoint list.

    Once you have finished your Drop-Down List Box properties should appear as follows:

  12. Check using the Preview in InfoPath that the Drop-Down is picking up the items from your list.
  13. Next you will need to create as Rule for each of the other columns that you want to display in your Word file for printing. You do this by right-clicking the Drop-Down List Box, Rules, Manage Rules and add a new rule as an Action. The required action is to Set a field’s value:

    Choose from the Main data source, under properties, document management, in this case the first of our additional fields, Country of Origin.

    For the value of the field, click the browse button and select Insert Field or Group and switch to the Secondary data source, which in our example is our list called Costs:

    Then select the appropriate data field, in this case Country of Origin, and then click on the Filter Data… button.

    Click Add and then select the Name field as follows:

    making it is equal to the title field in the coreProperties of the Main data connection.

  14. This is probably a good point to make sure you have saved your InfoPath form and then click Preview to check that when you select from your Drop-Down List, the next field is populated correctly according the information in your SharePoint list.
  15. Repeat the procedure and create a new rule in exactly the same fashion as described above for each additional field you require. It may seem cumbersome at first, but once you get into the swing of it, you will race through the process. Just make sure you get the right data connections each time. It is a good idea to preview after each field to verify that all is correctly configured.
  16. When done, publish the newly customized document information panel to SharePoint and when you create a new document from in the Print library, you should be able to choose the item you want to print from your list, and see the information appear, as if by magic in your Word file:

  17. As my example shows, it is also worth checking the format of your display information too, as you could be forgiven for thinking I have several thousand children if you do not notice the decimal point.

SharePoint only shows users the links to which they have access. Correct? Well, kind of.

When you create a list or document library in SharePoint, one option at creation is to display a link in the Quick Launch menu to the left.

The default is “Yes” and your list, in this example, will appear under the Lists heading in the Quick Launch menu.

If you then restrict access to a list, as I have done in the case of the For Admins list above, when logged in as a normal user, the link to For Admins will be security trimmed, that is, it will simply not be visible to users other than those with Admin (Owner) permissions.

However, imagine that you want to customize the Quick Launch menu and remove the default headings, such as Lists and Libraries? You can just create the links again and due to the permissions which have already been set, the security trimming will come into play, right?

So for Owners, they will see links to both lists.

And for normal users? Oops, unfortunately security trimming has not been applied:

The security trimming has been lost along the way. Users now see links that they cannot access. Though security is in no way compromised, as ordinary users will get an Access Denied error if they click the link, this is not good design or practical from a usability point of view.

So what is the solution? In a normal SharePoint site with Quick Launch navigation, it is possible to re-establish security trimmed links, by deleting the links from the Quick Launch and then re-establishing the Quick Launch display in the settings of each list (found under Title, description and navigation of the List Settings page).

But then you will be back at square one!

The only workaround is to enable the SharePoint Server Publishing Infrastructure feature, which allows for more fine-grained management of navigation and will retain security trimming when links are re-organized.

You can then use the Navigation Settings page. But wait a minute, as the Navigation Settings page is just a standard system page on the SharePoint server and it does not actually use any of the other things that form part of the SharePoint Publishing Infrastructure, perhaps we can just call the page directly and get to use it without enabling the Publishing Infrastructure.

Try putting a link to the page somewhere on a standard site with the following syntax:

http://yourserver/yoursite/_layouts/AreaNavigationSettings.aspx

You should then be able to re-organize your navigation to your heart’s content without losing any security trimming.

SharePoint allows the overlay of up to 10 calendars to produce a kind of stacked view of events:


 

Though these may often be different calendars, there is nothing to prevent the use of several views from the same calendar in an overlay. This would normally not be useful, but there is one context in which it neatly solves a common problem. How can deadlines before events be clearly shown in a calendar? For example, for many large events such as conferences, there are deadlines for the preparation of materials and the dispatch of documents. It is possible to produce an overlay of SharePoint views from the same calendar which show these deadlines clearly.

First, create two calculated fields in the base calendar you will be using and name them Materials Deadline – 60 days and Dispatch Deadline – 30 days. In these calculated fields, use the event Start Time and subtract respectively 60 and 30 from it, as described below:

 


 

Make sure the columns are formatted as Date and Time.

Next you will need to create two calendar views which display events but which use only the Material Deadline – 60 days and the Document Dispatch – 30 days columns.

Choose your calculated fields for the Begin and End columns. Then create two overlay calendars based on the Materials and Dispatch views, as per below:

If you colour-code the two overlay views to contrast with your base calendar, then the meaning of the deadlines should be clear.