Should you consider SharePoint in the cloud?

20. February 2012 04:42 by sashashev in Administration, SharePoint Development  //  Tags:   //   Comments (0)

Cloud based services are becoming more popular as more organisations recognise the costs savings that come from letting someone else manage your software and infrastructure. So what does it mean for companies wanting to deploy SharePoint in the cloud?

The pros

  • Less expertise required to get up and running
  • Guaranteed up times
  • Less maintenance. Back ups and updates are done for you
  • Add on services – Office 365 can provide a full suite of tools including LYNC (Communications Server),  Hosted Exchange, Dynamics CRM
  • Cheap if you have 10 or less users.

The Cons

  • There is a minimal custom SharePoint Development allowed. Forget third party add-ons or customising the look and feel too much
  • It won’t be as fast as an in house system. Especially when uploading and downloading documents
  • You can’t integrate it with other systems you have on premises
  • You need to run Federated Active Directory services so that your users can be imported into SharePoint

Conclusion

If you are a small company that just needs the built in SharePoint functions and isn’t concerned about the look and feel of their site and especially if you don’t have in house IT support then Office 365 is probably a good solution.

If you are a larger organisation who’s needs may grow to require custom functionality then we wouldn’t advise at this point. Plans start at approx. $8 per user  per month and go up significantly depending on your plan so it is cheap if you only have a few users.

If you would like to discuss SharePoint Design, SharePoint Customisation or SharePoint Development call Webcoda to speak to one of our SharePoint Experts!

People Search in FAST returning no results

17. November 2011 04:19 by Tal in   //  Tags:   //   Comments (0)

Recently we came across an issue with our SharePoint 2010 people search. It did not work. The All Site scope worked fine but the people search scope did not return any results. We were using SharePoint 2010 FAST search.

The people scope with FAST search was in FAST Query SSA (How does People Search work using Fast?). We needed to look at the FAST search configuration in Central Admin: Manage Service Applications >> Service Applications

FastSearch

We made sure that the Content Sources of the FAST Query SSA had the Start Address set to: sps3://<server name>

We run a full crawl on this content  source. At the end of the crawling process the Crawl Log had one Error: Access denied ..

The Crawler could not access the User Profile. To solve this we needed to allow the crawler access to the User Profile Application. This was done through -  Manage Service Applications >> Service Applications >> User Profile Application. Then add the permission “Retrieve People Data for Search Crawlers” to the account which run the FAST Query SSA.

 Finally we re-run full crawl on the FAST Query SSA.

 UserProfileAdministrators

 

SharePoint 2010 – Make Content and Structure work

17. November 2011 03:41 by Tal in   //  Tags:   //   Comments (0)

The Issue:

Content and Structure did not work. As we clicked on Site Settings > Manage Content and Structure we received the SharePoint 2010 error page.

The Tools:

Starting with a newbie tool: Microsoft SharePoint 2010 Administration Toolkit v2.0

This tool came highly recommended for performing diagnostics. We used SharePoint Diagnostic Studio for connecting to SharePoint 2010 logs. This tool run with Administrator privileges only (right click – Run as administrator )

The goodie – This tool could save looking into the file system. It came with some SharePoint 2010 reports – that looked impressive.

The baddie – It took several minutes to connect. It did not refresh the logs and needed to re-open to reload new logs.

The Clue:

Someone suggested we look into the SharePoint lists to make sure they were working. We clicked on each list and library until we discovered the corrupted list.

One list returned the SharePoint 2010 error page.  How could we remove this list if we could not access it? We tried accessing it from SharePoint 2010 Designer but it did not appear under All Files/Lists. We tried removing it using SharePoint Manager 2010 but received an error message.

This is the error we got when trying to delete the list:
Error log "Failed to determine the setup path of the list schema for feature {123546-423432}, list template

The Solution:

SharePoint 2010 Management Shell (PowerShell).

First we looked for this feature on our site:
Get-SPFeature | Sort - Property Id

