Tuesday, July 31, 2012

Top 18 Enhancements Our Students Are Hoping For in SharePoint 2013

by Jeff Cate
We’ve been teaching SharePoint 2010 training classes each month around the U.S. for about two and a half years now. Our instructors have become pretty used to hearing from students the same “ugh, why doesn’t SharePoint do that?” or “If it just did this one thing it would open the door to solve so many more business problems!” We hear this list over and over again, class after class – probably from over a 1,000 people total.

Since Microsoft released the SharePoint 2013 Preview software to the marketplace last week, right now seems like a great time to surface our students' wish list. (Note: we weren’t invited to participate in any of the private betas of SharePoint 2013, so if anyone from Microsoft reads this list, it will be for the first time.)

So, here are the top 18 enhancements our students are hoping for in SharePoint 2013 - straight from their own mouths:
  1. SharePoint Designer Workflow enhancement #1 - the ability in the workflow conditions and actions to use List data that exists in sites other than the current site. Many organizations store various “master” Lists in a centralized SharePoint site but need to use values from those Lists in a workflow that runs in another site. This is not currently possible to do with SharePoint Designer workflows, but if added, it could make a huge difference in the solutions that could be developed by power users.
  2. SharePoint Designer Workflow enhancement #2 - provide a permissions mechanism so that end users can use SharePoint Designer to create custom workflows, but not use it for anything else. This would hopefully encourage IT departments to allow end users to install and use SharePoint Designer. If this can’t be done, then provide something like the SharePoint Designer Workflow Design Wizard directly within the out-of-the-box SharePoint application pages.
  3. SharePoint Designer Workflow enhancement #3 – a Loop Activity
  4. SharePoint Designer Workflow enhancement #4 – the ability to schedule workflows to run at a certain time.
  5. Access Services enhancement - the ability to use Linked Tables with databases that are published to SharePoint using Access Services. The number of departmental Access database applications in corporations around the world is staggering when I listen to students. They would love to be able to migrate those applications to Access Services, but the big stumbling block is that the vast majority of those applications use the Linked Tables feature of Access to pull in business data from various corporate databases. Usually, this is master type of data that is pulled in. Typically, the Access application does not write back to the corporate master data – it just needs the latest values from the corporate master data, for instance the customer list.
  6. InfoPath and Forms Services enhancement - the ability to use the Managed Metadata field type on a form.
  7. Forms Services enhancement - include Forms Services in SharePoint Server Standard licenses instead of only in SharePoint Server Enterprise. See the blog post I recently wrote about why I feel this is important.
  8. SharePoint Designer Business Connectivity Services enhancement - provide more out-of-the box connection types than just SQL Server, WCF, and .NET Assembly. How about Oracle and Access connections, for example? We are used to longer lists of possibilities when we use technologies like ODBC and OLEDB to connect to data sources. Why can’t the list be longer in the SharePoint Designer BCS wizard?
  9. SharePoint Lists enhancement #1 - the ability to enable Social Tagging for Enterprise Keywords just like you can for a Document Library.
  10. SharePoint Lists enhancement #2 - the ability to edit the Managed Metadata column data using Datasheet view – including the fill down and fill up feature.
  11. My Newsfeed enhancement #1 - the ability to have in-line replies to news items.
  12. My Newsfeed enhancement #2 - the ability for SharePoint Administrators to specify RSS feeds (either from SharePoint Lists\Libraries or external RSS feeds) that will be aggregated in the activity stream that users see. Also, the ability for individual users to aggregate other RSS feeds to their own activity stream.
  13. Content rollup enhancement - A content rollup type of web part whose columns can be easily specified by an end user and also can easily be filtered, sorted and styled by end-users. This would replace the existing Content by Query web part that is so difficult to configure by anyone other than a web developer.
  14. Managed Metadata Service enhancement - the ability to configure synchronization of selected Term Sets and Terms with values that come from other systems via Business Connectivity Services. Most companies have the vast majority of their “master” data in line-of-business systems such as CRM or ERP. The BCS is a great tool for bringing that data into SharePoint so that it can be used in Lists, but in the 2010 version it cannot be used as a source for Managed Metadata Terms. This means that the data has to be duplicated by hand if you want to use it as Managed Metadata.
  15. Records Management enhancement - allow a farm-level setting that specifies whether a declaration of an official record can be undeclared or not. My experience is that many professional records managers cringe at the thought of the capability to undeclare a document that has previously been declared as an official record. So, why not allow it to be turned on or off globally at the farm level per a company’s overall records management policy?
  16. Windows and SharePoint integration enhancement - the ability to redirect (or automatically synchronize) My Documents on the local computer with a document library in the person’s My Site. It has been possible for a long time to redirect the location of My Documents on a computer to a share on a network drive. Many organizations set their Group Policy up this way. It would accomplish the same thing and be much more convenient for the end user if this was done with SharePoint rather than a network file share.
  17. SharePoint Workspace enhancement - a document library browse pane that is much more functional. The SharePoint Workspace 2010 browse pane does not allow sorting or filtering by column header controls or many of the other ease-of-use features that users have become used to in Windows Explorer and SharePoint Library Views.
  18. Office Web Apps enhancement – allow users to author new documents using the Office Web Apps.
