This is a continuation of my presentation from Benchmark Learning’s TechFuse.
My other presentation was on day two of the conference and dealt primarily with SharePoint and how organizations can rapidly create business applications using out of the box features or taping into other products.
Something that I always try to incorporate into my presentations in the “Crawl, Walk, Run” approach to doing No-Code Application building. As always I believe organizations need to work on the Out of the Box (OOB) features first and have those work for you before getting into third party tools or even getting into code. Examples of Crawl, Walk, Run approach include:
- List and Libraries – use look up fields between objects
- Content Types – Document Templates, Site Columns, Document Information Panel, OOB Workflows
- Using built in Web Parts to display the appropriate information
- Records Center or In-Place Records Management (SharePoint 2010)
- Connect Web Parts – help to filter information between web parts
- InfoPath Forms/Forms Services – this includes connecting to content within SharePoint as well as using the User Profile service
- SharePoint Designer – this includes Dataview Web Parts, custom workflows as well as in SharePoint Designer 2010 using Visio workflow diagrams to create a custom workflow
- Database Connections – Business Data Connection in SharePoint 2007 and Business Connectivity Service in SharePoint 2010
- 3rd Party vendors – Nintex and K2 are two of the top companies who have products that can extend the ability of business applications
In this sessions I primarily concentrated on the Crawl and Walk which ended up being great since a majority of the participants had not done must with SharePoint No-Code solutions.
In my demo’s I concentrated on two ideas. First OOB using SharePoint Content Types with document templates and then moving to InfoPath with Form Services.
Between the two demo’s the one that had the more “Ummmmmmmm” factor was the use of document templates within SharePoint content types. More specifically how site columns when associated with a site content type can be used within a MS Word document as Document Fields. In the demo I was able to take the columns created and eventually add them into the Word document and fill out the necessarily information without having to add this into SharePoint after save or upload.
Within the InfoPath demo I created a form that was for project expenses and was able to connect to a SharePoint list that pulled necessary project information into the form. As a new project was created or removed the list would show me that information. I also talked about using Conditional Formatting with InfoPath to be able to display sections when needed or even using coloring to be able to format a specific color when a certain range is displayed.
All in all there were a lot of great comments/questions and overall a great event to speak at.
You can find my deck at SlideShare.
One of my favorite add-on to SharePoint from a on going training perspective is the Microsoft SharePoint Productivity Hub. This free product from Microsoft allows organizations to have a self-help for training.
Microsoft introduced the Productivity Hub back in SharePoint 2007. The hub took much of the content that on Microsoft Office and made it readily available within the SharePoint environment on a number of topics related to Microsoft products including SharePoint. Information was broken down into different products including:
- Internet Explorer
The solution also including:
- Internal forums
- Product Coaches can be designated
- User can bookmark specific content for later use
- A Learning Roadmap can created and displayed on the Product pages (one of my favorite tools)
So with the addition of SharePoint 2010 the Productivity Hub has been updated to include more up to date content. This includes Microsoft Lync and Microsoft SharePoint workspace. The 2010 version also includes content from the 2007 version of Office.
Some more specifics about the installation of the product. This training solution is a site collection for 2007 and a Sandbox Solution within SharePoint 2010. You can download the Productivity Hub 2007 and Productivity Hub 2010 directly from Microsoft. Included with the download is the base installation as well as content packs that will need to be added.
** Word of warning: It is important to carefully read the installation instructions for the different content packs since they do not all install the same way.
One of the drawbacks from the SharePoint 2010 version of the Productivity Hub is the lack of ability to use Office Web Application for displaying documents within the web browser. Luckily I found an excellent blog post by Dave Mihalik that talks about how to use this features within the Productivity Hub. Just make sure that you adjust the link tags to account for your URL hierarchy.
Another interesting variation was created by Avi Sujeeth that deal specifically with internal policies called the Policy Hub.
Hope this has been helpful!
If you are on SharePoint 2010 SP1 you will need to get the SP1 version of the Productivity Hub. If you do not have that and you try to install the RTM version on SP1 you will receive an error when trying to run the install.ps1 script. Get the SP1 version here. They also made adding the content to the Productivity Hub easier to download (less files) and add into the hub.
Also make sure that you have your current farm to not only SP1 but anything after the SharePoint 2010 August 2011 Cumulative Update. Otherwise for the SP1 version of Productivity Hub you will get a PowerShell error when trying to install.
Recently I came across an issue with our internal deployment of SharePoint 2010 Enterprise. We are taking full advantage of Excel Services and opening documents in the browser. A user emailed me with an error that said “Excel Services is unable to process the request. Wait a few minutes and try performing this operation again.” Upon checking the ULS and Event ID logs it had an Event ID of 5240.
Upon searching the webs I came across a couple of TechNet forum posts that talked about rebooting the server to rectify the situation. However, later on in the forum post it was commented that it would work temporarily and the error would come back again.
Luckily I ran across a blog that talked about this issue and a fix without having to reboot the SharePoint server. The Point Beyond website talked about logging onto the server with the account the error displayed to create a User Profile on that server. This should rectify the situation. Low and behold that did work, temporarily. I will let you know if anything changes. Of course I do wish the blog mentioned why it worked, but that is another time. Good luck!
Over the last 4-5 years I have been fortunate to train many business user and IT personnel on how to utilize SharePoint. These include End Users, IT Pros, and Site Owners/Administrators/Power Users. In the scheme of things the last one is one of the most critical roles you will need in a successful implementation of SharePoint.
In an earlier blog post I talk about why I believe this is a critical role, but to paraphrase what said. Ultimately a SharePoint Site Owner will be a business user embedded in a department who understands that departments processes and content. This is an important concept to understand from the beginning of your SharePoint implementation and having them help with that implementation by bouncing ideas around will be very beneficial. They could potentially end up being the foundation of your internal Governance and SharePoint User Group.
When it comes to training these individuals it is important to keep in mind the training will be about a semi-IT related topic. Information will be centered around a web application with many more new terms and features than before to somebody who is a business person. In essence it will take time for them to assimilate and make sense of the information they are hearing. Here are some of my thoughts as to how to train your Site Owners.
- Give your Site Owners a playground to practice in before and after the training. This can be a different site collection within the SharePoint Farm or even a development version. Anything that will replicate the look and feel of your production environment.
- Start with the basics of SharePoint: Navigation, terminology, adding content, setting alerts, working with documents.
- Move into semi-advanced topics: creating sites, lists, libraries with configuring document management features. You may want to introduce what a web part is and some basic configurations.
- As they begin to understand what the product can do then get into advanced topics: Content Types, Site Columns, Metadata, Document ID’s (2010 version), etc.
- Ultimately you will need to ensure that what you are teaching the Site Owner is within the scope of your SharePoint implementation. For instance, if you are using Office Web Application make sure to talk about the user impact of clicking on the link versus opening in the client.
After each of the training session make sure to give the Site Owner a chance to practice and work on their site. Give them support as they learn by doing and give them ways to refresh what they have learned. Here are some options:
The last thing I would like to mention is around the training itself. Some organization find they have internal staff that can do the training. Make sure they fully understand what features and functionality you are going to be using within SharePoint and the organization.
Another option is to find a Microsoft Certified Partner Learning Services (CPLS) for a specific course that will help give a hands on training for your Site Owners. You can find a local CPLS here on the Microsoft website. There are a handful of Microsoft courses that are out there. I am particularly partial to the Microsoft SharePoint 2010 Site Collection and Site Administration (50547) course since I co-authored the title.
I truly hope some of this information has been helpful and would love to hear your thoughts and comments on what you have seen around this topic. Thanks.
Recently for our own internal SharePoint deployment we had a request for a travel request form to be updated. The current solution was a stand alone form that was emailed the manager one submissions and then the travel team on approval. To be able to choose a manager the form used a drop down for the team and a conditional manager to associate the manager. No automation for user name or manager from user profile web service. This a long with a couple other minor tweaks were among my suggestions for this form.
In our scenario we have a SharePoint 2010 Enterprise installation with multiple site collections and web applications all utilizing claims and SSL. A typical installation for most of our clients.
Everything was going great with hiding sections and removing and replacing with new fields however when I went to use the User Profile Web Service like I have done countless times before I receive the non-descript error of “An error occurred while trying to connect to a Web service. Log ID:5566” along with a Correlation ID and other gibberish.
Looking into the SharePoint Log files did not give me much to go on. On search the webs I was able to track down a couple options for solving this issue. I came across this forum post that detailed at the end how to troubleshoot when you cannot connect in a Claims scenario. This was helpful because in most of my work I have not had to use a data connection with with InfoPath or a Secure Store application. I would either use the Username() function or the User Profile Web Service would just work.
So I rolled up my sleeves and go into doing the following:
- Create a new Secure Store Application and assigned the SPContent account. See Instructions Here.
- Move the InfoPath User Profile Web Service connection to a data connection library within SharePoint. See Instructions Here.
- Downloaded the data connection from the library (.ucdx file extension) and modified the authentication section based on the Claims scenario blog information. See Instruction Here.
- Replaced the connection in the library with the modified connection.
After all of that something was working but not how I figured. When I would set up the Travel Requestor field with the recently configured web service it ended up bringing back the SPContent user name not the current user.
After a little more research on the webs I came across a very obscure Microsoft SharePoint Forum post where Peter Newhook not only talked about the adding the Secure Store application authentication section but also how to use InfoPath to query the web service with a concat (“domain\”,username()) function. Because we were in a Claims environment I had to accommodate the use of SharePoint claims and how it modifies the Username with i:0#.w|domain. This is what I ended up coming with that finally worked.
I hope this post has been helpful with similar scenarios you come across.
Recently I had a client where their virtual environment failed due to a hardware failure. After they brought everything up and fixed the hardware issue SharePoint was not working. Specifically SharePoint Central Administration, Security Token Service App Pool, the main SharePoint web application and My Site web application would not start.
Based on numerous blog posts and my experience with IIS I started down the typical fixes:
- Manually start the individual web application
- Make sure the Identity on the web application was correct and the right credentials were in place
- Even running the SharePoint Configuration Wizard to fix any issues
After each one of these I would try hitting SharePoint Central Administration and would get a Server Not Available 503 error then go back into IIS and the web application would be stopped.
I then started looking into the ULS and Event Viewer to dig a little deeper.I started to see a pattern of something did not have permissions across these multiple web applications. Finally I searched the webs on a Application Event ID error of 5059 that basically said that “Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool.” Luckily this error pointed me to the follow SharePoint Forum post that got me on the right direction.
In essence there was a specific permission needed by SharePoint to allow the Identity for the web application to work. The local security policy of “log on as a batch job” user permission needs to be in place. My theory is when the domain went down a older version of the domain policy was pushed out and removed those permissions.
I ended up going into Group Policy Management console and had to find the policy where this was set. In this case the Domain Default Policy. The Log on as a batch job setting is found in Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a batch job. Afterwards I did a gpupdate /force and restarted the SharePoint server and everything was happy.
Hope this helps somebody else!
Recently I was working on a project where I was creating a Anniversary and Birthday web part and came across the need to show the Birthday not as the typical MM/DD/YYYY but as MM/DD and we did not get anybody riled because now the entire company know they are “52”!
The other issue comes around how SharePoint likes to display dates when using Content Query Web Parts (CQWP). Even though you probably set up the Date/Time field to only display Date when it comes across in a CQWP you will still get the time component zeroed out as you can see in the example below.
The typical way to handle this would be to go in and modify the XSLT and not display this. There are plenty of resources that talk about that. However there are times when we may not have the time or experience to modify the XSLT. This is where calculated columns can come in very handy.
**Note: This ability to use a calculated column is available not only in SharePoint 2010 but also in SharePoint 2007.
To implement go into the list or library and create a new column. Name the column and make sure to select Calculated (calculation based on other columns).
In the Formula section add the following syntax:
=TEXT([Date Column Name Goes Here],”mm/dd/yyyy”)
Leave all other options default and click on OK.
Now when you go to the CQWP use the new text column instead of the older date column in the Fields to Display section and your information should display appropriately.
Your finished product should look like this:
So I found this resource to be beneficial when I was working on this. Enjoy!
MSDN – Calculated Field Formulas