This feature was not on our site. Clearly, SharePoint told us already that this feature was missing.

We had to remove the list with force, using PowerShell delete command:

$w = Get-SPWeb "http://hostname
$w.Lists.Delete([System.Guid]$w.Lists["List Name"].ID)

The Conclusion:

We could open and view Site Content and Structure.

Planning SharePoint Permissions Worksheet

26. August 2011 15:33 by sashashev in   //  Tags:   //   Comments (0)

Download the SharePoint Permissions Planning Worksheet here

I was going to write a blog about what I considered best practices around SharePoint security but Jasper Oostervald - https://www.nothingbutsharepoint.com/sites/eusp/Pages/SharePoint-Permissions-Part-1.aspx in his 2 part blog pretty much covered exactly what I wanted to say and more.

So instead of rewriting what he said I hope to add something by providing a worksheet that I have been working on. It’s really in Alpha so if anyone can improve on it and share what they have done that would be great.

In case you are unaware, Microsoft provides planning worksheets here - http://technet.microsoft.com/en-us/library/cc262451.aspx

In my opinion most of them complicate things by having columns that most of our projects don’t really use.

I am hoping my one is simpler and more useful.

This worksheet has 4 tabs and instructions and tips.

 

image

Start by looking at the “Sites” tab.

Here you add your sites and the permissions of those sites.

image

You may need to go to the Groups tab to add your new groups that you will need.

The “Content” tab is very similar to the “Sites” tab but is for assigning permission to the libraries and lists in your site.

image

If your dropdowns stop working you may need to reset them by following these instructions - http://spreadsheets.about.com/od/datamanagementinexcel/qt/20071113_drpdwn.htm.

 

I would love to get some feedback to see if this worksheet is of use to anyone or even better if someone with actual Excel skills can improve it, that would be great!

Tagging Content in SharePoint Tips

14. August 2011 11:14 by sashashev in   //  Tags:   //   Comments (0)

Although SharePoint provides the ability for users to be able to tag their own content, I find it tends to get a bit unmanageable and like to stick to the “Managed Metadata” feature with hierarchical predefined tags.

Here are my guidelines for tagging:

  1. Think long and hard about your top level tags. You shouldn’t need more than 10 at most and there should be as little cross over as possible. Again don’t have more than 10 items per each individual branch.
  2. When deciding what the tags should be, think of words that will segregate content into even chunks. Don’t create a tag that will only ever be used once. Think of the game Guess Whowhere you are trying to find the person in as few guesses as possible. You don’t start with some obscure physical feature. The first question is usually  - Are you a boy (or girl) to split the content evenly.
  3. Try not to go more than 3 levels deep in the hierarchy at first, including the top level. You can always add further levels if drilling that far down still displays too many articles.
  4. Don’t use words that are going to change often such as names of clients or projects. The list will eventually get too long to be useful. In this case it may be easier to keep a list of all clients in a custom list that is referenced through a site column.

Creating your own Site Content and Structure Reports

13. August 2011 06:25 by sashashev in   //  Tags:   //   Comments (0)

The “Site Content and Structure” reports are a great way of finding files which are pending approval or checked out but I just realised you can create your own reports.

If you have never seen these reports before:

Go to site settings –> Site Administration –> Content and structure

image

But you can create you own reports by going to “View all site content”

Under lists –> Content and Structure Reports

image

Here you can see all the reports available from C & S as well as the CAML that makes these reports.

image

SharePoint 2010 event receiver–The ins and outs

22. July 2011 06:57 by tal in   //  Tags:   //   Comments (0)

So you wants to add an event receiver to a list to check column permissions. Your immediate reaction will be “easy no problems, I’m keen to start now”. Consider all the implication of this task. I thought initially, event receivers in SharePoint 2010 should be easy to implement. But then I learned that there are many “things” to know for this task. I decided to prepare a list with all the road blocks I encountered during this project.

Here are some tips for creating a new event receiver in SharePoint 2010:

