Understanding SharePoint Metadata – It Really Isn’t Something New – Part 1

As many of you know, I have been promoting the use of metadata rather than folders as a way to organize the information you store in SharePoint libraries. Some of you have found this transition to be difficult to grasp. I am here today to assure you that you actually have been working with metadata in libraries for years, although you may not have thought about it in those terms.

First, what is metadata? Metadata is any information that helps classify an object, a file in this case. Let’s take a look at a standard Windows library, something we are all familiar with. In a standard Windows directory, you can view information such as the date the file was created or last modified. This information classifies changes to a file basically providing some insight to its origin and most recent changes. You might use this information to list all the files in a directory by the date created to help find a file you know you created last month.

You might also use the modified data to list the files in reverse chronological order to identify the files you worked on last.

You might even have used the Size column to sort the file by size to determine which ones were taking all the space on your thumb drive. On a network drive, the Authors column also may have helped identify who created or modified the file. The Type column might also have helped to group files of similar source type. But you know that there are many other columns that could be displayed for a normal Windows directory? Just right click on the directory header to display a popup of the available data.

By design, the popup displays the 10 most common/recent columns used, but these ten are not the only things tracked for files. In fact, if you click on the More… option at the bottom of the popup, a dialog appears that lets you choose which columns to display in the current library.

To select a column, simply click the checkbox to the left of the column name. You can even click on the column title itself and then use the Move Up and Move Down buttons to the right of the dialog to change the order in which the columns appear when you display the library. For the selected column, you can define the default width of the column in pixels with the option at the bottom of the dialog. Both of these last things can be changed directly in the list itself by clicking on a column header and dragging it to the right or left to change the order or by clicking on the faint line separating the column headers to change the column width of the column to the left of the line.

Perhaps you already knew that, but did you know that some of the column data applies to only certain types of files? For example, if you have a file of pictures, you may still be interested in creation dates, sizes, and authors, but you may also find columns like the Dimensions column interesting. This column will tell you the size of the picture in pixels while the Size column tells you the size of the file in KB. These two values will help you determine if you should resize a picture before uploading it to your web page to minimize the time it takes the network to transfer the image from the server to the end user.

Similarly, music libraries have their own set of default metadata specifically to help you track the order of songs from an album, the album name, the composer, the length in minutes and seconds, and other information about the songs.

Well, that is it for the introduction. Next week I will explain a few reasons why metadata is so much more important in SharePoint than it was in Windows and then explore a way to convert from a nested folder document library structure to a metadata library structure.

C’ya then.


Likert Scale Revisited

Creating surveys in SharePoint is relatively easy and there are many different question types that can be used. However, one of the more interesting question types is the Likert scale question. You know, the question that asks something like: How much do you like chocolate: and then gives you five possible answers: Hate it, dislike it, don’t care one way or the other, like it, live for chocolate. Ok, so the question may not be about chocolate and the number of possible responses can vary greatly, but the point is that it allows the survey taker to rank their option on a scale.

One of the problems I have found is that the way SharePoint composes the Likert scale is that it has a generic question portion (some might even think of it as a section title) which appears above the scale and then individual options in rows beneath this question with each row representing one instance of the Likert scale. I suppose a picture would better explain that so, here is an example:

You can see that I’ve used the question section to tell the survey taker that the following questions use a scale of 1-10 where 10 indicates highly satisfied and 1 is highly dissatisfied. I then proceed to ask four questions with the first question being: How well do you understand SharePoint? The problem clearly is that it is difficult to tell where one question ends and the next one begins. This makes the survey hard for the survey taker to understand and they just get frustrated and close the survey. That is not what you want. Suppose you try to add extra line breaks between each choice?

Unfortunately, there is no way to add a page break between the choices because SharePoint just ignores the separate line returns. I even tried to add blank spaces and tab characters to the separating lines, but all of these are ignored as well. I even tried the HTML trick of inserting   to represent a space that should not be ignored, I then just got a new line with   displayed in the left column.

Next I tried just typing a period on the line between each question. This generated the space between questions, but generated another row of radio buttons:

The problem is that the text in the left column is too long and SharePoint has no way for the user to control the width of this area. As an example, suppose I word my questions differently such as the following question that asks survey takers how well they understand different web parts?

This question is a lot easier to understand, but only because the text for each line does not need to wrap over two or more lines.

But if I put my question in the Question column so that it appears above the Likert scale, I could just display the Likert scale with no left text so a question might look like the following:

But notice that I do not get the radio buttons to make an actual selection. Therefore it appears that the sub-question must consist of at least one character.

Another option might be to enter as my sub-question, a period.

At least this gives me the line of radio buttons to make a selection, but I may not like the dot sitting off to the right and survey takers may question what the dot means. So I started looking for other symbols that I could use instead of the dot. I found that by holding the ALT key and then entering the ASCII decimal value for a character on the numeric keypad, I could insert special characters as the sub-question. For example, press ALT-16 would give me a right pointing arrow head (if you are using the numeric keypad, make sure you have NumLock on when you do this) while ALT-17 would give me a left pointing arrow head as shown below.

When I save this question and display the survey, the arrow head still appears to the left of the row of radio buttons.

This solution means that I must enter every sub-question as a separate Likert question with a single sub-question consisting of the arrowhead as shown in the following figure with a variety of symbols.