I wonder how many of these frequently requested enhancements have been baked into SharePoint 2013? If you have links to blog posts or Microsoft documentation that answers any of these questions, I would love to have you point us to them using the comments section below.
 
Also, if there are some key features on YOUR list that I don’t have on ours, feel free to put those in the comments below. I would love to know about them for my own education if for nothing else!
Friday, July 27, 2012

Importing and Exporting Data in Extranet Collaboration Manager (ExCM) 2010 – Part 2 – Importing



In Part 1 of this series, I discussed how you can export data from the Extranet Collaboration Manager for SharePoint 2010 (ExCM) database for use with other applications, projects, etc.  A far more common question we receive is whether or not companies with data for existing users can IMPORT that information into ExCM.  In the past, we have run across potential customers who have a large number of existing users stored in another application or database and would rather not have to go back and manually add or register them for access to their ExCM SharePoint extranet site.  By utilizing our free PowerShell utility, you can import users directly into an ExCM database.
As mentioned in the previous blog post for exporting data, after downloading the utility from link below, you'll need to edit the included Membership.config file utility to reflect the connection string and membership settings:

(Click on pictures for expanded view)
Next, we need to open up PowerShell (NOT the SharePoint Management Shell), and navigate to the extracted files:
The import file must be in a comma-delimited format.  For the purpose of this blog, I have created some sample data in an Excel spreadsheet and exported it as a text file:



Before we continue, let’s take a quick look at passwords and security questions.  As you can see from the above file, I have gone ahead and assigned both a password and a security answer for the users.  Optionally, you can generate a password using the SQL Membership Provider by using the “-passwordSource Generated” switch or use a separate password file with passwords and security questions with the “-passwordSource PasswordFile -passwordQuestionAndAnswerSource PasswordFile -passwordFile [filename]” switch.  Here is an example of what the password file would look like:

For this post, I’m just going to use the values in my original spreadsheet.  Here is what my command will look like, along with the results of the import:


If I go to my “Extranet Users” menu, I can see that all four accounts now appear there:
Additionally, you can create a process to send an email to each user containing the new login information such as username, password, password question and password answer:

import-csv .\Import.Results.csv | ? {$_.Status -eq "Success" } | % { Write-Host $_.Username $_.Email, $_.Password $_.PasswordQuestion $_.PasswordAnswer }
In summary, by utilizing our free Powershell utility, you can both import and export data to and from your ExCM database.  This can be useful for providing data to other applications or projects, or eliminating the need to manually create numerous users for your ExCM site.

Monday, July 23, 2012

SharePoint 2013 Management Shell - Visual Studio 2012 Command Prompt Variables

In my SharePoint 2013 development environment, I like to have the Visual Studio 2012 command prompt variables set when I open the SharePoint 2013 Management Shell. To do so automatically, make sure your PowerShell profile exists at the path:

C:\Users\[YourUsername]\Documents\WindowsPowerShell\profile.ps1

If the file doesn’t exist, create it. Now, add this code:

# Set environment variables for Visual Studio Command Prompt
pushd 'c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC'
cmd /c "vcvarsall.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
write-host "Visual Studio 2012 Command Prompt variables set.`n" -ForegroundColor Yellow


Finally, save the file and re-open the SharePoint 2013 Management Shell. Test it by running a command such as gacutil /?. If you get back a "command not recognized" error, review the instructions above.
Friday, July 20, 2012

SharePoint 2013 Preview Setup and Configuration - Error with AppFabric Cache

I needed to set up the SharePoint 2013 Preview on a standalone VM, but I was running into this problem while running the SharePoint 2013 Product Configuration Wizard:

ErrorCode:ERRCAdmin024 SubStatus:ES0001 Failed to refresh all running servers in the cluster. You may need to restart the cluster for these changes to take effect.

