Thursday, December 15, 2011

Tags (unknown member) : Invalid request

I received the error, "Tags (unknown member) : Invalid request.  ", within a PowerPoint add-in on the following line of code.

string tagName = Globals.ThisAddIn.Application.ActiveWindow.Selection.SlideRange.Tags.Name(i);

This line of code was in a for loop after getting the Tag.Count  and looping through the tags to find out if the tag already exists.

I then checked the available Tag Object Members.

.Name did exist.
I decided to try .Item instead to see if that would work but I could not find .Item on as a Member.

I then decided refactor my code to the following instead.

string tagValue = Globals.ThisAddIn.Application.ActiveWindow.Selection.SlideRange.Tags[tagName];

If the "tagValue" is an empty string then the Tag does not exist. 

If the tag does exist and the value is an empty string, I’m not too concerned as in my instance I will treat it as a tag that does not exist and overwrite the value of the tag.

Monday, October 17, 2011

SharePoint articles and white papers

SharePoint articles and white papers
I came across this site,, that has some great SharePoint articles and White Papers, covering a variety of SharePoint functionality and topics.

Choice vs Lookup column
Top 10 Considerations for SharePoint 2010 Governance Planning
Everything you ever wanted to know about Taxonomies

And many more ….

Check it out.

Friday, October 7, 2011

The breakpoint will not currently be hit. No symbols have been loaded for this document

I received the error “The breakpoint will not currently be hit. No symbols have been loaded for this document” when debugging some SharePoint code. I was attaching to the w3wp.exe process.

The first time I received this error I followed the steps provided in Doug Butscher blog. This sorted out my issue.

A few weeks later I received the same error and this time the steps from Doug’s blog did not work.
With some help from a colleague I got it sorted with the following steps:

  • When debugging in Visual Studio, click on Debug > Attach to process…, click the select button next to “Attach to:”
  • Select “Debug these code types”, and then select “Managed (v2.0, v1.1, v1.0)” and “T-SQL” only.

  • Click “Ok”

Friday, September 30, 2011

The workflow template has specified no FormURN for this page

I created a workflow in SharePoint Designer 2010 which works in the development environment but not in the staging environment. I get the following error when trying to access the first task that gets created by the workflow. A similar error gets inserted into the logs as well

Most of the forums and blogs I came across when troubleshooting this issue referred to workflows created in SharePoint Designer and then imported into Visual Studio before deploying. They refer to removing the lines containing the  AssociationUrl, InstatiationUrl and ModificationUrl. 
I did not have any of these lines in my xml files so obviously that was not my issue.

On further troubleshooting I noticed some conflict between the existing content types (from a previous version of the workflow) and the new content types being created.
As a workaround to this issue, when adding the workflow I selected a new Task list instead of using the default task list.
I now no longer received the above error and the workflow is working correctly.

I will continue investigating the issue regarding the conflicting content types. I will update this blog once I know more but for now I have a working workflow.

Thursday, September 15, 2011

Convert SSIS 2008 package to 2005 package

Do not waste your time trying to convert a SSIS 2008 package to 2005.
Redo the package using SSIS 2005.

Thursday, August 11, 2011

Visual Studio 2008 hanging when opening designer view

I found myself needing to make some ‘quick’ form changes to an existing windows application. It ended up not being that quick due to Visual Studio hanging every time I opened the designer of a windows form.
After a few unsuccessful searches and trying and failing I came across this blog that did the trick.

Speed up the Visual Studio toolbox

All I needed to do was go to Tools->Options->Windows Forms Designer->General
Set AutoToolboxPopulate to False.

Tuesday, August 2, 2011

Failure in loading assembly (Event ID:6611)

I was receiving the following error in the event log:
Error: Failure in loading assembly: <assembly name>, Version=<version number>, Culture=….
The <version number> in the above error was for the previous version of the affected SharePoint solution.
Although the current version of the solution seemed to be working fine, the above error kept popping up in the event logs. I eventually found the culprit. It was a ‘SafeControl’ entry in the web.config file.