While this solution may not have been the one I wanted (just adding blank lines between each sub-question, it does kind of work around the problem. Anyone else have any other solution to this problem?

Having a great day at SQL-Saturday Tampa. C’ya next time.

Some Additional Word Comments

Last week I showed you how to use a Word template as a form in a SharePoint library. I kept the form fairly basic, and did not have the time to cover some additional considerations when choosing to use Word to create your forms. This week I will cover a few of those considerations.

The first consideration is that since form text is stored in SharePoint lists, SharePoint 2013 does not support standard text columns of more than 255 characters by default. Sure you can use a single line of text data type or a multiple line of text, both of which default to 255 characters. At first I was surprised by this since I expected the multiple lines of text to automatically support substantially more text than 255 characters because by default, SharePoint 2010 does.

Therefore, when I created the SharePoint metadata in the library where the form would reside, I created the Lesson Learned Description as a multi-line text data type. Granted, I did not read the 2013 properties carefully because I fully expected that I would be able to store long detailed descriptions in that column. After I added the column to the Word form and saved the Word template back to the library, I created my first form record as shown in the following figure.

After entering the data I wanted into the form, I tried to save the data back to the data store, which in this case consists of the metadata columns in the SharePoint document library where I modified the form template. Notice that the value for the Lesson Learned Description column has a dotted red line around it. This means that there is an error with the value. There is nothing to indicate what the error is. However, since the column is a text field, there are very few things that can cause an error. The most likely cause for the error, and in this case the correct cause, is that the value supplied is larger (in total characters) than the program can save back to the data store.

To test this theory, I deleted a few characters from the description and tried to resave the form data. This time, as you can see in the following image, the save succeeded.

But wait just a second, this problem is even easier to solve. Just go back to the library settings and open the column settings for the multi-line column. By default this data type limits values to 255 characters or less. (No it really does not say that.) However, look for the Allow unlimited length in document libraries setting and change the selection to Yes. While you cannot specify an absolute column length in characters, you do have the ability to allow the column to accept as much data as you want to throw at it.  (Note, this was done in SharePoint 2013.  SharePoint 2010 by default allows multi-line text to be larger than 255 characters.)

However, some of the other column types present more of a problem. For example, it is not possible to surface a hyperlink field from SharePoint in a Word form. Perhaps this is because a hyperlink field actually consists of two values, the hyperlink itself and a description. You also cannot display in the form a multi-selection choice or lookup column. While these fields may appear in the Document Properties panel as shown in the following figure, I have had problems saving the result back to the SharePoint library even if the column in the library is defined as a multi-value choice field (or lookup field).

When attempting to define a multiple value choice data type, I do get the following message when creating the column.

Returning to the question of saving the data, let me show you what happens when you save the form. Unlike InfoPath which just saves an XML file containing the data. The XML definition of the form is saved separately and only once. While this greatly reduces the number of bytes saved with each instance of the form added to the library, it does limit your ability to make changes to the form fields without creating a new content type each time. On the other hand, since the entire Word form including the values are saved with each instance of the form in the library just like any other Word document, it is a simple matter to change the template to add, delete, or change any of the columns on the form. All new forms will use the new template when you create new documents. Furthermore, you can still open the old form instances since they are nothing more than regular .DOCX or .DOC files depending on the form template from which you started.

The following figure shows the first part of the Save As dialog in which I can select where I want to save the completed form. By default, the Current Folder points to the SharePoint library where the Word template has been saved. However, there is nothing to stop me from saving the document in a local drive or network drive. (I can also click on SharePoint to the left of this figure which should also show the current folder at the top of the list on the right.)

If I select the Current Folder, Word opens the Save As dialog as it usually does, but notice in the right panel that the default location points to the SharePoint library. Also note that the form is saved as a regular .docx file. The File Name defaults to XXX.docx where XXX is the first line of text in the template. You will probably want to change this as I have in the following figure. Note however that even here I can select any other location where I have permissions to save files including SkyDrive, Google Drive and other locations.

The last thing I want to point out before ending this week is that when you display the contents of the library, text strings, no matter how long their values may be, do not get any preference during display over columns that have smaller values (in terms of characters). In fact, as the number of columns that SharePoint attempts to display increases, the widths of the columns appear to be controlled more by the name of the column than the data included within the column as shown in the following figure.

If this is a problem because you need to display the data in a report, the easiest solution is to export the data to Excel. Just click on the Export to Excel button in the Connect & Export group of the Library ribbon of the library.

A dialog appears that prompts you whether you want to open the .iqy file or save it. Use the Save option only if you want to copy the file to open the Excel spreadsheet to a different computer.

Opening this file first opens Excel and then loads the data from the current library as shown in the following figure.

At this point, a few simple formatting adjustments to the columns in Excel including possibly the turning off of the grid lines, adding a style, removing some unnecessary columns and you have a presentable report.

Wait a second, what happened to the Lesson Learned Title? Remember that when you export data from a list or library to SharePoint, the export only includes the columns and rows you specify. In this case, the default view displayed the FileName so users could click on it to view the data in the form. However, you probably want to hide this field and display the Lesson Learned Title field. Note also that any filtering on rows carries through to the export. Even if you have your SharePoint view set up to only display pages of 30 rows at a time, export ignores this functionality and exports all rows that match the filter criteria, not just the first 30.

To take this example one step further, you can copy and paste the final Excel spreadsheet into a Word document if it is relatively small. Of course, you could also use Reporting Services to generate a report from the SharePoint library or even use Report Builder with the Excel spreadsheet to create multi-page reports.

Well, that’s it for this time. C’ya next week maybe. I’ll be at the SQL Saturday in Tampa, FL (http://www.sqlsaturday.com/273/eventhome.aspx ). If you are in the neighborhood, stop by to say, ‘Hi!’ I’ll be presenting in the afternoon on building cubes with either PowerPivot or Analysis Services Tabular model (I haven’t decided which way I’ll go yet.)

Are Your Lookup Lists Involved in a Relationship?

SharePoint 2010 adds the ability to define relationships between two SharePoint lists in which one list serves as a lookup to the other list. This capability existed in prior versions of SharePoint. However the lack of enforced relationships allowed users to modify the contents of the lookup list without considering whether individual lookup values were used by the referencing table. SharePoint 2010 corrects this missing feature by allowing the user to either restrict or cascade updates to the referencing list.

What does that mean? Suppose I have a list of Projects that my organization is working on. I want to use this project list as a lookup column source for a project field in a second list, such as a Lessons Learned list. In the Lessons Learned list, I define a column named Projects using the lookup column type. In the Additional Column Settings section, I edit the Get Information From field to point to Projects and use the Project Name column as the source for the In This Column field. This definition establishes the link as shown in the figure below.

Note that once I link the Project list to another list, I can also bring along any of the other fields in that list such as the Project Manager field to be displayed with the data in the Lessons Learned list. The emphasis on displayed comes from the fact that while the Lessons Learned list displays the project manager’s name associated with the selected project, I cannot change that name in the referencing list. I can only change the Project Manager’s name in the Projects list. Furthermore, the column name associated with the project manager’s name will be the concatenation of the list and column name of the lookup, Referenced Projects:Project Name in this case.

If I do not do anything else when defining the lookup, it would be possible for someone to come into the Projects list and change the name of a project that is already linked to one or more lessons learned or even to delete the project from the Projects list. Anyone familiar with referential integrity would refer to this action as creating an orphaned reference in the lessons learned table since the referenced project would no long exist.

In SharePoint 2010, a Relationship section was added to allow the list designer to enforce relationship behavior. The designer has three possible options. First, I can choose to ignore the enforcement of any relationship. Sometimes, this is the correct solution especially if I do not want to change the historical value of the lookup over time that could change the lookup values. Another possibility is to use the Restrict Delete option. This option prevents changes to the values in the lookup list that have already been used at least once in the referencing list. In other words, it would prevent changing the project name if that project had at least one lessons learned record. Finally, the third option is Cascade Delete. With this option, if I change the project name in the lookup list, SharePoint cascades that change to all lessons learned records automatically. Similarly, if I delete a project from the lookup list, it deletes all lessons learned records for that project.

With either relationship enforcement options, I must index the column before the referential connection can be created. This is similar to the behavior of referential fields in a database which require the linking fields to be indexed. The difference is that only the linking field in the referencing list must be indexed within SharePoint. If that field does not contain an index, SharePoint prompts for one using the following dialog.

Clicking OK builds the index and creates the relationship. I can review the relationships defined for a list by selecting List Settings from the List ribbon and scrolling to the last link in the Columns section to display the Indexed columns.

SharePoint then tells me the number of indices the current list has and the fields associated with each one.

In a similar fashion, I could add referential lookup columns to the Lessons Learned table for up to 20 different fields in the table. Let’s suppose I have three referential columns and therefore, three indexed columns as shown here.

Note that in order to review the type of referential link each field uses, I must return to the individual lookup table and review the properties of the lookup column. If I change the referential enforcement option, that change applies only to new or edited records going forward, not existing records that are not edited.

For the purposed of this example, I defined the Project lookup to be a Cascade Delete and the Status and Lesson Type lookups to be a Restrict Delete.

Let’s now add our first Lesson Learned as shown in the following figure.

For the purposes of this example, suppose I add a few more records to the Lessons Learned list so that the first few records look like the following figure.

Now suppose that I go into the Lesson Type list and decide that I want to delete the Coding option from the list. However, I already used the Coding lesson type in at least one Lesson Learned item (see above).

Upon clicking Delete Item from the options dropdown menu, I get a message first asking me if I am really sure that I want to do this. (Personally, I think SharePoint should check the referential option first and if Restrict Delete is set as it is here, to skip over this question.)

After confirming that I do want to delete this item from the lookup table, SharePoint tells me that it cannot delete the item because it is used in the Lessons Learned list.

(Note: Although the option Restrict Delete is in effect, changes to the lookup value will always cascade down to the referencing list.)

Next, let’s look at the Project lookup list. In the Lessons Learned list, I defined this relationship as a Cascade Delete. Next I go into the Project list and delete Project 1 at this point as shown in the following figure.

I would first get a warning message such as the one shown below that tells me that any related items in the Lessons Learned list will also be sent to the recycle bin and would ask me if I was really sure I wanted to do this.

If I click the OK button, not only does the project get deleted from the Project list, but SharePoint also deletes all of the lessons learned related to that project as you can see from this last figure of the Lessons Learned list which no longer has any lessons from Project 1.

That’s all for now.

C’ya next time.

Calculated Columns

This week I’m returning to SharePoint to look at a lists, specifically calculated columns within lists. Calculated columns allow you to combine two or more columns into a new third column. You can combine columns with different data types as long as either you or Sharepoint can convert all of the values to a common type. That common data type is typically a string, but not always. You can even use string functions to pull out a portion of the text in a single column.

Let’s begin by looking at a simple concatenation. Suppose you have a list with the first and last names of your staff in separate columns. However, when you display the data, you would like to display their full name. You don’t want to force the user entering the data to enter the name a second time after they already entered the person’s first and last names into separate fields. Therefore, you decide that you can easily concatenate these two values into a single name column using the Calculated Column data type in a SharePoint List.

Assume that we have a list representing project data and in that list, we already have the project manager’s first and last names stored as separate fields. To create a calculated column, open the list and select List Settings from the List ribbon. In the Columns section, click on Create Column. In the resulting dialog, you begin defining the calculated column by assigning it a name and data type. As shown in the figure below, I’ve selected the name: Project Mgr Name and chosen Calculated as the data type.

As with any other column definition, after selecting the column data type, the second half of the screen changes to accommodate the properties most needed for the selected data type. In the case of a calculated column, that means you must define a formula. You can simply type the equation you want to use to calculate the column in the Formula box. However, you can get some help for the names of available columns from the Insert Column list box to the immediate right of the Formula box.

In the following figure, you can see that I’ve entered a description for my Full Name field showing that I want to format the name as First Name, space, Last name. Notice that names of other fields in the list must be enclosed in square brackets. This will happen automatically when you double click the field name in the Insert Column list to add it to the current cursor position in the Formula box.

It is important to add the space between the first and last name. Otherwise, the equation will attempt to combine the names without a space in the new database. Also note that literal text strings must be enclosed in double quotes, not single quotes. You can also see that I’m specifying the output of the calculation to be a single line of text.

If I were to attempt to save this formula, I would get an error because the ‘+’ operator is used only to add two numeric values together.

To concatenate strings, you must use the ‘&’ operator. In fact, even if the values on either side of the ‘&’ operator are numeric, they will be treated as strings and concatenated in the resulting expression value.

As the figure below shows, my calculated formula for Project Mgr Name correctly concatenates the values in the Last Name and First Name fields.

Let’s now try something a little different. Suppose we want to calculate the expected project completion date given the project start date and the project length. The following figure shows these new data fields added to the project record.

For the Project End Date, we can create a calculated column that begins with the project start date column and adds the project length in weeks to it. Since SharePoint stores dates as a numeric value with the integer portion of the value representing the number of days since a predefined start date, we must add the project length in days, not weeks. Therefore, we can take the Project Length column and multiply it by 7 to get the number of days the project should last. Note that we multiple by 7 and not 5 which is the number of workdays because we are looking at elapse time, not actual number of days expended. In other words, there may only be 35 work days in 7 weeks, but there are 49 elapse days because of weekends. Note that this simplistic approach does not account for holidays, workload availability or any other factors that could influence the true elapse time to complete the project.

Behind the scenes, SharePoint converts the date to its numeric equivalent and then adds the number of days represented by the project length multiplied by 7. The resulting number however would not mean much to us. Therefore, we ask SharePoint to return the value from the formula displayed as a date without the time.

After creating this calculated column, we can display the list again to see that the project which started on January 20, 2014 and that is scheduled to last 5 weeks should end on February 24, 2014.

Suppose next that we want to have columns in the project that define the project rank and the cost. However, we want to display the data as a concatenated field of these two values. For our purposes, suppose that both columns are numeric data types as shown in the figure below.

Initially, we might think that we could simply add the two numeric values together as shown below and then tell SharePoint to display the result as a string.

Doing this however will add the Project Rank of 2 to the Project cost of 12.56 million to get 14.56. Note that the plus sign operator performs a mathematical add of the two values, not a concatenate as shown in the next figure.

If we simply switch the plus sign to an ampersand, we should be able to treat the two numeric values as strings and concatenate the two column values as shown in the next figure.

While this formula technically did concatenate the two values, the resulting output of 212.56 can be confusing. Does this project have a rank of 2 and a cost of 12.56 or a rank of 21 and a cost of 2.56?

A slight modification of the formula for the calculated column allows us to insert a space, hyphen, and a space between the two column values as shown below.

As the next figure shows, the output of this calculated column is now more readable.

Finally, let’s suppose that we want to know how many days we are currently into each of the projects in the list. We might assume that we could simply calculate the difference in days between the start date of the project and today. In fact, we might remember that SharePoint has a built-in function [TODAY] to return the current date. Therefore we might try creating the following calculated column.

If we attempt to save this formula however, we will get an error informing us that we cannot use a volatile function like [TODAY] or [ME] in a calculated column as shown in the following error message.

Sometimes, you can find another way around these types of problems. For example, you may remember that many programming languages have datetime functions like TODAY() and NOW(). As it turns out, both of these work. However, NOW() includes the fractional portion of the current day. In other words, 6 AM would be .25, noon would be .5 and 6 PM would be .75. Rather, using TODAY() returns an integer for today. Therefore, if we subtract the project start date from the integer return from the function TODAY(), we will get the number of days between the two dates. (Strictly speaking, if you want to could both the start date and today as separate days, you will also need to add ‘1’ to the result).

The following image shows that the current project is only 4 days old (Today is January 24, 2014).

That’s all for now.

C’ya next time.

Subscribing to SharePoint Libraries with RSS

Do you have libraries in SharePoint that you need to monitor for additions and perhaps even changes? I know that if you are checking these libraries manually, that over time, you will occasionally forget especially if you are as busy as I am. One way to receive notifications automatically is by setting up alerts within SharePoint. Alerts are a great tool that can send you an email when the contents of a library or list has been updated. You even have options that determine what types of changes you want to be notified about. Alerts can be scheduled to arrive instantly, daily, or monthly. With daily alerts, you can even specify when during the day you want to receive the notice and for weekly alerts you can specify not only the time, but also the day of the week.

With all that flexibility, what could RSS feeds possibly offer that alerts do not? One thing that RSS feeds provide is a description of each object in the feed which provides a better idea of its contents than simply receiving an alert containing the title of the object. RSS feeds can also be managed by any RSS reader of which you probably have at least two on your desktop. First you have Outlook which also receives the alert emails. However, rather than go into your traditional email box, Outlook places RSS feeds in a separate folder in the Folders section rather than the Mail section. RSS feeds can also be opened by other applications including stand-alone RSS readers and most modern browsers such as IE. Most RSS readers also let you organize your RSS feeds by their source which may not be easy or even possible with alerts coming into your email’s inbox folder.

So how would I go about adding an RSS feed from a SharePoint site?

First I have to make sure that RSS has been enabled for my site. My SharePoint administrator or I can do this by going to Site Settings of the site from which I want to create the feed and within the Site Administration group of options, click RSS.

The RSS options appear in the following figure and include the capability of adding a copyright notice, editor and webmaster names and a frequency of pushing out updates. By default, SharePoint recommends sending out RSS updates only once every hour (60 minutes). However, the most important property is the check box at the top of this figure that allows me to enable and disable RSS feeds for the current site.

Next I would open the library or list from which I want to receive the feed. Let’s assume for this article that I am creating a RSS feed from a library (the steps are similar to those for a SharePoint list). From the Library ribbon as shown in the following figure, find and click the RSS Feed option in the Share & Track group.

A page appears with some basic information about what an RSS Feed is and includes a link to subscribe to this feed. While the text refers to a generic RSS reader, the default is usually your email application such as Microsoft word.

Because the server application (SharePoint) is trying to open and use a program on my computer (Outlook) a dialog appears as part of the security features of the operating system asking if I really want to allow the website to open that program. This action is normal and should be allowed as long as I know and trust the URL that is trying to make the connection.

After opening Outlook, Sharepoint tries to add the RSS Feed to Outlook. Again, security within Outlook requires permission for another program to add a subscription within Outlook.

While there are some advanced options when creating a RSS feed to Outlook, most of the time, I can safely ignore these options and just click the Yes button as shown in the above image. However, for future reference, you may want to know just what those advanced options are just in case you might need them. So the following figure shows the advanced options.

The feed name is generally a concatenation of the site name and the library or list name with a colon separating the two. I can change the text the user sees by changing the Feed Name in this dialog. Note that this has no effect on the feed source. I also see a location reference. Notice that the location URL contains a GUID to uniquely identify the library or list. If I delete and recreate the source library or list, the new version gets a new GUID. Therefore, any RSS Feeds pointing to the old location will fail and the location URL must be regenerated.

It is also possible to change the folder in which Outlook saves the RSS feed.

The next two check boxes let me determine whether the RSS Feed automatically downloads any enclosures, otherwise known as attachments, from the library or list. This allows me to open the attachments even if I do not have an active internet connection to SharePoint. In addition, I can ask Outlook to download the full article as an .HTML attachment so that I can read the article without having to be connected to the Internet to get to my SharePoint server. This feature can be especially useful when using an RSS feed to an intranet site so that I can read the feeds outside of the office without using a VPN connection.

Finally, by default, Outlook only queries the RSS feed source once every hour. Therefore notification of additions or changes do not occur immediately, but do occur within at most 60 minutes.

After clicking OK, Outlook creates the RSS Feed in the Folders section of Outlook as shown in the image below.

When I click on the folder representing my feed, the center section of Outlook displays the items in the feed much like the Mail section of Outlook displays individual emails. To read an article from the feed, I double click on it. I can also easily delete an article from your Outlook feed. Note that deleting the article from my local feed does not delete the source article in SharePoint so I can feel free to get rid of the articles I have already read.

In addition to displaying the feed in Outlook, I can have the feed appear in both Outlook and IE using what is called the Common Feed list. I can get to this setting from Outlook’s properties. On the File submenu and select Options as shown in the following image.

From the Outlook Options dialog, I click the Advanced group of option in the left navigation. Then in the right panel, I scroll down to the RSS Feeds section. Click check box before the option: Synchronize RSS Feeds to the Common Feed List (CFL) in Windows. I may also want to check the option to redisplay as new any RSS feed item that has been modified.

After saving my property changes in Outlook, all RSS feeds that I subscribe to in the future will appear in both Outlook and IE under the Feeds tab of the View Favorites dropdown. To open a feed, I click on the feed name. Note, adding feeds to the CFL will not affect existing feeds already in Outlook.

That’s all for today. C’ya next time.

Using Microsoft Word to Write Your Blogs

The first thing to know about creating a blog in SharePoint 2013 is that blogs are separate sites, not just web parts on an existing site. If you haven’t created a blog site yet, you need to go to the Site Contents page for the site that will be the parent site for the blog. In the second half of the Site Contents page under the Subsites section, click New Subsite. On the following page, supply a title and web address for your site and then select the Blog template from the Collaboration tab in the Template Selection group. I recommend inheriting parent permissions initially. You can break inheritance and create custom permissions later. You can also decide on this page whether you want the blog name to appear in the top link bar. If not, you must supply another way to navigate to the blog site on your own. The following image shows a completed blog site form.

After creating the blog site, SharePoint automatically opens it for you and you should see a welcome blog entry. In the left navigation area, SharePoint also provides a set of four categories which you can use to group your blog entries. Of course you can easily remove these and add categories of your own that may be more appropriate for your blog site. SharePoint also keeps an Archive by month of your blogs to make it easy for readers to go back in time to find an older blog entry.

In the top-right column SharePoint displays a set of blog tools that allow you to do everything from create a new post, manage existing posts, manage comments to the posts, manage the categories used to group posts, change the post layout, and even launch a blogging app. What is a blogging app you ask? Let’s click the link and find out.

After a few seconds, a dialog appears asking you to enter information, a URL, to register your SharePoint blog account. Fortunately, you do not have to figure out what the URL is as SharePoint automatically fills in the Blog URL text box for you. Simply click the OK button to continue.

You should get another dialog informing you that the account registration for the blog site was successful. In the title bar of this dialog, you get your first clue that the blogging app referred to by SharePoint is Microsoft Word.

At this point Microsoft Word opens, not with a blank page, but with a blank blog template as shown below. Since you are creating the blog entry from within Word, you have all the standard

Word functionality from formatting your text to inserting tables, pictures, hyperlinks, and more. In fact, if you want to create a blog with images in it, using Microsoft Word can actually save you time.

How? Normally you have to upload any images you want to use on a web page into an image library before you try to display the image on a page. That is because the image must be on either the same server as SharePoint or on another web server that your SharePoint Server can reference. SharePoint will not display an image on a page that only exists on your local computer. After all, what would happen if your computer was not turned on or perhaps not even connected to the network anymore? Therefore, you have to first upload the image to a picture or image library. Then you need to capture the shortcut link to the image to the clipboard. Returning to the page where you want to display the image, you first must edit the page, then insert an image web part or perhaps a content editor web part into which you can paste the link for the image now stored in a library. That is a lot of work.

However, using Word, you can simply create your blog entry and include the image directly in the text as shown below:

Next, click the Publish option from Publish dropdown menu in the Blog group of the Blog Post ribbon shown to the right.

Finally, returning to my blog site and refreshing the page, I see my most recent blog entry at the top of the blog that displays not only the blog text, but also the embedded image.

What did SharePoint do with the image? Open the Site Contents and look in the Photos library. More next time on advanced permissions for blogs and how to create a private vs. public blog site.

As an interesting side note, I can also use Microsoft Word to publish to other common blog sites such as WordPress. To do this, begin a new document using the Blog Post template. If I did not see this template, I could download it from Microsoft’s template site by using the search box to search for: Blog Post.

After opening a new document with the Blog Post template, click the Manage Accounts button in the Blog Post ribbon.

In the Blog Accounts dialog, click the New button to display the New Blog Account dialog. The dropdown for the blog provider already contains several common blog sites. If my provider is there, simply select it (i.e. WordPress). If not, I would select: Other and Word prompts for additional connection information.

For the common providers, Word already knows the Blog Post URL and will automatically supply it. I will have to enter my specific blog URL along with my user name and password and any other information my provider requires.

After clicking OK, Microsoft Word attempts to connect to the blog provider. If all the information is correct, I should see the following dialog after a few moments.

I can now set the new blog provider as my default provider.

Or I can simply change the account when I begin a new blog post. Note in the following figure that I can also insert a category for my blog. However, I do not have the ability to select multiple categories like I may do when logged into my actual blog provider.

As with a SharePoint blog, the main advantage of creating my blog in Word, especially if I have embedded pictures like this example and all of my technical blog posts, is that Word handles uploading not only the blog, but also the images to the appropriate media library. (You are looking at the final result.)  I don’t have to first upload the text, then upload all the images and finally reinsert the images back into the text.  This is a huge time saver.  Using the dropdown for the publish button in Word, I can either publish immediately, or I can publish as a draft. Publishing as a draft allows me to connect to my provider and select additional categories for my post as well as schedule the publication for a different time.

That’s it for this time. C’ya.

Governance: To Be or Not To Be

It has been a long time since I’ve written any posts about SharePoint so I want to take this opportunity this week to ask you a single question about your SharePoint site.  Do you have a governance plan in effect that has been approved and backed by upper management?

Governance is one of those tricky terms that can mean different things to different people and unless you get everyone in the room to agree with your definition at least as long as the meeting lasts, you probably won’t get your point across.  For example, some people in the room might think that governance only relates to project decisions.  Perhaps this is the result of books like IT Governance by Peter Weill and Jeanne W. Ross.  A good book, but it focuses on how to make decisions that will ultimately lead to appropriate management and use of IT, not on how to implement SharePoint or any other tool.  It looks at who within the organization should make decisions, how they should make decisions and how to monitor the results of those decisions.

Not that those things are not important to management, but to the people in the trenches, especially the SharePoint trenches, governance is more like the topics covered in the book ‘Governance Guide for Office SharePoint Server by Microsoft or any of these books:

  • Practical SharePoint 2013 Governance by Steve Goodyear
  • The SharePoint Governance Manifesto (http://bit.ly/SPGovManifesto)
  • Essential SharePoint 2010: Overview, Governance, and Planning by Scott Jamison
  • Microsoft SharePoint 2013: Planning for Adoption and Governance by Geoff Evelyn

While these book references are just a sampling, I suppose that means that governance to the staff responsible for maintaining your corporate SharePoint sites is more concerned with topics such as:

  • The design of site templates to provide a consistent user experience
  • Quotas to limit SharePoint from becoming a trash dump of every file that ever existed.
  • Locks to control who has rights to add, modify, or delete content, or even to view it.
  • Workflows to pass approve changes to pages and documents, to automate forms and to create simple data collection applications rather than using a programming language.
  • Who can create sites and who can delete them
  • A systems of records management to catalog files stored within SharePoint and to removed aged files when they are no longer needed
  • Content types to define what type of data can be stored in SharePoint
  • Content approval to determine what actually gets saved
  • Versioning to allow tracking of changes and the ability to roll-back changes when necessary
  • Content appearance such as font families, styles, and sizes, colors, page layouts and other physical attributes of the pages.

Ultimately, I suppose the definition of governance requires some governance.

But even if you manage to create a governance document with of the above rules and guidelines, your next challenge will be how to implement that plan and how to get all the people involved to follow the rules.  The more people you have contributing to the content of your site, the more difficult this challenge becomes.  That is unless everyone in the organization knows that the SharePoint Governance document has been approved by the very top of your corporate management.

But even that may not be enough unless there is a way to ensure compliance with the governance.  Rules that are created, but not enforced are merely suggestions.  It will not take long until the common look and feel that you originally planned for is lost and chaos fills the gap.

Unfortunately, many SharePoint projects fail when governance is treated as a platitude or a wicked problem (http://bit.ly/WickedProblem).  Governance can fail when SharePoint is so huge that no one wants to be responsible for all of it and perhaps no one has interest in being responsible for all of it anyway.  That is because most organizations are filled with people with divergent thinking typically centered around their core responsibilities.  This problem can only be reigned in by a central core governance committee that has the power to create the governance document and enforce it.

There are also some people who feel that SharePoint should not just be treated like another tool that the IT department has brought in-house and then thrust onto everyone.  Rather, SharePoint should be looked at as a ‘Change Project’ that will change the way people work in an organization presumably to become more efficient and productive by providing:

  • Internal and external web sites that are easier to navigate than the previous sites.
  • Collaboration platforms to increase communication between team members to exchange ideas provide the group knowledge base for teams and projects
  • Document repositories that can be searched allowing users to quickly find information without having to search through folders within folders within folders.

While I cannot teach you everything you need to know about SharePoint governance in a single blog post, I tried to provide you with at least a few references to get you started finding out why SharePoint without governance at your organization may be the reason that SharePoint is wobbling more than a tightrope walker crossing the Grand Canyon in a light breeze.

C’ya next time.


It Is Not About The Metadata!

A while back I was at a meeting in which the topic of discussion was how hard it was to find any documents on the SharePoint portal.  The site collection in question was created four years ago and while the initial structure of the site made sense aligning itself along department and function boundaries, things have changed since then.  More importantly, many of the original site owners have moved on and new site owners were never selected.  That was problem #1.

Users of the site were encouraged to place documents on the site.  However, they treated the site much like they would a network share dumping everything on the site in a series of nested folders within folders within folders within folders…  Well, you get the idea.  The site nesting was not much better.  As a result, getting to any file was a complex series of branching that could easily confuse the person looking for a file.

Problem #3 is related to problem #1.  Obsolete files and information from a year, two years, and even three years ago still sits on the site and has not been updated.  I say that this problem is related to problem #1 because when a site does not have an active owner, no one looks at the content of the site with a critical eye as to what should be there and whether the information has been kept up to date.

None of these problems can be solved by magic.  If only that were true.  Switch to a new software product will never fix a problem if the users continue to try to work and do things like they always did before.  New systems give you an opportunity to change the way you work.  Hopefully this leads to better systems.  But trying to force new systems to work the same as old systems and then claim that the new system is no better than the old system is just plain silly.

So why not just use the SharePoint search functionality to find the files?  Great idea if you craft your search based on moderately unique words or phrases found within the document, something I do all of the time.  The problem is that it takes more creativity that perhaps an equivalent search using Google.  But that is not a fair comparison either because Google constantly performs analytics over millions of searches to determine which searches are successful and then they rank return results based on that information among other techniques.

Unfortunately, doing the same thing in SharePoint requires additional work that many smaller organizations do not have time or resources to do.  So the solution I offered was to restructure the sites and folders to flatten the structure considerable while at the same time adding metadata to libraries to classify the documents.  Yes, it would take time to determine what that metadata should be.  But once defined, we could add that information back as managed metadata to help classify future documents.  After all, search can also take advantage of metadata to help narrow your search.

But the answer I got was that metadata was ‘too hard’ for the system’s users to figure out and manage.  Then the person who said that it was too hard started to pitch a different system in which people could store the data that would make it easier to find individual documents.  After moving most of the documents out of SharePoint into their new system, they would consider restructuring what was left in SharePoint.

The whole argument of ‘too hard’ struck me as odd coming from a professional. I remember a time many years ago when I was told by a secretary that using a word processor was ‘too hard’ compared to using her trusty typewriter.  Fortunately, the department head at the time believed in the future of PCs and convinced the secretary to just try it.  Of course, the test was rigged a bit.  The department head asked the secretary to type a three page letter that needed to get out and then proceeded after each time the secretary finished to edit the resulting letter to add, delete or otherwise modify the letter.  Using a manual typewriter meant retyping the entire letter.  Next he took a progress report to be sent to management and asked the same secretary to use the PC to type the report and then print a copy for his review.  Again he mercilessly modified the report.  But this time, the changes could be made quickly by just entering the changes, not retyping the entire report.  After a ‘few more’ documents were created both ways, the secretary actually came to the manager asking to have the typewriter removed so she would have room on her desktop for the computer and keyboard.

Another example of ‘too hard’ is when we tell children that math and science is ‘too hard’.  If enough people tell children this lie including peers and adults, they begin to believe it and stop even trying.  In fact, they begin to use the ‘excuse’ that it is ‘too hard’ when they don’t do well on homework and tests.  Since many adults believe math is too hard, they accept the excuse and give the child a pass on their poor grades.

I recently was having a conversation with another professional about my same age and when I told him what I do for a living, his response was, “Isn’t that too hard for a person our age?”  Really?  If it were socially acceptable, I would have slapped some sense into him right then and there.

But saying that metadata is too hard is not what really ticked me off.  A few days after this initial discussion about what to do to better organize the files in this SharePoint site, the person who told me that metadata was ‘too hard’ pitched their concept to management using this other non-SharePoint tool that would use ‘metadata’ to classify the documents to make them easy to find.

Stunned! It is really not about the metadata is it?  It is really not about how hard or how easy it is for users to learn a new system is it?  It is really not about the best use of corporate resources and using what one has to the best of its abilities is it?  It is really just about pushing a personal agenda.

C’ya next time.

Adding Views to a SharePoint Survey

When I am working with SharePoint lists and libraries, one of the common tasks that I expect to do often is create alternate views of the items.  By default, SharePoint only provides a single view, All Documents or All Items for libraries or lists respectively.  Sure, some of the special lists types like the Task list includes a few other predefined views such as My Tasks or Past Due Tasks.  In all of these cases, if one of the predefined views does not provide exactly what I want, I can often create a custom view.  I can even promote one of my custom views to be the default view.  (Note, only one view in a library or list can be the default view.  When I promote another view to become the default view, the original default view is demoted to a regular view.  Additionally, I can delete only regular views from a library or list.  Therefore, to delete the default view, I must first promote or create a new view and make it the default.)

So when I created a survey for use without our organization, I looked at the available built-in views.  There were three; All Responses, Graphic View and XXXX.  They are fine for most purposes, but I wanted to create a slightly different view.  So I opened the survey list from the All Contents page and clicked the List tab.  Normally I would expect to then click on the List Settings option, scroll to the bottom of that page where the current views appear and click on Add a New View.  But when I got to the bottom of the List Settings page, surprise, there was no list of current views and there was no option to create a new view.

One of the things that many people who have worked with SharePoint know is that even when a particular list or library does not display a specific administration page like the page to create a new list, that page still can be opened if you know the URL and how to specify any query string parameters for the page.  One way to do this is to open another list or library that has the page you want and look at the URL.  So I opened a different list and clicked on Create View from the very bottom of the List Settings page.  This returned a URL like the following which I copy into NotePad so I can edit it more easily:


Notice the current list is identified with a GUID that is unique to my list on a specific site.  I will replace this GUID with the GUID for the survey.  So next I open the survey and select Settings from the options in the heading bar as shown below:


Notice that on the Survey Settings page that if I scroll all of the way down to the bottom of the page, I will not see a list view or an option to create a view.  However, that is ok because the URL in the URL bar at the top of the Survey Settings screen displays the information I need, namely the GUID for the Survey.


I can now copy just the last portion of the URL, the list GUID into my previous statement replacing the original GUID.  I may also need to change the reference to the site and list (survey).  Should then have a new URL like the one shown below which I’ve been editing in Notepad that I can copy and paste into the URL box of my browser.


The Create View page appears for the Survey and I can either create a new view from one of the view templates displayed at the top of the page or I can use one of the existing views to create my custom view.  I do want to give a view a unique name and I do not want to make my new view the default view.  Suppose I call my new view: MPASurveyView, define all the view parameters, and click OK at the bottom of the Create View page.

Now when I open the Survey list and display the default view (which defaults to the All Responses view), I can use the dropdown list to display the possible views for the survey which now includes my new view definition: MPASurveyView.


If I want to change the view used on the home page of the survey, I need to use a different method.  First, I open the survey’s home page and click on the Show all responses link.  Next I select Edit Page from the Site Actions dropdown.


The page in Edit mode looks like any other SharePoint page with a large web part that displays the data.  I identify the web part that displays the responses and scroll to the right if necessary to access the web part’s dropdown menu as shown below.

From the dropdown, I select Edit Web Part to display the edit parameters for the web part.  I could either change the view that this link displays or I can click the Edit the current view option to edit the All Responses view.


After making my changes and clicking OK, SharePoint updates the Show All Responses link to display my update or new view.

One last note.  If you want to be able to download the survey data to Excel, it appears that you can only do this from the default view.  So, if you want to change the data that exports to Excel, you may want to use the latter method above to simply modify the All Responses view.

C’ya next time.