UPDATE: Thanks to Роман, you get this working by just using the account that connects to the database.
A little research showed that this problem had to do with the App Fabric Cache.  A little further research indicated that other folks were having problems with the App Fabric Cache and the SharePoint 2013 Preview. 

I don't think I need the App Fabric Cache on my stand-alone evaluation machine (tell me if I'm wrong), so I was able to work around the error and get a working SharePoint 2013 environment by following these steps:

1. Open a PowerShell command prompt

2. cd to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\BIN

3. Substituting your own values where needed, run the command:

.\PSCONFIG.EXE -cmd Configdb create SkipRegisterAsDistributedCacheHost user AWBIKES\Administrator password pass@word1

4. Re-run the SharePoint 2013 Product Configuration Wizard.  It should run right through the first 3 steps and start processing from step 4.

Note, you may have to clean up databases created from previously failed attempts by the wizard.  You may also have to detach from the farm of a previously failed attempt.

Importing and Exporting Data in Extranet Collaboration Manager for SharePoint 2010 (ExCM) – Part 1 – Exporting


Extranet Collaboration Manager for SharePoint 2010 (ExCM) is a SharePoint add-on that provides easy SharePoint extranet collaboration and simplified extranet administration. A common question we often receive about ExCM is if data from the ExCM database can be exported and/or data from another source can be imported into that database.  The answer is “yes.”  In Part 1 of this series, we will take a look at how we can export data from our ExCM database.
In a typical ExCM installation, the data is stored in a SQL database.  Suppose your Marketing Department wanted all of the e-mail addresses for the thousands of users currently using your Extranet site.  Obviously, if you were savvy enough with SQL you could write some script to export them.  But for those who are NOT familiar enough with SQL, we have developed a PowerShell script that you can use to both import and/or export data from that database used by ExCM.  Please note this is a FREE utility and that we do not provide support directly for the script.  While we definitely welcome feedback, we must give support priority to our other commercial products.

First, you'll need to download the utility and extract the contents somewhere on the Web Front End (WFE) server.  Here is direct link:

http://aws-software-s3.sharepointsolutions.com.s3.amazonaws.com/products/support/ExCM2010/Import-Export-ExtranetDirectory.zip

Once that’s done, you need to open up PowerShell (NOT the SharePoint Management Shell), and navigate to the extracted files (C:\Temp in this case). 
Next, you need to edit the Membership.config file provided along with the utility to reflect the connection string and membership settings.  These values can be found in the web.config file of the content site on which ExCM is currently installed.  The “data source” is the name of your SQL server (including the instance name if applicable):


A “readme” file is also provided which has both the instructions and some sample data for use with the utility.  For the purposes of this blog post, I am simply going to export the few current users from my demo environment.

So my expected output should only contain information for the four users above.  Now that I have made the necessary changes to the Membership.config file, I'm ready to run the script.  Below is the example from the readme file where “membershipProviderName” is the value you specified for your provider and “outputFile” is the name you want to assign to the exported data:
.\Export-ExtranetDirectory.ps1 -configurationFile Membership.config -membershipProviderName Ext -outputFile  Export.Results.txt

After copying and pasting the above command, I can follow the status within the PowerShell window:

As you can see, all four of my users were successfully exported.  A quick but important note about the Export process…the users’ current passwords and secret answers CANNOT be exported as this would be a major security issue.  When I open the export file, it looks like this:

You can now take this data and import into Excel as a comma-delimited file to create a cleaner and more robust file for others to view and manipulate:

You could even go as far as creating another PowerShell script yourself to iterate all of the users and send each one an email message, or using the output to perhaps import the data into another application such as CRM.
In Part 2 of this blog series, we will talk about importing existing data into the ExCM database.http://sharepointsolutions.com/More-Info/Pages/Bio-Details.aspx?BioID=20
Wednesday, July 18, 2012

Approval Workflows in Extranet Collaboration Manager for SharePoint 2010 (ExCM) – Part 1 – Basic Approval Workflows


by Matthew McBride

Extranet Collaboration Manager for SharePoint 2010 (ExCM) allows you to create users in three ways:
1.      Manually
2.      Invitation Registration (via e-mail)
3.      Anonymous Registration (potential users visit the Extranet site and click “Sign Up”)
The most common of these is via invitation.  When using invitations, there is most likely an existing business relationship with the invitee and the general thinking is that “if you’re invited, you’re approved.”  However, there may be certain scenarios where you want to add an approval step for invited users as well.
In addition, there may be instances where you need to implement Anonymous Registrations for user creation.  For example, suppose you didn’t know ALL of the email addresses for potential site users.  By using Anonymous Registrations, a user can visit the site, fill out the registration from, and create a new account herself.  The downside to this is that since your SharePoint Extranet site is available worldwide to anyone with an Internet connection, there is a possibility of invalid or unnecessary account creation.