We removed the entry from the web.config file and since then there have been none of these errors logged.

Thursday, July 14, 2011

The template you have chosen is invalid or cannot be found

I received the error “The template you have chosen is invalid or cannot be found” when trying to create a new site from a custom site template.

Normally when this error occurs it is due to a dependent feature that has not been installed.
I came across this nifty tool, STP Inspector, that shows dependencies for a STP file on the site features and site collection features.

Run the tool, identify the missing features and install them.
Problem sorted.

Friday, July 8, 2011

SharePoint 2010 Feature Manager

For those of you who are familiar with or have used SharePoint 2007 Feature Manager, this tool will come in handy.
SharePoint 2010 Feature Manager is based on the SharePoint 2007 Feature Manager.

It allows you to activate, deactivate, install and uninstall features easily.

Check it out at

Thursday, July 7, 2011

Capture task ID for approval task in SharePoint Designer 2010

Assigning the task ID to a field in the current item:
You can access the Task ID from the within the task behaviour. Click on "Change the behaviour of a single task"

The best place to set the field in the list / library would probably be in the "Before a Task is Assigned" "When a Task is Pending". You can add a "Set field in current item" action or if you wish to assign it to a workflow variable you can use the "Set Workflow Variable" action.

Tuesday, June 28, 2011

An error has occurred in <workflow name>

I was receiving an error in my SharePoint Designer 2010 workflow on an approval action.
The error read:
An error has occurred in <workflow name>
I know, very helpful.
There was not anything helpful in the logs either.

I spent an hour trying various things like:
  •  Removing task form fields
  •  Removing actions I have inserted in the single task behaviour as well as overall task process.
With no luck I finally decided to hard code the assigned to person.

After a little investigating I figure out that the lookup person / group I have assigned needs to be returned as “display name” instead of the default, string

Monday, June 27, 2011

Setting the priority of a task in SharePoint Designer 2010 workflows

In your SPD workflow on the task process there is a link under the customisation section called 'Change the behaviour of a single task' where you can edit the task behaviour.

In this area within the 'Before a Task is Assigned' step you can add a 'Set Task Field' action. Using this action you can set the priority of the task

Friday, June 24, 2011

Upgrade existing InfoPath 2007 form (including data) to new InfoPath form version

My problem:
My client currently had an InfoPath form published to a forms library in SharePoint. They wanted some amendments made to the form, including additional fields.
They wanted all the existing forms within the library to have all the new version's amendments.
This was not going to be possible with a normal InfoPath form upgrade.

My solution:

What I did was:
  1. Extracted the data from the old form and temporarily stored it.
  2. Created a new form with the same name and overwrote the existing form.
  3. Populated the new form with the stored data.
All this was done using 2 workflows. (I am currently using Nintex Workflows).

First workflow
  • Using workflow actions:
    • I query the list for all items matching the content type version 1 of the InfoPath form.
    • I loop through the results of this query:
      • using a 'Query XML' action, I retrieve the data from the existing form.
      • I create a new item using the 'Create an item' action. I set the name to exactly the same name as the current form item and specify 'Overwrite an existing item'. I store all data retrieved in the 'Query XML' in a temporary field value which I called 'Form XML'. When the new item is created it overwrites the current item preserving it's ID.
      • I then kick off a second workflow using the Nintex web service method called StartWorkflowOnListItem. (http://<site>/_vti_bin/nintexworkflow/workflow.asmx). This workflow kicks off on a specific item specified by the list item ID.
Second Workflow
  • Using multiple 'Query XML' actions I retrieve the data from the temperary field I stored it in.
  • Using an 'Update XML' I update the new form with the old data.
That sounds simple enough :)
I have excluded any business rules I have in my current workflows for the purposes of this blog.

Some of you might be wondering why I used a temperary field to store the data instead of passing the data via the web service method using the associationData tag.
I had issues when passing the data using the a associationData tag. The temperary field was a quick and easy workaround I could implement as this solution was going to be used as a once off to upgrade existing forms.