1. There are lots of information about creating an event receiver SharePoint 2010.

2. You want your receiver to work on a specific list, not on a list type.  Your element.xml should fix it:
<Receivers ListUrl="<List Name>">

3. You want to make sure that the receiver is deployed as a farm solution. If we select Sandbox solution, this option is very restrictive and does not allow access to certain SharePoint features. So click on your project and view the properties window (F4). Then set “Sandbox solution” to “False”.

Also if you want to deploy to a single site use “Site URL” in the properties menu.

4. To deploy and package your solution you can use “Deploy” and “Package” in the Visual Studio 2010 on project’s right click.  Do not use the WSBuilder sub menu.

5. To debug use the WSBuilder sub menu and select “Attach to IIS Worker Process”, then enter your breakpoints.

6. I wanted to make sure that system admin have full permission:
using (SPWeb currentWeb = properties.OpenWeb())
{
        if (currentWeb.CurrentUser.IsSiteAdmin) return;
}

7. You want to add debugging information to your code. This is another reason why you should not use sandbox solution. Consider these quotes:
Dashboard diagnostics:  “Even if you use SPMonitoredScope, if your code is a sandbox component (i.e. a User Solution), the output from it will not be captured in Developer Dashboard.  The reason it doesn’t get captured is that sandbox components execute in a completely different process from the page request – that’s why it’s sandboxed
Log diagnostics: “Unfortunately the ability to interact with a custom SPDiagnosticsService is available only in fully trusted farm solutions and not within sandbox solutions. To write to the ULS logs using the SPDiagnosticsService class from the sandbox, developers can create a fully trusted proxy that the sandbox solutions can call into. The next two sections demonstrate how to write to the SharePoint ULS logs.”

But all is not lost, you can still save to SharePoint Log:
using Microsoft.Office.Server.Diagnostics;
PortalLog.LogString(“Message”);

8. The example I prepared is for firing an event when updating an item:
public override void ItemUpdating (SPItemEventProperties properties)
       {
           base.ItemUpdating(properties);

           TakeAction(properties);
       }

9. Sometimes you may need to active/deactive your feature from the site collection.

10. You definitely want to have a custom error page to indicate your user that something happened. You can learn how to create a custom error page  from here. For example:
properties.Cancel = true;
properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
properties.RedirectUrl = "/_layouts/<folder name>/<>page name.aspx?error=Update failed.";

11. The message in DataSheet view is not as you expected. I have no solution for making a nicer error message.

12. Using the properties.AfterProperties you want to determine if the item has been modified during this update. Consider what I had to do to get the correct column:
string internalColumnName = XmlConvert.DecodeName(properties.List.Fields.GetField(columnName).InternalName);
if (properties.AfterProperties[internalColumnName] != null) newValue = properties.AfterProperties[internalColumnName].ToString();

Yes, there is a different name for the list column displays and the actual SharePoint column name. This is especially true if you rename an existing column The XMLConverter decode columns names , e.g. Date_x0020_Modified. This link has good explanation.

13. For security reasons, a SharePoint designer workflow always runs under the permissions of the user who started the workflow. You want to prevent the user from updating certain column in the list, but you also want your SharePoint Designer workflow to update the same columns. Two possible solutions, you can use a hidden field to indicate to the event receiver that the workflow is updating the field. You can toggle the hidden field before and after the item update. Another solution is to us user Impersonation Step and run the workflow as farm account. The second solution may not be your preference, because it will save the “Modified By” as the farm account.

These are the 13 new knowledge points which I gained during this project.

Enjoy.

Cancelling a workflow approval request from an InfoPath form

24. May 2011 14:31 by sashashev in   //  Tags:   //   Comments (0)

We have a form which is used for requesting leave. We were asked to put a cancel button on it so that the requester could cancel their request if it has not been approved yet. This would need to cancel any attached workflows. The approval workflow is a standard SharePoint approval workflow.

The workflow is based around a task assigned to an approver in the workflow.