By turning on approval in ExCM, ALL registrations (both invitation and anonymous) are required to be manually reviewed by someone and either approved or rejected…thus adding another layer of security to your site.  However, this could become a very tedious task for approvers since they would have to manually check for new accounts periodically and determine their approval status.  By creating a basic workflow, you can email approvers when a new registration occurs and let them know it’s ready to be reviewed.

First, you need to enable content approval on the Registrations list. You do this by navigating to the Extranet Management menu under “Site Settings” and then Registration Settings > Registration Approval Settings > Registration Approval:

Now you’re ready to create your approval workflow.  Out of the box, SharePoint provides a very basic workflow specifically designed for approval.  To configure it, you need to navigate to Registration Approval Settings as before and select “Registration Workflow Settings.”  From here you need to select the “Approval – SharePoint 2010” template, specify a name for your workflow, then click “Next:”

On the following screen you need to select the approver(s) to notify, enable content approval, and optionally specify a due date for the task.  Once that’s done, click “Save:”

The last step is to set up a workflow initialization to start the workflow.  This is also done on the Registration Approval Settings page.  Note that you can set up unique initializations for both Anonymous and Invitation Registrations.  For this post, we’ll only set up a workflow for Anonymous:

On the next screen, you need to choose your newly-created workflow and optionally provide a requestor and/or condition.  Let's just use the defaults for now:


You can now see your workflow listed:

After registering a new user on the site anonymously, the following email is sent to the approver specified above:


By clicking the circled hyperlink or the “Open This Task” button, you are taken to the following screen where you can perform a number of tasks on the registration. In our illustration here, we will simply “Approve” it:

Once you have approved the registration, the user receives an email confirmation telling her that her registration has been approved:


In summary, the approval feature offered by Extranet Collaboration Manager for SharePoint 2010 (ExCM) can offer an additional layer of security to your site by requiring registrations to be reviewed by a specified approver.  Creating a simple out-of-the box approval workflow can greatly streamline the approval process by notifying the approver when a new registration is ready to be reviewed.  This workflow can be utilized for both Anonymous and Invitation Registrations.

In the second part of this series, you will learn to create an advanced workflow using SharePoint Designer to automatically approve invited users.

Approval Workflows in Extranet Collaboration Manager for SharePoint 2010 (ExCM) – Part 2 – Advanced Approval Workflow

by Matthew McBride

In Part 1 of this series, we discussed how using workflows along with the Approval feature of Extranet Collaboration Manager for SharePoint 2010  (ExCM) can add an additional layer of security to your site when using both Invitation and Anonymous Registrations.  We also discussed that when using invitations, there is most likely an existing business relationship with the invitee, and in general the thinking would be “if you’re invited, you’re approved.”  But what if we only wanted to approve ANONYMOUS Registrations and allow invited users immediate access to the Extranet site?

To achieve this, we need to create a more advanced approval workflow using Microsoft SharePoint Designer 2010 (SPD).  SPD can be downloaded free from Microsoft’s site:

http://www.microsoft.com/en-us/download/details.aspx?id=16573

Assuming you already have approval turned on from the previous blog post, you first need to open your site in SharePoint Designer 2010:

The list needed to run the workflow (ExtranetRegistrations) is hidden by default, so you first need to make it available to the workflow.  From within SharePoint Designer, navigate to “All Files” in the left menu, then “Lists,” then right-click on ExtranetRegistrations and select Properties:

On the next screen, you simply uncheck the “Hide from browser” option and then save:

Now you can go to the Workflows site object and begin creating your workflow.  From the workflow screen, select List Workflow and then “Registrations:”


Next, give the workflow a name and click OK:

SharePoint Designer will then begin downloading data from your site, which could take a while depending on your configuration.  When it’s finished, the following screen will appear.  Select “Action” and then scroll down and choose “Set Content Approval Status:”


In the Step 1 box, select “this status” and choose “Approved.”  You can optionally add comments if you wish.  Once that’s complete, you need to save it and the publish it to your site.



Once that’s complete, navigate back to your ExCM site, go to “Registration Approval Settings,” and click on “Add Workflow Initialization” under Invitation Workflow Settings:
Choose the workflow you just created, and optionally specify a requestor and/or conditions.  When finished, click Save:
To test, I sent an invitation to a new user and registered another anonymously.  As you can see from the screenshot below, the invited user was approved automatically while the anonymous registration still needs to be reviewed and approved manually:

In summary, by using SharePoint Designer you can create more advanced workflows to use in conjunction with the Approval feature of  Extranet Collaboration Manager for SharePoint 2010 (ExCM).  For this example, we assumed that you had already established a business relationship with your invited users and therefore did not need to also approve them after registration.  To address that, we showed you how to create a new workflow in SharePoint Designer to automatically approve Invitation Registrations, while still requiring Anonymous Registrations to be reviewed and approved.
Thursday, July 12, 2012

SharePoint 2013 Licensing: What is the one thing that would really help customers?


By Jeff Cate, Founder and President, SharePoint Solutions
This post falls into the “my two cents worth” category.
As most know, starting with the 2007 version of SharePoint, the product is available in three editions. In the 2010 version of SharePoint, those three are SharePoint Foundation, Server Standard, and Server Enterprise.  Microsoft publishes a good comparison of what you get in each edition here for SharePoint 2010.
I think most people know that the Foundation edition of SharePoint does not require any additional license purchase other than Windows Server licenses and Windows Server CALs.  People often talk about the Foundation Edition being “free.”  We could debate whether or not this is really true given that Windows Server licenses are still required, but that debate is not for this post.
The Server Standard edition is not free.  It requires one server license for each server in the SharePoint farm.  It also requires SharePoint users to have a Server Standard Client Access License (CAL).  Both of these licenses are sold through Microsoft Volume Licensing and its volume licensing partners.
The Server Enterprise edition requires one server license for each server in the SharePoint farm, and this server license is the same license that is required for a Server Standard farm.  There is no distinction between server licenses for a Standard farm vs. an Enterprise farm.  There is a distinction between the two editions for the user CAL.  To use the Enterprise edition your users need BOTH a Server Standard CAL and a Server Enterprise CAL.
So, let’s look at a licensing\pricing example using pricing from the Microsoft volume licensing partner, CDW.
(Note: Licensing details and pricing for SharePoint 2013 have not been published yet by Microsoft.  So, for this post, I am going to use current SharePoint 2010 license pricing and assume that the pricing for the 2013 version will be similar.)
Pricing for volume licenses for SharePoint 2010 depends on the volume level that will be purchased.  In this example, I am going to assume that the volume is relatively low and select licenses from CDW at what is referred to as the “Microsoft Open Business” licensing level.
Here are those prices from CDW’s site (as of June 28, 2012):

License Name
CDW SKU
CDW Price Per License
Microsoft SharePoint Server 2010 Server license
CDW #: 2076079
$ 4,646.99
Microsoft SharePoint Server 2010 Standard CAL
CDW #: 2076078
$ 93.99
Microsoft SharePoint Server 2010 Enterprise CAL
CDW #: 2067864
$ 82.99

So, let’s say your company has 300 users and plans on a SharePoint 2010 farm architecture of 2 web front-end (WFE) servers.  Here is what your licensing costs would be for Server Standard vs. Server Enterprise:
SharePoint Server 2010 Standard for 300 users and 2 WFE’s:
$ 37,491 = ((2 * $4646.99) + (300 * $93.99))
SharePoint Server 2010 Enterprise for 300 users and 2 WFE’s:
$ 62,388 = ((2 * $4646.99) + (300 * $93.99) + (300 * $82.99))
So, what is it about the upcoming SharePoint 2013 licensing that I think would really help SharePoint customers?
A lot of SharePoint procurement decisions would be much easier if Microsoft also included InfoPath Forms Services in Server Standard instead of only in Server Enterprise.
I can’t tell you how many consulting clients and students I have talked with over the past three years who have said that the only feature they use regularly in Server Enterprise is InfoPath Forms Services, and they feel it’s unfair to have to pay  the premium price  to get this one feature.
Don’t get me wrong.  There are some great features in addition to InfoPath Forms Services in Enterprise that provide value to a lot of companies.  But, the need for InfoPath Forms Services is very widespread as opposed to the need for Access Services, for instance.
Also, I can’t tell you how many others have made the decision to just forgo solving business problems that require electronic forms, just because they can’t see paying $82.99 per user (an addition to $ 24,897 or 40% of the total licensing cost) for the Server Enterprise CAL just to be able to use InfoPath Forms Services.

Here’s an idea: Maybe Microsoft could move InfoPath Forms Services from Enterprise to Standard and then just increase the cost of the Standard CAL to cover the added value.
Anybody out there feel the same about this as my consulting clients, students and me?  Anybody happy with the way it is and would like for it to stay that way?