This task would be created by Start Approval Process in the workflow.

image

Unfortunately SharePoint does not provide a good solution for deleting this.

You could write an event handler but that’s hard to manage.

You could show users how to manually cancel workflows but that’s too complicated for some users.

You could create some whacky workflows that manage themselves but that’s too messy.

Our solution:

In the form create a status field. This field will have the following possible values: pending, cancelled, approved, rejected.

When a user cancels the leave request by clicking cancel in the form, we will update the status of the form to be cancelled. There will still be a task assigned to the approver that needs to be cancelled.

change the behaviour of the task

image

to check when the status field in the form changes to anything but pending.

image

Once it changes you can End Task Process to cancel the task.

Columns not appearing in List after promotion in InfoPath

17. May 2011 10:21 by sashashev in   //  Tags:   //   Comments (0)

After spending 3 days trying to work out why columns wouldn’t appear after being promoted from InfoPath, we finally resolved it  today. This form had been previously working but the client decided they wanted more fields promoted.

The bad news is that it kind of solved itself. All I did was go back to basics and republish the form. Although I was told that we had tried this many times I just did it again on my pc. Previously it had been published from another pc. The columns appeared in the content type created by this form.

I then had to manually add the columns to the list from existing columns in that content type.

There are many people online complaining about having this issue but I can’t find anyone who can suggest a good answer. My suggestion is to try and republish your form until it works.

Update 29-June-2011:

One way to go about "resolving" this problem is to delete the columns and then re-publish your InfoPath form.

Delete columns using PowerShell in SharePoint 2011. Get the PS script for deleting columns from this blog. After you run this script you can delete specific columns with the command:  Delete-WorkflowColumn -webURL http://portal -listName "Documents" -columnName "Column Name"   

function Delete-WorkflowColumn ($webURL, $listName, $columnName)
    {
        #Setup variables from the user input
        $web = Get-SPWeb $webURL
        $list = $web.Lists[$listName]
        $column = $list.Fields[$columnName]
       
        #Make sure the column is not hidden or read only
        $column.Hidden = $false
        $column.ReadOnlyField = $false
        $column.Update()

        #Delete column and dispose of the web object
        $list.Fields.Delete($column)
        write-host "Deleted column"
        $web.Dispose()
    }

Now re-publish your InfoPath form.

The new InfoPath columns will appear with correct settings.

Upgrading from WSS to SharePoint 2010

5. May 2010 15:03 by sashashev in   //  Tags:   //   Comments (0)

There is a bit of information around about upgrading from MOSS to SharePoint 2010 and from WSS to Foundation Server but not a lot about upgrading from WSS to SharePoint 2010 Enterprise.

I just did the upgrade and I can’t believe how easy it is. The only caveat was that my WSS was pretty vanilla and only had a few lists and doc libraries. I don’t guarantee this will work for everyone.

I just followed these steps.

  1. Back up your content database
  2. Install SharePoint 2010 but don’t set up a site collection
  3. Restore your content DB
  4. Use the Mount-SPContentDatabase command using powershell. The exact instructions for this can be found here. *
  5. Once the upgrade is complete your site will look like the WSS but you can use the Visual Upgrade from Site Actions to give it the new SP 2010 look.

*If you have never used Powershell before see some gotchas I wrote about here.

Webcoda, SharePoint Consultants & Web Development

SharePoint Development Sydney is a crack team of SharePoint Consultants and SharePoint Developers.

We can't tell you their names or show their faces on TV but if you need a SharePoint job done right, call them on +61 2 9370 3602 or email us at info@sharepointsydney.com.au

Persecuted by the Government and shunned by society they developed their SharePoint skills in back streets and labor camps where other programmers wouldn't dare to tread. 

During a trek through the Himalayas they stumpled upon the fabled Mossy Yak who shared his SharePoint knowledge of how to attain Nirvana through a series of Workflows and Event Handlers. Their mission is to spread this knowledge through-out the world to bring peace, harmony and document version control to all .

 

Month List